Filter
过滤器,对用户请求进行预处理,对web应用进行资源控制
- 实现第一个Filter–HelloFilter
1)实现Filter接口
public class HelloFilter implements Filter {
@Override
public void destroy() {//销毁方法
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {//初始化方法
}
@Override
//实现过滤操作
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("执行Servlet前");
System.out.println("Hello Filter");
//通过本过滤器,调用下一个过滤器
chain.doFilter(request, response);
System.out.println("执行Servlet后");
}
}
- 写一个HelloSert测试
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("Hello Servlet");
//resp.sendRedirect("index.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}
2)配置Filter(及Servlet)
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.zhushen.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<filter>
<filter-name>HelloFilter</filter-name>
<filter-class>com.zhushen.filter.HelloFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HelloFilter</filter-name>
<url-pattern>/*</url-pattern>
<!--<url-pattern>*.html / *.jsp</url-pattern>-->
</filter-mapping>
3)运行结果