servlet过滤器,监听器

过滤器(Filter)
用于servlet之外对于Resquest或Response的修改,用于对用户请求的预处理,可对HttpServletResponse进行后处理。
实现步骤(于tomcat以及servlet2.5的版本中):
1.创建普通java类,一般单独放一个过滤包下,好区分
2.实现javax.servlet.Filter接口
3.配置web.xml的对应过滤代码
过滤器链
如果有多个过滤器,拦截顺序为web.xml中的配置顺序,谁先配置水谁先执行。
放行时,如果有下一个过滤器,会自动放行到下一个过滤器,如果没有则放行到指定资源

普通java类中的过滤器代码,需要重写方法,需要与servlet同用
public class Filter01 implements Filter {

	/**
	 * 服务器自动调用,初始化方法
	 * 只会执行一次,在服务器启动时就初始化
	*/
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}
	 //过滤方法 ,每次拦截请求时都会调用
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// 放行资源
		chain.doFilter(request, response);
	}
	 //销毁方法,服务器自动调动,只会执行一次,在关闭服务器时触发
	@Override
	public void destroy() {
		System.out.println();
	}
}

web.xml的配置
	 
	    Filter01  
	    com.shsxt.filter.Filter01  
	  
	  
	    Filter01 
	    Servlet01 
	  

监听器
JavaWeb中,监听器是一种组件,能够监听项目的启动和停止,用户会话的创建和销毁,以及各种组件的添加、更新和删除,能够通过监听对象的状态改变,自动做出反应执行响应代码。
实现步骤(于tomcat以及servlet2.5的版本中):
1.创建普通java类,一般单独放一个监听包下,好区分
2.实现javax.servlet.http.HttpSessionListener接口
3.配置web.xml的对应监听代码

创建并重写方法
public class Listener01 implements HttpSessionListener {
	@Override
	public void sessionCreated(HttpSessionEvent se) {
		System.out.println("创建了...");
	}
	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		System.out.println("销毁了");
	}

}
web.xml中的配置

com.shsxt.listener.Listener01

注:使用servlet3.0时不需要配置xml文件,同时创建的servlet,listener,filter类外以注解的方式表示路径
e.g.

可通过自带的servlet软件创建(listener和filter也都可以这么做)
@WebServlet("/s01")    //可随意自定资源名
public class Servlet01 extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("Servlet01...");
	}

}

你可能感兴趣的:(前后端交互)