servlet过滤器简化版

时间:2023-03-09 09:34:23
servlet过滤器简化版

什么是过滤器

在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); } }

servlet过滤器简化版