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>
<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 {
}
}
相关文章推荐
- Java实现的拦截器
- java实现拦截器
- JAVA反射实现一个拦截器(Interceptor)
- java SpringMVC+Spring+mybatis自定义aop拦截器实现入参出参控制
- java-拦截器实现跨域支持
- Java实现的拦截器模型
- 使用java配置类实现spring mvc的拦截器
- Java实现的拦截器
- Java实现的拦截器
- WebService -- Java 实现之 CXF ( 添加系统预定义的拦截器)
- PHP简单拦截器实现方法【参考java的AOP】
- 使用Java动态代理实现的拦截器
- Java程序员从笨鸟到菜鸟之(四十六)细谈struts2(八)拦截器的实现原理及源码剖析
- 进击的java(8):springmvc+redis实现登录与拦截器
- 好记性不如烂笔头47-java拦截器-用CGLib实现动态代理(2)
- Java实现的拦截器模型(代理模型的实质)
- 模拟实现Struts拦截器-蕴含着代理模式,AOP,工厂模式,依赖注入,Java 反射,动态构造等机制
- java实现的拦截器
- Java实现的拦截器
- WebService -- Java 实现之 CXF ( 使用Spring添加拦截器)