什么是过滤器
在struts2 中集成了过滤器,并可以根据需要选择合适自己的过滤器进行配置 ,
- 过滤器:是基于函数回调的,运用java中的反射机制工作在struts2只能对于action起作用,在servlet根据需要拦截
- 拦截器:比过滤器功能更强大,可以拦截所以client请求,以及struts2中值栈的请求
servelt实现过滤器 implement Filter 接口即可
struts2实现过滤器 extends AbstractInterceptor 并覆盖 interceptter方法
这里以标题为准 演示 servlet 拦截器的实现方法
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>fifterDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 实现拦截器 -->
<filter>
<filter-name>filter</filter-name>
<filter-class>fifterDemo.fifterdemo</filter-class>
</filter>
<!-- 拦截器映射 -->
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
code.java
package fifterDemo;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @author DGW
* @date 2017 2017年5月3日 下午10:15:12
* @filename fifterdemo.java @TODO
*/
public class fifterdemo implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (request.getParameter("user").equals("")) {
System.out.println("null值 已经过滤");
}
RequestDispatcher dispatcher = request
.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);
}
}