Servlet可以分为简单servlet,过滤Servlet, 监听Servlet;
Filter过滤器,是当需要限制用户访问某些资源或者在处理请求时候提前处理某些资源时,即可以使用过滤器完成。
如果要使用一个过滤器必须让一个类实现javax.servlet.Filter接口即可,此接口定义了三个方法,
NO | 方法 | 类型 | 描述 |
1 | public voidinit(Filteronfig config) | 普通 | 过滤器的初始化时调用,可以通过FilterConfig取得配置的初始化参数 |
2 | pubic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain ) | 普通 | 完成具体的过滤操作,然后通过FilterChain让请求继续向下传递 |
3 | public void destory() | 普通 | 过滤器销毁时使用给 |
FilterChain接口的主要作用是将用户的请求传递给其他的过滤器或者Servlet,此接口的方法如下
public void doFilter(ServletRequset request, ServletResponse response)throws Excepton 将请求向下继续传递
登入验证是所有web开发中不可缺少的部分,最早的做法是通过session验证,但是如果每个页面都这样做的话,造成大量代码重复,所以我们使用过滤器可以避免重复的这种操作。
需要注意的是,session本身属于HTTP协议,但是doFilter()方法中定义的是ServletRequest类型的对象,那么要想获得session,则必须进行向下转型,将ServletRequest变为HttpServletRequest接口对象,才能通过getSession()获得session。
例如我们在doFilter方法中
HttServletRequest req=(HttpServletRequest)request;
HttpSession ses=req.getSession();
监听器
主要负责监听web的各种操作,当相关的时间触发后将产生时间,并对时间进行处理。
本部分不做详细介绍,如有需要请查阅相关资料。