码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet过滤器-日志记录

时间:2018-03-25 22:18:42      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:请求   vax   ima   过滤器   应用   数据交互   src   9.png   提交表单   

一,什么是servlet过滤器?

过滤器是在数据交互之间过滤数据的中间组件,独立于任何平台或者 Servlet 容器。

Servlet过滤器可以应用在客户机和 servlet 之间、servlet 和 servlet 或 JSP 页面之间,以及所包括的每个 JSP 页面之间。

二,sevlet过滤器的作用

servlet过滤器用于根性进入servlet的请求和走出servlet的相应中的有效负载和头信息。过滤器不产生响应,他们只修改或适配请求和响应。servlet过滤器即filter可以认为是servlet的一种加强版,它主要用于对用户亲求进行预处理。

filter的主要用处:1,在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。

        2,根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

        3,在HttpServletRequest到达客户端之前,拦截HttpServletResponse。

        4,根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

filter的典型用例:身份验证,日志记录,数据压缩和加密

三,使用filter写日志

创建Filter必须实现javax.servlet.Filter接口,接口的的三个方法如下:

init(FilterConfig config):这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。
destroy():Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源。
doFilter(ServletRequest req, ServletResponse resp, FilterChain chain):这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器。

我们可以使用注解(@WebFilter)的方式来定义一个filter,在urlPattens中指定你想要拦截的url地址,在这次实验中我拦截的是全部的用户请求地址(/*),filter的配置方式与servlet的配置方式擦汗不多,现在开始实际操作一下吧!

 

我使用的是gradle官网的构建webapplication的例子,用户首先访问到的是index.jsp,在界面中,设置了一个提交按钮,通过post方法提交表单,并且交给servlet处理,再通过forward函数设置处理的文件为response.jsp

以下是一些实验文件及结果:

HelloServlet.java

技术分享图片

 

 LogFilter.java

 

 技术分享图片

index.jsp

技术分享图片

response.jsp

技术分享图片

最后的实验结果如下:

技术分享图片

 

Servlet过滤器-日志记录

标签:请求   vax   ima   过滤器   应用   数据交互   src   9.png   提交表单   

原文地址:https://www.cnblogs.com/sunny-daylk/p/8647224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!