Cookie管理

Cookie对象是由服务器产生并保存在客户端的信息,常用他记录用户个人信息以及个性化设置。用户每次访问网点时,应用程序就可以检索以前保存的信息

Cookie对象属于的类是javax.servlet.http.Cookie 他不是JSP的内置对象

1.Cookie的基本用法

一般需要两步操作,首先有服务器创建Cookie对象保存在客户端,然后再JSP或Servlet中读取Cookie并进行操作。


自动登录过程

//login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户登陆界面</title>
</head> <body>
<form action="logincheck.jsp" method="post">
用户名:<input type="text" name="username"><br> 密&nbsp;&nbsp;码:<input type="password" name="userpwd"/><br>
<input type="submit" value="登陆">
</form>
</body>
</html>

//logincheck.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆处理</title> </head> <body>
<%
String un=request.getParameter("username"); //获取用户名
if(un!=null){
Cookie c=new Cookie("username",un);
c.setMaxAge(30*24*3600);//设置Cookie有效期为30天
response.addCookie(c);//将Cookie对象保存在客户端
session.setAttribute("username",un);//将用户名存到session范围内用于权限检查
response.sendRedirect("main.jsp");//重定向到主页面
}
%>
</body>
</html>

//main.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>主页面</title>
</head> <body>
<%
String username=(String)session.getAttribute("username");
if(username==null){ //session中用户名为空说明用户没登陆
Cookie[] cs=request.getCookies();
String v=null;
if(cs!=null){
for(int i=0;i<cs.length;i++){
if(cs[i].getName().equals("username")){ //获取名称为username的Cookie对象值
v=cs[i].getValue();
}
}
}
if(cs!=null){ //Cookie值不空,自动登陆成功
session.setAttribute("username",v);
out.print(v+",您好!");
}else{ //自动登陆失败,转到登陆界面
out.print("您还没有注册,2秒后转到注册界面!");
response.setHeader("Refrush","2;url=login.jsp");
}
}
else{ //session中用户名不空说明用户已经登陆
out.print(username+"您好!");
}
%>
</body>
</html>

最新文章

  1. Dnsmasq安装与配置
  2. mysql的分区和分表
  3. PHP global 关键字
  4. Ninject之旅之十一:Ninject动态工厂(附程序下载)
  5. Spring Batch实践
  6. 【笨嘴拙舌WINDOWS】GDI(1)
  7. Android-xUtils框架介绍(四)
  8. 最受欢迎的15个Python开源框架
  9. Linux下OpenSSL 安装
  10. Silverlight闹钟
  11. MySQL的truncate table 和source 命令
  12. org.quartz.impl.jdbcjobstore.LockException
  13. Android开发模板------自己定义SimpleCursorAdapter的使用
  14. breakpad是Google开源的一套跨平台工具
  15. Postman+newman+jenkins构建
  16. linkin大话面向对象--多态
  17. 【解高次同余方程】51nod1038 X^A Mod P
  18. apply和call方法
  19. windows-spidermonkey
  20. String类的常用方法总结

热门文章

  1. 可输入的 Combox(DropDownList)
  2. Linux 进程间通信系列之 信号
  3. angularjs string format
  4. MakeFile基本使用
  5. MongoDB 搭建Node.js开发环境
  6. @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction [转]
  7. Unity C# 用枚举(enum)制作复选框
  8. [LeetCode]19. Remove Nth Node From End of List删除链表的倒数第N个节点
  9. jQ中css()和addClass的区别之优先级
  10. HTML图片映射实用