java web中使用cookie记住用户的账号和密码
程序员文章站
2024-03-09 08:37:35
毕业设计中需要用到记住账号密码的功能,网上搜到了一个解决方案,自己稍加改造就是下面的方法。
首先是登录的页面,当用户勾选记住密码,传递给controller(我用的ssm...
毕业设计中需要用到记住账号密码的功能,网上搜到了一个解决方案,自己稍加改造就是下面的方法。
首先是登录的页面,当用户勾选记住密码,传递给controller(我用的ssm框架),后台设置cookie的值,然后下次登录的时候就不用再次输入账号和密码了。
login.jsp的代码:
<%@page import="org.apache.commons.lang.stringutils"%> <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <%@include file="public/nocache.jsp" %> <%@include file="public/header.jsp" %> <!-- 引入相关的js --> <script type="text/javascript" src="${pagecontext.request.contextpath}/js/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <style> body{ margin:0px; padding:0px; } .wrapper{ width:100%;height:100%;position:fixed; } .content{ width:100%; height:100%; position:relative; text-align:center; } .login{ width:1050px; height:450px; position:absolute; top:50%; left:50%; margin-top:-225px; margin-left:-525px; } </style> <script type="text/javascript"> window.history.forward(); window.onbeforeunload=function (){ } </script> <%@include file="public/headertop.jsp" %> <!-- 进入资源文件 --> <body> <%-- 读取cookie --%> <% string name = ""; string password = ""; try{ cookie[] cookies = request.getcookies(); if(cookies!=null){ for(int i = 0;i<cookies.length;i++){ if(cookies[i].getname().equals("cookie_user")){ string values = cookies[i].getvalue(); // 如果value字段不为空 if(stringutils.isnotblank(values)){ string[] elements = values.split("-"); // 获取账户名或者密码 if(stringutils.isnotblank(elements[0])){ name = elements[0]; } if(stringutils.isnotblank(elements[1])){ password = elements[1]; } } } } } }catch(exception e){ } %> <div class="wrapper" style=""> <div class="content"> <div class="login"> <!-- 主要的内容部分开始 --> <div class="easyui-layout" fit="true" border="false"> <div region="west" style="width:550px;text-align:center;" border="false"> <div class="easyui-layout" fit="true" border="false"> <div region="west" border="false" style="width:250px;height:390px;background:url(${pagecontext.request.contextpath}/img/banner-jkrzbg.png)"> </div> <div region="center" style="font-family:'微软雅黑';" border="false"> <p style="position: relative;margin-top:200px;padding-left:20px;"> <span style="font-size:30px;font-weight:800;">汽车维修管理系统</span><br/> <span>vehicle maintenance management system</span> </p> </div> </div> </div> <div region="center" border="false" style="width:520px;height:480px;"> <div class="easyui-layout" fit="true" border="false"> <div region="north" style="height:80px;" border="false"> </div> <div region="west" style="width:90px;position: relative;" border="false"> <img src="${pagecontext.request.contextpath}/img/split.png" style="position:absolute;left:0px;top:30px;"/> </div> <div region="center" border="false"> <div class="easyui-panel" title="用户登录" iconcls="icon-user" style="text-align: center;width:300px;height:260px;padding-top:50px;"> <form id="ff" method="post"> <div> <input id="account" class="easyui-textbox" name="accountnumber" data-options="iconcls:'icon-man',prompt:'请输入用户名'" value="<%=name %>" style="width:240px;height:30px;"> <a id="dd" href="#" title="用户的账号不能为空" class="easyui-tooltip"></a> </div> <div style="margin-top: 20px;"> <input id="passwords" class="easyui-textbox" name="passwords" type="password" data-options="iconcls:'icon-lock',prompt:'请输入密码'" value="<%=password %>" style="width:240px;height:30px;"> </div> <div style="margin-top: 10px;" style="text-align:left;" > <span style="float:left;padding-left:30px;font-size:12px;"><input id="flag" name="flag" type="checkbox" value="1" checked="checked" />记住账号</span> </div> <div style="clear:both;"></div> <div style="margin-top: 20px;"> <p> <a href="#" id="submitbtn" style="width:80px;height:30px;" class="easyui-linkbutton" iconcls="icon-accept">登录</a> <a style="margin-left:30px;width:80px;height:30px;" href="#" class="easyui-linkbutton" iconcls="icon-arrow_undo">取消</a> </p> </div> </form> </div> </div> <div region="east" style="width:90px;" border="false"> </div> <div region="south" style="height:0px;" border="false"> </div> </div> </div> </div> <!-- 主要的内容部分结束 --> </div> </div> </div> <script type="text/javascript"> $(function(){ console.log("[汽车维修管理系统\n codeby:pengchan\n email:dntchenpeng@163.com \n csdn:http://blog.csdn.net/w3chhhhhh/]"); // 提交表单 $("#submitbtn").click(function(){ // 判断是否为空 if($("#account").val()==""){ $.messager.alert('登录消息提示','用户的账号不能为空','info'); return; } if($("#passwords").val()==""){ $.messager.alert('登录消息提示','用户的密码不能为空','info'); return; } $("#ff").submit(); }); $('#ff').form({ url:"${pagecontext.request.contextpath}/users/login.html", success:function(data){ data = json.parse(data); try{ if(data.iserror){ $.messager.alert('登录消息提示',data.errormsg,'info'); }else{ //$.messager.alert("登录消息提示","登录成功!",'info'); // 如果成功,就跳转到主页面 // 这里先判断是否有历史请求,如果有就再次访问之前的页面 var hisurl = '${hisurl}'; if(hisurl!=null&&hisurl.length>0){ window.location.href="${pagecontext.request.contextpath}"+hisurl; }else{ window.location.href="${pagecontext.request.contextpath}/index/main.html"; } } }catch(e){ $.messager.alert("登录消息提示",'服务器返回异常,请稍后重试!','info'); } }, error:function(error){ $("#ff").form("clear"); } }); }); </script> </body> </html>
后台处理的java部分代码:
package com.javaweb.controller; import javax.servlet.http.cookie; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.apache.commons.lang.stringutils; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springframework.beans.factory.annotation.autowired; import org.springframework.context.annotation.scope; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.pathvariable; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody; import com.alibaba.fastjson.json; import com.javaweb.entity.account; import com.javaweb.service.impl.servicefactory; import com.javaweb.utils.basecontroller; import com.javaweb.views.loginbean; /** * 用户信息控制器 * @author cp * */ @controller @scope("prototype") @requestmapping("/users") public class userinfocontroller extends basecontroller{ private static final logger logger = loggerfactory.getlogger(userinfocontroller.class); @autowired private servicefactory servicefactory; /** * 登录系统 * @param request 请求 * @param model model * @param account 账户信息 * @return */ @requestmapping("/login") @responsebody public string login(httpservletrequest request,httpservletresponse response,model model,account account){ logger.info("用户尝试登录:"+json.tojsonstring(account)); if(account==null){ return responsefail("提交的参数为空!"); }else{ if(stringutils.isblank(account.getaccountnumber())){ return responsefail("用户的账号为空"); } if(stringutils.isblank(account.getpasswords())){ return responsefail("用户的密码为空"); } loginbean loginbean = null; loginbean = servicefactory.getuservalidateservice().userislawable(account); if(loginbean==null){ return responsefail("用户名或者密码输入不正确"); }else{// 如果成功 // 把loginbean放到session中 request.getsession().setattribute("user", loginbean); // 放到cookie中 string flag = request.getparameter("flag"); // 如果需要记住账户就存储账号和密码 if(flag!=null&&flag.equals("1")){ cookie cookie = new cookie("cookie_user",loginbean.getaccountnumber()+"-"+loginbean.getpasswords()); cookie.setmaxage(60*60*24*3);// 保存 response.addcookie(cookie); logger.info("存储用户的cookie:"+loginbean.getaccountnumber()+"-"+loginbean.getpasswords()); }else{// 如果没有要求记住账户密码,就保存账户 cookie cookie = new cookie("cookie_user", loginbean.getaccountnumber()); cookie.setmaxage(60*60*24*30); response.addcookie(cookie); logger.info("存储用户的cookie:"+loginbean.getaccountnumber()); } // 跳转到主页 logger.info("用户:"+loginbean.getaccountnumber()+"成功进入系统"); return responsesuccess(loginbean, "登录成功"); } } } /** * 退出系统登录 * @param request 请求 * @param model 模型 * @param accountnum 账户号 * @return */ @requestmapping("/{accountnum}/logout.html") public string logout(httpservletrequest request,model model,@pathvariable("accountnum") string accountnum){ logger.info("用户"+accountnum+",退出系统登录..."); // 设置session为空 request.getsession().setattribute("user", null); // 页面跳转 return "login"; } }
运行效果:
输入账号密码登录后:
退出后重新登录:
以上所述是小编给大家介绍的java web中使用cookie记住用户的账号和密码,希望对大家有所帮助
上一篇: 概述Java的struts2框架
推荐阅读
-
java web中使用cookie记住用户的账号和密码
-
java web中使用cookie记住用户的账号和密码
-
mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?
-
使用jquery的cookie实现登录页记住用户名和密码的方法
-
mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?
-
使用jquery的cookie实现登录页记住用户名和密码的方法
-
servlet方式通过Cookie记住登录时的用户名和密码_html/css_WEB-ITnose
-
servlet方式通过Cookie记住登录时的用户名和密码_html/css_WEB-ITnose