案例:实现第一个Filter程序

一、创建MyServlet

package cn.itcast.chapter08.filter;

public class MyServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,  
     HttpServletResponse response)
			throws ServletException, IOException {
		response.getWriter().write("Hello MyServlet ");
	}
	public void doPost(HttpServletRequest request, 
                           HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
}

二、部署项目并访问

http://localhost:8080/chapter08/MyServlet


三、创建MyFilter,拦截访问MyServlet的请求

package cn.itcast.chapter08.filter;

public class MyFilter implements Filter {
	public void init(FilterConfig fConfig) throws ServletException {
		// 过滤器对象在初始化时调用,可以配置一些初始化参数
	}
	public void doFilter(ServletRequest request,
     ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 用于拦截用户的请求,如果和当前过滤器的拦截路径匹配,该方法会被调用
		PrintWriter out=response.getWriter();
		out.write("Hello MyFilter");
	}
	public void destroy() {
		// 过滤器对象在销毁时自动调用,释放资源
	}
}

四、web.xml配置MyFilter

<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>cn.itcast.chapter08.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>/MyServlet</url-pattern>
</filter-mapping>

五、重启tomcat并访问

六、配置信息解释

<filter>注册一个Filter
    <filter-name>MyFilter</filter-name>设置Filter名称
    <filter-class>cn.itcast.chapter08.filter.MyFilter</filter-class>设置Filter类的完整名称
  </filter>
  <filter-mapping>设置哪个Filter拦截哪些请求
    <filter-name>MyFilter</filter-name>必须同上
    <url-pattern>/MyServlet</url-pattern>拦截哪些请求
  </filter-mapping>

猜你喜欢

转载自blog.csdn.net/daqi1983/article/details/121345515