附加功能:登录成功后保存Cookie一段时间,在这期间无需重新登录
一个基本的登录模块至少分为4个页面:
1.输入用户信息页面(login.jsp);
2.用户合法性验证页面(check.jsp);
3.登录成功欢迎页面(pass.jsp);
4.登录失败提示页面(failure.jsp)。
为了实现保存Cookie功能,还需增加一个页面:
5.检查Cookie页面(index.jsp)
结构图如下:
---------------------------------------------------------------------
index.jsp
|
|判断Cookie中有无用户名、密码
----------------------
| Y N |
| V
| login.jsp<--------------------
| |输入用户名、密码 |
| V |
---------------->check.jsp |
| |
|验证用户名、密码 |
--------------------- |
| Y N | |
V V |
pass.jsp failure.jsp----------
---------------------------------------------------------------------
index.jsp:
login.jsp:
check.jsp:
pass.jsp:
一个基本的登录模块至少分为4个页面:
1.输入用户信息页面(login.jsp);
2.用户合法性验证页面(check.jsp);
3.登录成功欢迎页面(pass.jsp);
4.登录失败提示页面(failure.jsp)。
为了实现保存Cookie功能,还需增加一个页面:
5.检查Cookie页面(index.jsp)
结构图如下:
---------------------------------------------------------------------
index.jsp
|
|判断Cookie中有无用户名、密码
----------------------
| Y N |
| V
| login.jsp<--------------------
| |输入用户名、密码 |
| V |
---------------->check.jsp |
| |
|验证用户名、密码 |
--------------------- |
| Y N | |
V V |
pass.jsp failure.jsp----------
---------------------------------------------------------------------
index.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<title>index</title>
</head>
<body>
<%
int i;
//初始化,用于保存Cookie中的用户名、密码
String C_username="";
String C_password="";
//获取全部Cookie
Cookie c[]=request.getCookies();
for(i=0;i<c.length;i++)
{
//在Cookie中查找用户名、密码,如果找到,则分别将其赋值给用户名、密码变量
if("username".equals(c[i].getName()))
C_username=c[i].getValue();
if("password".equals(c[i].getName()))
C_password=c[i].getValue();
}
if(!"".equals(C_username) && !"".equals(C_password))
{
//Cookie中有用户名、密码,将用户名、密码提交到验证页面
response.sendRedirect("check.jsp?username="+C_username+"&password="+C_password);
}
else
{
//Cookie中没有用户名、密码,跳转到登录页面
%>
<jsp:forward page="login.jsp" />
<%
}
%>
</body>
</html>
<html>
<head>
<title>index</title>
</head>
<body>
<%
int i;
//初始化,用于保存Cookie中的用户名、密码
String C_username="";
String C_password="";
//获取全部Cookie
Cookie c[]=request.getCookies();
for(i=0;i<c.length;i++)
{
//在Cookie中查找用户名、密码,如果找到,则分别将其赋值给用户名、密码变量
if("username".equals(c[i].getName()))
C_username=c[i].getValue();
if("password".equals(c[i].getName()))
C_password=c[i].getValue();
}
if(!"".equals(C_username) && !"".equals(C_password))
{
//Cookie中有用户名、密码,将用户名、密码提交到验证页面
response.sendRedirect("check.jsp?username="+C_username+"&password="+C_password);
}
else
{
//Cookie中没有用户名、密码,跳转到登录页面
%>
<jsp:forward page="login.jsp" />
<%
}
%>
</body>
</html>
login.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<center>
<h1>登录页面</h1>
<hr>
<form action="check.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>Cookie选项:</td>
<td>
<input type="radio" name="cookie" value="nosave" checked>不保存
<input type="radio" name="cookie" value="save">保存1分钟
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<html>
<head>
<title>登录</title>
</head>
<body>
<center>
<h1>登录页面</h1>
<hr>
<form action="check.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>Cookie选项:</td>
<td>
<input type="radio" name="cookie" value="nosave" checked>不保存
<input type="radio" name="cookie" value="save">保存1分钟
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
check.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<title>验证页面</title>
</head>
<body>
<%
String Username=request.getParameter("username");
String Password=request.getParameter("password");
String IsCookie=request.getParameter("cookie");
//判断用户名、密码的合法性
if("magci".equals(Username) && "123456".equals(Password))
//为了避免空指向异常,比较两个字符串时,如有字符串常量,则使用字符串常量的“equals”方法(即将常量写在前面)。
{
//合法用户
if("save".equals(IsCookie))
{
//如果选择了保存Cookie选项,则保存Cookie
Cookie c1=new Cookie("username",Username);
Cookie c2=new Cookie("password",Password);
//设置Cookie保存时间为1分钟
c1.setMaxAge(60);
c2.setMaxAge(60);
response.addCookie(c1);
response.addCookie(c2);
}
//跳转到欢迎页面
%>
<jsp:forward page="pass.jsp"/>
<%
}
else
{
//非法用户,跳转到登录失败页面
%>
<jsp:forward page="failure.jsp" />
<%
}
%>
</body>
</html>
<html>
<head>
<title>验证页面</title>
</head>
<body>
<%
String Username=request.getParameter("username");
String Password=request.getParameter("password");
String IsCookie=request.getParameter("cookie");
//判断用户名、密码的合法性
if("magci".equals(Username) && "123456".equals(Password))
//为了避免空指向异常,比较两个字符串时,如有字符串常量,则使用字符串常量的“equals”方法(即将常量写在前面)。
{
//合法用户
if("save".equals(IsCookie))
{
//如果选择了保存Cookie选项,则保存Cookie
Cookie c1=new Cookie("username",Username);
Cookie c2=new Cookie("password",Password);
//设置Cookie保存时间为1分钟
c1.setMaxAge(60);
c2.setMaxAge(60);
response.addCookie(c1);
response.addCookie(c2);
}
//跳转到欢迎页面
%>
<jsp:forward page="pass.jsp"/>
<%
}
else
{
//非法用户,跳转到登录失败页面
%>
<jsp:forward page="failure.jsp" />
<%
}
%>
</body>
</html>
pass.jsp:
<%@page contentType="text/html;charset=GB2312" %>
<center>
<h1>登录成功!!</h1>
<hr>
<h3>欢迎<font size="12" color="red">
<%--forward跳转为服务器端跳转,跳转后仍在check.jsp页面,可以继续使用usename参数 --%>
<%=request.getParameter("username") %>
</font>光临!</h3>
</center>
<center>
<h1>登录成功!!</h1>
<hr>
<h3>欢迎<font size="12" color="red">
<%--forward跳转为服务器端跳转,跳转后仍在check.jsp页面,可以继续使用usename参数 --%>
<%=request.getParameter("username") %>
</font>光临!</h3>
</center>
failure.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<div align="center">
<h1>登录失败!!</h1>
<hr>
<a href="login.jsp">重新登录</a>
</div>
<div align="center">
<h1>登录失败!!</h1>
<hr>
<a href="login.jsp">重新登录</a>
</div>
发表评论
-
db2, oracle和sqlserver取前几行的语法
2010-10-18 11:58 938db2: select * from tab f ... -
项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第一部分 (转载)
2008-03-29 16:49 673总算将一个项目勉强上线,也是第一次我独立完成的这么多任务,框架 ... -
实例学习Spring和Hibernate的一点点体会 (转载)
2008-03-29 17:36 783昨天用Spring写DAO,有朋友说比较Hibernate还是 ... -
jsp+xsl查询数据库
2008-04-06 19:26 1022往往JSP通常用来动态的生成HTML文件,来 ... -
hibernate3.0中文查询问题解决方法
2008-04-07 13:08 733在applicationContext.xml中加入如下代码: ... -
简单的JSTL应用(入门)
2008-04-07 19:51 1010需要的包及TLD文件: 首先需要将用到的jar包放入WEB-I ... -
EL表达式语言
2008-04-09 00:30 688引用:http://blog.163.com/s_zhchlu ... -
JavaMail
2008-04-30 13:19 646package org.hank.mail;import ... -
用"window.showModalDialog()"实现DIV模式弹出窗口 (转)
2008-05-04 09:20 17701、test.html 测试页 <html> ... -
以二进制流的方式存取图像
2008-05-07 00:03 1231imageinfo.sql CREATE TABLE ... -
java 生成图片缩略图
2008-05-08 13:26 7171方法一: import javax.imageio.Image ... -
一个不错的弹出窗口的js效果(值的收藏)
2008-06-02 19:00 1109<script type="text/jav ... -
<c:forEach>&条件标签使用
2008-06-06 09:57 7096<c:forEach>标签的使 ... -
div 缓慢下拉效果
2008-06-10 18:05 1518<!DOCTYPE html PUBLIC " ... -
弹出窗口传值
2008-06-13 09:07 905子窗口中内容: function change(obj){ ... -
Action之间传值
2008-06-13 09:13 860return new ActionForward(" ... -
数据库连接池简介
2008-06-15 14:30 737数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应 ... -
Spring的事务管理
2008-06-15 14:32 424Spring提供了一致的事务管理抽象。这个抽象是Sprin ... -
form产生的空行的解决
2008-06-16 16:32 676利用css属性,将form的内部上下左右的填充距离设置为0就好 ... -
实现Web程序的自动登录
2008-06-16 17:13 781...
相关推荐
4. **Cookie和Session**:在Web应用中,服务器通常使用Cookie来跟踪会话状态,而Session存储在服务器端,用于保持用户登录状态。通过管理Cookie和Session,服务器可以实现会话级别的验证。 5. **公钥基础设施(PKI)*...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个应用系统中只需登录一次,即可访问所有相互信任的应用系统,无需再次进行身份验证。本详细设计说明书的下篇将深入探讨SSO的核心原理、实现方式及...
4. **前端交互**:使用JavaScript和AJAX技术实现页面的异步更新,提升用户体验,如无刷新加载新帖、实时提示新消息等。 5. **安全防护**:防止SQL注入、XSS攻击等,确保用户数据的安全,这需要在编写代码时就考虑...
8. **安全性**:ASP.NET提供了多种安全机制,如身份验证(Forms Authentication)、授权(Role-based Authorization)、加密解密、跨站请求伪造(CSRF)防护等。你可能在代码中找到相关的配置和代码示例。 9. **...
(Request) √(vs200518) 21. 核心对象[二](Response,server) √(vs200519) 22. 状态处理(Application,Seeeion,Cookie) √(vs200520) 23. 小结考试√(ceshi03) 事件驱动编程与回送 24. Asp.Net...
- **Cookie**:说明Cookie的操作方法,如设置、读取等。 - **验证码**:介绍如何生成和验证图形验证码。 - **文件上传**:演示文件上传的实现过程和注意事项。 - **图像处理**:说明如何利用ThinkPHP5.0提供的图像...
(Request) √(vs200518) 21. 核心对象[二](Response,server) √(vs200519) 22. 状态处理(Application,Seeeion,Cookie) √(vs200520) 23. 小结考试√(ceshi03) 事件驱动编程与回送 24. Asp.Net...
深受广大用户喜爱,包括 CSDN、华军软件园、中国站长站 等各大专业网站纷纷转载。官方支持:http://www.dotbbs.net/bbs , DotBBS包括Access版和Sql Server版,可以在Web.config中设置。 DotBBS 是 前沿网络 ...
CHttpWeb类 用户可以自定义发送数据包:public string HttpSendData(string URL, string Method = "GET", string Data = "",string Encode = "UTF-8") 可以自定义设置Referer、UserAgent、代理、获取cookie、带上...
支持后台Cookie加密、验证码IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按级别访问权限,为网站的安全运营提供最强有力的保障。 7、百度站点地图功能,生成和自动更新...
支持后台Cookie加密、验证码IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按级别访问权限,为网站的安全运营提供最强有力的保障。 7、百度站点地图功能,生成和自动更新...
同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...
同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...
同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...
同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...
窗体COOKIE document.cookie 菜单事件 document.oncontextmenu 创建元素 document.createElement("SPAN"); 根据鼠标获得元素: document.elementFromPoint(event.x,event.y).tagName=="TD document....
(Request) √(vs200518) 21. 核心对象[二](Response,server) √(vs200519) 22. 状态处理(Application,Seeeion,Cookie) √(vs200520) 23. 小结考试√(ceshi03) 事件驱动编程与回送 24. Asp.Net...
支持后台访问目录更名、Cookie加密、验证码、认证码、IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按频道和模块严格控制访问权限,为网站的安全运营提供最强有力的保障。...
作者: kostis90gr 翻译: 黯魂[S.S.T] 本文已发表于《黑客防线》6月刊,版权属于《黑客防线》及脚本安全小组,转载请保持文章完整性,谢谢 :) 这份指南仅仅是出于报告目的,如果任何人把它用于违法目的,我不负...