zoukankan      html  css  js  c++  java
  • Goods:登录页面之登录功能的实现

    UserServlet

     1 // 登录功能
     2     public String login(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException {
     3         /*
     4          * 封装表单数据到user //校验表单数据 使用service查询 如果不存在 保存错误信息 用户名或密码错误 保存用户数据 为了回显
     5          * 如果存在 查看状态 状态为false 保存错误信息 您没有激活 保存表单数据 为了回显 转发到Login.jsp 登录该成功
     6          * 保存当前查询出的user到session中 保存当前用户的名称到cookie中 注意中文要编码处理
     7          */
     8         // 封装表单数据到user
     9         User formUser = CommonUtils.toBean(req.getParameterMap(), User.class);
    10         // 校验表单数据
    11         Map<String, String> errors = validateLogin(formUser, req.getSession());
    12         if (errors.size() > 0) {
    13             req.setAttribute("errors", errors);
    14             req.setAttribute("form", formUser);
    15             return "f:/jsps/user/regist.jsp";
    16         }
    17         // 交给userservice的loginff
    18         User user = userService.login(formUser);
    19         if (user == null) {
    20             req.setAttribute("msg", "用户名或密码错误");
    21             req.setAttribute("user", formUser);
    22             return "f:/jsps/user/regist.jsp";
    23         } else {
    24             if (!user.isStatus()) {
    25                 req.setAttribute("msg", "您还没有激活");
    26                 req.setAttribute("user", formUser);
    27                 return "f:/jsps/user/regist.jsp";
    28 
    29             } else {
    30                 //保存当前查询出的user到session中 保存当前用户的名称到cookie中 注意中文要编码处理
    31                 req.getSession().setAttribute("sessionUser", user);
    32                 String loginname=user.getLoginname();
    33                 loginname=URLEncoder.encode(loginname, "utf-8");
    34                 Cookie cookie=new Cookie("loginname",loginname);
    35                 //设置cookie的年龄 否则cookie只在浏览器内存中活 
    36                 cookie.setMaxAge(60*60*24*10);  //保存10天
    37                 resp.addCookie(cookie);
    38                 return "r:/index.jsp";
    39                 
    40             }
    41         }
    42     
    43     }

      login.jsp中获取本地cookie 判断回显 与 cookie中拿到的用户是否一致 回显用户的优先级要高

     1 <script type="text/javascript">   
     2         $(function(){  //Map<String<Cookie名称>,Cookie<cookie本身>>
     3         //el表达式先执行 所以若不加双引号 在没有执行javascript之前 已经变成王八啦 所以要加双引号
     4         //获取cookie中的用户名
     5            var loginname=window.decodeURI("${cookie.loginname.value}");
     6          //获取回显的用户名
     7          if("${requestScope.user.loginname}")
     8          {
     9          loginname="${requestScope.user.loginname}"; 
    10          }
    11          $("#loginame").val(loginname);
    12            
    13         });
    14     </script>

    top.jsp中用户登录判断

     1 <c:choose>
     2             <c:when test="${empty sessionScope.sessionUser}">
     3                 <a href="<c:url value='/jsps/user/login.jsp'/>" target="_parent">会员登录</a> |&nbsp; 
     4      <a href="<c:url value='/jsps/user/regist.jsp'/>" target="_parent">注册会员</a>
     5             </c:when>
     6             <c:otherwise>
     7                会员:${sessionScope.sessionUser.loginname}&nbsp;&nbsp;|&nbsp;&nbsp;
     8           <a href="<c:url value='/jsps/cart/list.jsp'/>" target="body">我的购物车</a>&nbsp;&nbsp;|&nbsp;&nbsp;
     9           <a href="<c:url value='/jsps/order/list.jsp'/>" target="body">我的订单</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    10           <a href="<c:url value='/jsps/user/pwd.jsp'/>" target="body">修改密码</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    11           <a href="<c:url value='/jsps/user/login.jsp'/>" target="_parent">退出</a>
    12             </c:otherwise>
    13         </c:choose>
  • 相关阅读:
    pdf 去水印 比较好用
    ffmpeg从视频中每隔几秒提取一张图片
    tampermonkey 网盘直链下载助手
    淘工厂买的usb 蓝牙5.0 外置台式机 适配器(下载)
    Apache Doris 轻松入门和快速实践
    一步一步编译最新版Apache Doris 0.15版本的详细过程
    go使用msgpack
    服务接口杂谈
    关于真伪3层所讨论的
    jattach最近的一些更新
  • 原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4769882.html
Copyright © 2011-2022 走看看