• JavaWebCookie的应用


     

     

     

     

     

    package com.xzit.erpmodel.users.controller;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.xzit.erpmodel.users.domain.SysUsers;
    import com.xzit.erpmodel.users.service.UsersService;
    import com.xzit.erpmodel.users.service.UsersServiceImp;
    
    /**
     * Servlet implementation class UsersServlet
     */
    @WebServlet("/UsersServlet")
    public class UsersServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
         */
        protected void service(HttpServletRequest request, HttpServletResponse response) 
                throws ServletException, IOException {
            
            /* 获取用户提交的登录信息 */
            String name = request.getParameter("username");
            String pwd = request.getParameter("password");
            String savepwd = request.getParameter("savepwd");
            
            SysUsers user = new SysUsers();
            user.setName(name);
            user.setPassword(pwd);
            
            UsersService service = new UsersServiceImp();
            SysUsers current = service.validateLogin(user);
            
            if(current !=null) {//用户登录成功
                
                    
                    Cookie[] cookies = request.getCookies();//获取用户未过期的所有Cookie
                    if(cookies != null && cookies.length !=0) {//有Cookie
                        int count = 0;    //计数器
                        for(int i=0;i<cookies.length;i++) {//遍历数组查找目标Cookie
                            
                            if(cookies[i].getName().equals("logininfo") || cookies[i].getName().equals("logininfo2")) {//如果找到了目标有效的Cookie
                                
                                if(savepwd == null) {
                                    cookies[i].setMaxAge(0);//不保存Cookie
                                    response.addCookie(cookies[i]);
                                }
                                count++;
                            }
                        }
                        if(count == 0) {//没有找到Cookie
                            if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
                                Cookie newCookie = new Cookie("logininfo",name);
                                Cookie newCookie2 = new Cookie("logininfo2",pwd);
                                newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                                newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                                response.addCookie(newCookie);
                                response.addCookie(newCookie2);
                            }
                        }
                    }else {
                        if(savepwd != null && savepwd.equals("on")) {//用户欲保存密码及用户信息
                            Cookie newCookie = new Cookie("logininfo",name);
                            Cookie newCookie2 = new Cookie("logininfo2",pwd);
                            newCookie.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                            newCookie2.setMaxAge(3600*24*7);//设置Cookie的生命周期为7天
                            response.addCookie(newCookie);
                            response.addCookie(newCookie2);
                        }
                    }
                
                //将用户对象存储到会话域中
                HttpSession sess = request.getSession();//如果有Session直接返回,没有则创建新的Session对象
                sess.setAttribute("currentUser", current);
                response.sendRedirect("worker.jsp");
            }else {
                response.sendRedirect("login.jsp?loginfaild=error");//登录失败跳转到登录页面
            }
        }
    
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="UsersServlet" method="post">
            <%!
                String uname = "";
                String upwd = "";
            %>
            <%
                Cookie []cookies = request.getCookies();
            
                if(cookies !=null && cookies.length>0){
                    
                    for(int i=0;i<cookies.length;i++){
                        
                        if(cookies[i].getName().equals("logininfo")){
                            uname = cookies[i].getValue();//提取用户名
                        }else if(cookies[i].getName().equals("logininfo2")){
                            upwd = cookies[i].getValue();//提取密码
                        }
                    }
                }
            %>
            用户名称:<input name="username" value="<%=uname%>"><br>
            登录密码:<input name="password" type="password" value="<%=upwd%>">
            <input type="checkbox" name="savepwd" />保存密码
            <br>
            <input name="login" value="登录" type="submit">
        </form>
        <%
            String mess = request.getParameter("loginfaild");
            if(mess != null && mess.equals("error")){
                
            %>
                <label style="color:red">系统提示:用户名不存在或密码错误,登录失败</label>
        <%    }
        %>
    </body>
    </html>
  • 相关阅读:
    CSS:关于CSS Hack
    JS数据交互:动态从数据库中获取数据填充Select
    Oracle数据库—— 事务处理与并发控制
    Java 实现任意N阶幻方的构造
    Java 实现奇数阶幻方的构造
    Web前端开发笔试&面试_03
    任意多边形的几何变换
    关于网站劫持
    mysql 出现Host 'localhost' is not allowed to connect to this MySQL server 错误
    mysql 导入表数据中文乱码
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/15873191.html
Copyright © 2020-2023  润新知