全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java web中使用cookie记住用户的账号和密码

毕业设计中需要用到记住账号密码的功能,网上搜到了一个解决方案,自己稍加改造就是下面的方法。

首先是登录的页面,当用户勾选记住密码,传递给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记住用户的账号和密码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# cookie记住用户名密码  # javaweb记住用户名  # JavaWeb 中Cookie实现记住密码的功能示例  # java中Servlet Cookie取不到值原因解决办法  # JavaWeb使用Session和Cookie实现登录认证  # java中Cookie被禁用后Session追踪问题  # java 中cookie的详解及简单实例  # Java 是如何读取和写入浏览器Cookies的实例详解  # JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)  # Java接口测试Cookie与token原理解析  # 为空  # 管理系统  # 请输入  # 小编  # 汽车维修  # 跳转到  # 判断是否  # 在此  # 微软  # 我用  # 给大家  # 如果没有  # 毕业设计  # 跳转  # 表单  # 用户登录  # 不正确  # 所述  # 给我留言  # 感谢大家 


相关文章: 建站主机CVM配置优化、SEO策略与性能提升指南  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  深圳网站制作的公司有哪些,dido官方网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  建站为何优先选择香港服务器?  建站之星官网登录失败?如何快速解决?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Bpmn 2.0的XML文件怎么画流程图  高端建站如何打造兼具美学与转化的品牌官网?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何通过二级域名建站提升品牌影响力?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  网站制作服务平台,有什么网站可以发布本地服务信息?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  开封网站制作公司,网络用语开封是什么意思?  电商网站制作公司有哪些,1688网是什么意思?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  手机网站制作与建设方案,手机网站如何建设?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  建站10G流量真的够用吗?如何应对访问高峰?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  建站之星客服服务时间及联系方式如何?  如何在建站主机中优化服务器配置?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  太平洋网站制作公司,网络用语太平洋是什么意思?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站主机系统SEO优化与智能配置核心关键词操作指南  个人网站制作流程图片大全,个人网站如何注销?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  贸易公司网站制作流程,出口贸易网站设计怎么做?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  ,如何利用word制作宣传手册?  建站之星3.0如何解决常见操作问题?  如何批量查询域名的建站时间记录?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站之星代理费用多少?最新价格详情介绍  济南网站建设制作公司,室内设计网站一般都有哪些功能?  ,石家庄四十八中学官网?  为什么Go需要go mod文件_Go go mod文件作用说明 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。