zoukankan      html  css  js  c++  java
  • cookie的使用

    一.过滤器

    import java.io.IOException;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet Filter implementation class Filter
     */
    @WebFilter("/*")
    public class Filter implements javax.servlet.Filter {
    
        /**
         * Default constructor. 
         */
        public Filter() {
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see Filter#destroy()
         */
        public void destroy() {
            // TODO Auto-generated method stub
        }
    
        /**
         * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
         */
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            // TODO Auto-generated method stub
            
            // 将请求转换成HttpServletRequest请求
            HttpServletRequest httpRequest=(HttpServletRequest)request;
            // 将响应转换成HttpServletResponse响应
            HttpServletResponse httpResponse = (HttpServletResponse)response;
            //截取用户的请求地址
            String from =httpRequest.getServletPath();
            System.out.println(from);
            if(from.equals("/login.html")) {
                //获取本站在客户端上保留的所有的cookie
                Cookie[] cookies=httpRequest.getCookies();
                if(cookies!=null) {
                    //遍历cookie数组
                    
                    httpResponse.sendRedirect("cookieSave");
                }
                // 将保存在cookie中的用户名和密码保存在request
                /*httpRequest.setAttribute("username",username);
                httpRequest.setAttribute("password", password);*/
                
                // 放行请求
                chain.doFilter(request, response);
            }
            else {
    
                // 用户请求的地址是servlet,直接放行请求
    
                chain.doFilter(request, response);
    
            }
        }
    
        /**
         * @see Filter#init(FilterConfig)
         */
        public void init(FilterConfig fConfig) throws ServletException {
            // TODO Auto-generated method stub
            //System.err.println("filter init");
        }
    
    }
    View Code

    二.servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            //response.getWriter().append("Served at: ").append(request.getContextPath());
            response.setContentType("text/html; charset=utf-8");
            request.setCharacterEncoding("utf-8");
            String un=request.getParameter("username");
            String pwd=request.getParameter("password");
            String rem=request.getParameter("remember");
            Cookie[] cookies=request.getCookies();    
    
            if(cookies!=null) {
                for (Cookie cookie : cookies) {                    //遍历cookie对象
                    if (cookie.getName().equals("username"))
                    {//  已登录且记住密码 跳转到首页
                        un = cookie.getValue();
                        //System.out.println(un);
                    }
                    if(cookie.getName().equals("password")) {
                        pwd = cookie.getValue();
                        //System.out.println(pwd);
                    }
    //                System.out.println(cookie.getName());
    //                 cookie.setMaxAge(0);
    //                 cookie.setPath("/");
    //                 cookie.setValue("");
    //                 response.addCookie(cookie);
    
                }
            }
            /*Cookie[] cookies2=request.getCookies();    
            for (Cookie cookie : cookies2) {
                if (cookies2!=null) {
                    
                    System.out.println("*********");
                }
            }*/
            
            //判断账号密码是否正确
                if(un.equals("tom") && pwd.equals("123") && rem!=null) {//记住密码
                    Cookie cookie=new Cookie("username", "tom");    
                    Cookie cookie2 = new Cookie("password", "123");//创建一个新的Cooike
                    cookie.setMaxAge(30*24*60*60);                    //设置最大的保存时间    
                    cookie2.setMaxAge(30*24*60*60);
                    response.addCookie(cookie);                
                    response.addCookie(cookie2);//添加cookie 到服务器端
                    response.sendRedirect("shouye.html");            
                }
                
                else if(un.equals("tom") && pwd.equals("123")) {        //未记住密码
                    response.sendRedirect("shouye.html");
                }
                else {
                     log("用户名或密码错误");
                     response.sendRedirect("login.html");
                }
            
            }
    View Code
  • 相关阅读:
    2003开机自动登陆然后马上锁定计算机
    修改DNS、网关的VBS代码,不需重起即时生效
    页面自动刷新代码
    dos命令给权限
    无法运行VBS代码
    去掉2003或2kserver版的系统启动报错
    让易语言的信息框总在最前
    教你轻松搞定RJ45网线接头
    小技巧:如何设定永久通用WinRAR压缩密码
    Bootstrap入门教程
  • 原文地址:https://www.cnblogs.com/1234ply/p/10654231.html
Copyright © 2011-2022 走看看