利用Cookie实现自动登录

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>
转载来自:http://www.cnblogs.com/qichunlin/p/7887220.html

转载于:https://www.cnblogs.com/lls1350767625/p/7967907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值