• Servlet过滤器-日志记录


    一,什么是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

    最后的实验结果如下:

  • 相关阅读:
    Java++:一文搞懂分布式锁及其业务场景
    Get MSN ADS
    删除废弃的全文索引
    门户网页分页(pagination Style)
    SQL Server 无法查看属性
    FileUpload Control In ASP.NET2.0
    根据IP和掩码获取主机IP区域
    IIS 使用域用户
    Get MSN ADS by xmlHttpRequest
    二进制时钟
  • 原文地址:https://www.cnblogs.com/sunny-daylk/p/8647224.html
Copyright © 2020-2023  润新知