zoukankan      html  css  js  c++  java
  • 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

    最后的实验结果如下:

  • 相关阅读:
    【Eclipse】怎样把代码复制到word中并保持颜色
    windows下配置gvim
    这是给开发者的弥天大谎还是至理名言?
    Linux中常用软件安装(基于Ubuntu)
    MyEclipse 9.1优化技巧
    【数据库复习】函数依赖
    Windows下使用Flex入门
    【数据库复习】SQL
    浏览器中的“Linux”
    Unity开发原则
  • 原文地址:https://www.cnblogs.com/sunny-daylk/p/8647224.html
Copyright © 2011-2022 走看看