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

    一、实现效果图

    1.先是登陆状况,选择记住用户:

    2.登陆成功:

    3.保存好的cookie文件:

    4.存好cookie后,以后可直接进入首页:

    5.删除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");
        }
    
    }

    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");
                }
            
            }

    三、链接:

    链接:https://pan.baidu.com/s/1egl8tuz2TjrEf1Zr8VkkEg
    提取码:bbp3
    复制这段内容后打开百度网盘手机App,操作更方便哦

  • 相关阅读:
    MySQL 存储过程实例
    [MySQL优化] -- 如何了解SQL的执行频率
    [MySQL优化] -- 如何定位效率较低的SQL
    [MySQL优化] -- 如何查找SQL效率地下的原因
    [MySQL优化] -- 如何使用SQL Profiler 性能分析器
    2020.10.09软件更新公告
    2020.04.12软件更新公告
    2020.04.11软件更新公告
    2020.02.21软件更新公告
    程序员调用MODI的正确姿势
  • 原文地址:https://www.cnblogs.com/-heart-/p/10649856.html
Copyright © 2011-2022 走看看