web工程filter拦截器-用户登录

第一步:创建SecurityServlet.java

package org.test.base.filter;

import java.io.IOException;
import java.util.Map;

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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.test.base.common.PropertieUtil;
public class SecurityServlet extends HttpServlet implements Filter {
    private static final long serialVersionUID = 1L;

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
        HttpServletRequest request=(HttpServletRequest)arg0;
        HttpServletResponse response  =(HttpServletResponse) arg1;
        HttpSession session = request.getSession(true);
        String sessionId = session.getId();
        System.out.println(sessionId);
        if (sessionId == null || sessionId.equals("")) {
            System.out.println("sessionId失效");
            return;
        }
        String usercode = (String) request.getRemoteUser();// 登录人
        String user_role = (String)session.getAttribute("role");//登录人角色
        String url=request.getRequestURI();
        if(usercode==null || "".equals(usercode) || user_role == null || "".equals(user_role)) {
             //判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转
             if(url!=null && !url.equals("") && ( url.indexOf("Login")<0 && url.indexOf("login")<0 )) {
                 //response.sendRedirect(request.getContextPath() + "/login.jsp");
             	Map<String, Object> map = PropertieUtil.getPropertie();
                 response.sendRedirect("http://"+map.get("inter.ip")+":"+map.get("inter.port")+"/");
                 return;
             }
         }
         arg2.doFilter(arg0, arg1);
         return;
	}
	
	@Override
	public void init(FilterConfig arg0) throws ServletException {
	}
 
}

第二步:修改web.xml,添加filter配置

<!-- 登录filter拦截 -->
	<filter>
		<filter-name>SecurityServlet</filter-name>
		<filter-class>org.test.base.filter.SecurityServlet</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>SecurityServlet</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

猜你喜欢

转载自blog.csdn.net/qq_24241631/article/details/88185382