赞
赏
实现一个 JavaEE Filter 过滤器的功能。
分别使用 XML 方式和注解的方式配置一个过滤器,然后分别创建一个 Servlet 验证拦截器作用。
Filter 代码:
public class FilterDemo01 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("嗨客网(www.haicoder.net)\n");
System.out.println("过滤器拦截");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {}
}
web.xml 文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--使用配置的方式写过滤器-->
<filter>
<!--过滤器的名字-->
<filter-name>filter01</filter-name>
<!--过滤器的完全限定名-->
<filter-class>net.haicoder.filter.FilterDemo01</filter-class>
</filter>
<filter-mapping>
<!--必须与上面的过滤器名字相同-->
<filter-name>filter01</filter-name>
<!--过滤器地址-->
<url-pattern>/demo01</url-pattern>
</filter-mapping>
</web-app>
Servlet 代码:
@WebServlet("/demo01")
public class ServletDemo01 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Servlet程序运行");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
浏览器访问 Servlet,如下图:
控制台输出,如下图:
Filter 代码:
// 配置要过滤的地址
@WebFilter("/demo02")
public class FilterDemo02 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("嗨客网(www.haicoder.net)\n");
System.out.println("过滤器拦截");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {}
}
Servlet 代码:
@WebServlet("/demo02")
public class ServletDemo02 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Servlet程序运行");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
浏览器访问 Servlet,如下图:
控制台输出,如下图:
以上案例分别使用 XML 配置的方式和注解的方式配置 Filter(两种配置任选其一即可)。