zoukankan      html  css  js  c++  java
  • 使用filter进行登录验证,并解决多次重定向问题

    最近在做关于filter登录验证的功能,防止未登录的用户直接通过地址进入系统

    LoginFilter类:继承Filter接口

    package com.ss.filter;

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;:
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;

    public class LoginFilter implements Filter{

     
       @Override
       public void init(FilterConfig filterconfig) throws ServletException { }
     
      @Override
       public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
         throws IOException, ServletException  {
          HttpServletRequest servletRequest = (HttpServletRequest)request;
          HttpServletResponse servletResponse = (HttpServletResponse)response;
          HttpSession session = servletRequest.getSession();   
          String path = servletRequest.getRequestURI();  //获取用户请求的uri

          if(session.getAttribute("admin")==null && path.indexOf("/html/login")==-1) {         

             servletResponse.sendRedirect(servletRequest.getContextPath()+"/html/login.html");
             return;
          }
          else {
            filterChain.doFilter(request, response);
          }
       }
     
       @Override
       public void destroy() { }
     
    }

    在web.xml中配置session及filter:

     <!-- 设置session过期时间 min -->
     <session-config>
        <session-timeout>30</session-timeout>
     </session-config> 
     <!-- session过滤器配置相关 -->
     <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.ss.filter.LoginFilter</filter-class>
     </filter>
     <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>*.html</url-pattern>
     </filter-mapping>

  • 相关阅读:
    专门针对初学者的Node.js教程
    windows版的node.js简单示例
    bzoj 1003: [ZJOI2006]物流运输【spfa+dp】
    bzoj 3573: [Hnoi2014]米特运输【树形dp+瞎搞】
    bzoj 1082: [SCOI2005]栅栏【二分+dfs】
    bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】
    bzoj 1049: [HAOI2006]数字序列【dp+二分+瞎搞】
    bzoj 2588: Spoj 10628. Count on a tree【主席树+倍增】
    bzoj 4551: [Tjoi2016&Heoi2016]树【并查集】
    bzoj 4310: 跳蚤【后缀数组+st表+二分+贪心】
  • 原文地址:https://www.cnblogs.com/yao3364/p/7885230.html
Copyright © 2011-2022 走看看