java使用cookie实现下次自动登录
来源:互联网 发布:计算机资格考试软件 编辑:程序博客网 时间:2024/05/16 16:18
Cookie通过设置后,生命周期可以与Session一样,或者比它长久。通常来说,根据我的习惯,对于一些通用的业务能够,我希望把它们封装到一个工具类里面,使用方法就是直接调用它的静态方法。CookieTool.java 源代码:/** * 设置cookie(接口方法) * @param response * @param name cookie名字 * @param value cookie值 * @param maxAge cookie生命周期 以秒为单位 */public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){ Cookie cookie = new Cookie(name,value); cookie.setPath("/"); if(maxAge>0) cookie.setMaxAge(maxAge); response.addCookie(cookie);}/** * 根据名字获取cookie(接口方法) * @param request * @param name cookie名字 * @return */public static Cookie getCookieByName(HttpServletRequest request,String name){ Map<String,Cookie> cookieMap = ReadCookieMap(request); if(cookieMap.containsKey(name)){ Cookie cookie = (Cookie)cookieMap.get(name); return cookie; }else{ return null; } }/** * 将cookie封装到Map里面(非接口方法) * @param request * @return */private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ Map<String,Cookie> cookieMap = new HashMap<String,Cookie>(); Cookie[] cookies = request.getCookies(); if(null!=cookies){ for(Cookie cookie : cookies){ cookieMap.put(cookie.getName(), cookie); } } return cookieMap;}好了,工具类的静态方法已经定义好了。我先假定楼主对表现层提交表单到业务层是有概念的,这里存在两种情况:(1)客户端没有登录记录,则进入登录页面(2)客户端存在有效的登录记录,进入登录后的页面。因此在显示登录页面之前就要通过一个业务方法进行判断,其中最核心的是:Cookie cokLoginName = CookieTool.getCookieByName(request,"loginName");Cookie cokLoginPwd = CookieTool.getCookieByName(request,"loginPwd");if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue()!=null && cokLoginPwd.getValue()!=null){ String loginName = cokLoginName.getValue(); String loginPwd = cokLoginPwd.getValue(); //检查到客户端保存了用户的密码,进行该账户的验证 //这里要使用你自己的账户验证方法 //如果账户验证成功,则跳转到登录成功的页面 //如果账户验证失败,则 CookieTool.addCookie(response,"loginName",null,0); //清除Cookie CookieTool.addCookie(response,"loginPwd",null,0); //清除Cookie //然后跳转到登录页面}其次就是在登录JSP页面的表单所提交到的登录Action。这里假设表单提交到的是Servlet,读取表单参数楼主应该没有问题吧?我这里只关注和插入Cookie代码。插入的地方在账户密码的正确性经过验证,在跳转页面之前。假设储存用户输入的帐号和密码字段分别为String username,String password。int loginMaxAge = 30*24*60*60; //定义账户密码的生命周期,这里是一个月。单位为秒if ( 单选框 ) { CookieTool.addCookie(response , "loginName" , username , loginMaxAge); CookieTool.addCookie(response , "loginPwd" , password , loginMaxAge); }
转自:http://zhidao.baidu.com/link?url=zby0GWQy_moMvM9VEJji7wSr-WOVjxeL49yRmDAUJEVz5TfLTjDpySSM0-NzVKDF6RS5qRLDrOWAh0gYc6SkHq
阅读全文
0 0
- java使用cookie实现下次自动登录
- java使用cookie实现下次自动登录
- mvc框架下,怎样用cookie实现下次自动登录
- Cookie-网站登录-下次自动登录
- Cookie-网站登录-下次自动登录2
- Cookie-网站登录-下次自动登录
- asp.net cookie 实现 记录用户登录状态,下次自动登录
- java之cookie保存登录信息下次登录时自动填充表单
- 使用cookie实现自动登录
- 使用Cookie实现自动登录
- symfony使用cookie来实现自动登录
- 使用cookie+过滤器实现自动登录
- JavaWeb_使用Cookie模拟实现自动登录
- 使用cookie实现一周内自动登录
- 使用cookie实现浏览器自动登录详解
- JSP使用Cookie实现自动登录
- Java利用Cookie实现自动登录
- java读写cookie实现自动登录
- pygal制图“AttributeError: 'NoneType' object has no attribute 'decode'”
- HttpServletRequest获取请求IP
- Ajax全接触(2)
- PAT 1038. Recover the Smallest Number的思考
- 12:与指定数字相同的数的个数
- java使用cookie实现下次自动登录
- Java web学习总结20: JavaBean总结
- Android-IM使用imui组件结合JMessage实现即时消息对话
- 真实的程序员的日常
- 全国省市区数据库sql
- 1002.写出这个数(字符串处理)
- 慕课七夕主题动画效果
- Project facet Java version 1.7 not supported错误
- leetcode 669. Trim a Binary Search Tree