100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > servlet过滤器(Filter)

servlet过滤器(Filter)

时间:2023-11-22 18:43:42

相关推荐

servlet过滤器(Filter)

过滤器(Filter)

什么是过滤器

过滤器是Javaweb的三大组件之一。他与servlet很相似,不过过滤器是用来拦截请求的,而不是处理请求的。

当用户请求某个servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么,会继续执行用户请求的servlet,如果Filter不放行,那么就不会执行用户请求的Servlet。

他会在一组资源(servlet jsp CSS HTML .....)的前面执行

他可以让请求得到目标资源,也可以不让请求达到!

*过滤器有拦截请求的能力!

如:没有登录的人拦截 不然其访问对应的资源

过滤器如何编写?

写一个类实现javax.servlet.Filter接口

2.在web.xml中就行配置【与servlet非常相似】

Tips当编写多个filter时,会按照配置顺序执行filter。

Filter的生命周期

和Serlvet几乎一致。

在服务器启动时创建对象,之创建一次。在服务器关闭时销毁filter对象

初始化方法:

publicvoidinit(FilterConfig config)

在filter对象创建之后执行,用于初始化filter对象。

Config参数可以获取初始化参数。

销毁的方法:

publicvoiddestroy()

在服务器关闭时,销毁filter对象之前执行,主要用于释放资源。

过滤器处理方法:

publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChainchain)

处理要过滤的请求的方法。

参数:

ServletRequest 是HttpServletRequest的父接口。

实际上服务传入的对象就是HttpServletRequest类型的参数。

所以可以直接强制类型转化

HttpServletRequestreq= (HttpServletRequest)request;

ServletResponse 是HttpServletResponse父接口。

服务器传入的实际也是HttpServletResponse对象。同样可以强制类型转换。

tips:

在filter中同样可以使request转发,或者response重定向。

FilterChain:主要是调用其方法 doFilter(request,response)

如果存在下一个filter,则直接调用下一个filter,如果不存在,则直接访问资源。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。