• javaweb登陆过滤器实现


    在web.xml中配置登陆过滤器:

    <!-- 配置登陆过滤器 -->
        <filter>
            <filter-name>loginFilter</filter-name>
            <filter-class>weijiabin.BBS.Utils.LoginFilter</filter-class>
            <init-param>
                <param-name>passUrl</param-name>
                <param-value>index;login;FunctionServlet</param-value>
               </init-param>
        </filter>
        
        <filter-mapping>
            <filter-name>loginFilter</filter-name>
               <url-pattern>/*</url-pattern>
        </filter-mapping>
    上边代码中的param-value用来设置不进行拦截的地址关键字(以;作为分隔符),在下边过滤器代码中用passUrl表示

    然后写过滤器代码:
    public class LoginFilter implements Filter {
    
    	@Override
    	public void destroy() {
    		// TODO Auto-generated method stub
    
    	}
    	String passUrl = "";
    	@Override
    	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
    			throws IOException, ServletException {
    		 HttpServletRequest httpRequest=(HttpServletRequest)arg0;
    	        HttpServletResponse httpResponse=(HttpServletResponse)arg1;
    	        HttpSession session=httpRequest.getSession();
    	        String[] strArray = passUrl.split(";");
              //下边循环作用是依次检查访问的url中是否包含passurl中的关键字,如果包含则不进行拦截 for (String str : strArray) { if (str.equals(""))//如果在上边配置中设置的url为空,则说明都需要进行拦截,跳过此循环 continue; if (httpRequest.getRequestURL().indexOf(str) >= 0) { arg2.doFilter(httpRequest, httpResponse); return; } } if(session.getAttribute("sessionUser")!=null){ arg2.doFilter(httpRequest, httpResponse); } else{ httpResponse.sendRedirect(httpRequest.getContextPath()+"/login.jsp"); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub passUrl = arg0.getInitParameter("passUrl"); } }

      

  • 相关阅读:
    学习Java的第八天
    学习Java的第七天
    学习Java的第六天
    学习Java的第五天
    学习Java的第四天
    学习Java的第三天
    学习Java的第二天
    学习Java的第一天
    第九天
    第八次
  • 原文地址:https://www.cnblogs.com/ITDreamer/p/9647981.html
Copyright © 2020-2023  润新知