zoukankan      html  css  js  c++  java
  • 自动登录(过滤器filter的应用)

    //反复实验的时候注意数据库数据的更新

    //将数据存储到cookie里面

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
         request.setCharacterEncoding("utf-8");
         HttpSession se = request.getSession();
         String username = request.getParameter("username");
         String password = request.getParameter("password");
         UserService ser=new UserService();
         User1 user=null;
         try {
            user=ser.login(username,password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         System.out.println("您好");
         if(user!=null){
             String autoLogin=request.getParameter("autoLogin");
             if(autoLogin!=null){
                 System.out.println("0");
                 Cookie cookie_username=new Cookie("cookie_username",username);
                 Cookie cookie_password=new Cookie("cookie_password",password);
                 System.out.println(username);
                 System.out.println(password);
                 //设置cookie持续化时间
                 cookie_username.setMaxAge(60*10);
                 cookie_password.setMaxAge(60*10);
                 //设置路径
                 cookie_username.setPath(request.getContextPath());
                 cookie_password.setPath(request.getContextPath());
                 //发送cookie
                 response.addCookie(cookie_username);
                 response.addCookie(cookie_password);
                 System.out.println("0.1");
             }
             //非自动登录部分
             se.setAttribute("user", user);
             response.sendRedirect(request.getContextPath());
         }else{
             request.setAttribute("logininfo", "用户名密码错误");
             request.getRequestDispatcher("login.jsp").forward(request, response);
         }  
        }

    //拦截器部分代码

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            HttpServletRequest req=(HttpServletRequest)request;
            HttpServletResponse resp=(HttpServletResponse)response;
               HttpSession session = req.getSession();
               String cookie_username=null;
               String cookie_password=null;
               System.out.println("1");
               Cookie[] cookies = req.getCookies();
               if(cookies!=null){
                       for(Cookie cookie:cookies){
                          
                           if("cookie_username".equals(cookie.getName())){
                               cookie_username=cookie.getValue();
                           }
                           if("cookie_password".equals(cookie.getName())){
                               cookie_password=cookie.getValue();
                           }
                       }
               }
               System.out.println("3");
               
               if(cookie_username!=null&&cookie_password!=null){
                   UserService ser = new UserService();
                   User1 user=null;
                   try {
                    user=ser.login(cookie_username, cookie_password);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                   session.setAttribute("user", user);
                   if(user!=null){
                       request.getRequestDispatcher("index.jsp").forward(req,resp);
                   }
                   
                   
               }
                
                chain.doFilter(req, resp);
                System.out.println("5");
        }

    //web.xml的配置

    <filter>
        <display-name>Myservlet2</display-name>
        <filter-name>Myservlet2</filter-name>
        <filter-class>cn.jy.web.Myservlet2</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>Myservlet2</filter-name>
        <url-pattern>/*</url-pattern>                              //注意  /*
      </filter-mapping>

  • 相关阅读:
    python基础----装饰器
    python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数
    python基础----文件处理
    python基础
    django时间的时区问题
    django-admin详细设置
    Django框架-模板系统
    Django框架--路由分配系统
    jQuery教程
    django博客项目11
  • 原文地址:https://www.cnblogs.com/Fisherman13/p/10535118.html
Copyright © 2011-2022 走看看