您的位置:首页 > 编程语言 > Java开发

java实现拦截器

2017-05-18 17:10 176 查看
1.web.xml配置

<!-- 用户登录拦截器 -->
<filter>
<filter-name>loginfilter</filter-name>
<filter-class>com.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.Filter编写
package com.parma.electric.core.interceptor;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* 用户登录拦截器
* @author PhilShen
*
*/
public class LoginFilter implements Filter {

private static Logger LOGGER = LoggerFactory.getLogger(LoginFilter.class);

@Override
public void destroy() {

}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String requestURI = req.getRequestURI();
if (LOGGER.isDebugEnabled()) {
String params = "";
Map<String, String[]> parameterMap = req.getParameterMap();
for (Entry<String, String[]> entry : parameterMap.entrySet()) {
params += entry.getKey() + ":" + Arrays.toString(entry.getValue());
}
LOGGER.debug("请求url:{} 参数:{}", req.getRequestURI(), params);
}

if (requestURI.endsWith("login.jsp") == false && requestURI.endsWith(".jsp")) {
String str = (String) req.getSession().getAttribute("isLogin");
if (str == null) {
HttpServletResponse resp = (HttpServletResponse) response;
resp.sendRedirect("login.jsp");
return;
}
}
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig arg0) throws ServletException {

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Filter 拦截器