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

最后的实验结果如下:

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

时间: 2024-11-05 11:35:40

Servlet过滤器-日志记录的相关文章

Servlet过滤器——日志记录过滤器

1.概述 在实际的项目开发过程中,经常需要在项目运行时,记录并在控制台中输出运行时的日志信息,便于查看项目的运行状况.本实例将介绍如何应用过滤器实现日志记录.运行本实例,将在控制台中输出项目运行时的日志信息. 2.技术要点 本实例主要应用Apache的Log4j组件输出日志信息.该组件主要用于日志管理.Logger是Log4j的日志记录器,它是Log4j的核心组件. 在程序中可以使用Logger类的不同方法来输出各种级别的日志信息,Log4j会根据配置的当前日志级别决定输出哪些日志.对应各种级别

Servlet过滤器介绍之原理分析

zhangjunhd 的BLOG   写留言去学院学习发消息 加友情链接进家园 加好友 博客统计信息 51CTO博客之星 用户名:zhangjunhd文章数:110 评论数:858访问量:1923464无忧币:6720博客积分:6145博客等级:8注册日期:2007-02-03 热门专题更多>> Linux系统基础之菜鸟进阶 阅读量:2359 ARM驱动之Linux驱动程序设计入门 阅读量:2252 HTML5入门教程 阅读量:1392 深入浅出学MySQL 阅读量:1558 热门文章 基于T

操作日志记录

1.存在的意义 所日志记录,就是记录所有的操作,使领导对这个系统的流转了如指掌,同时要是系统出现了问题,也可以清楚找到问题的所在. 2. 界面展示 3. 主要代码分析(提供三种方法)   3.1 方法一 使用aop实现 源码介绍: 01.首先在保证你的环境无误的情况下(我用的是ssh) 02.BussAnnotation.java  (自定义注解) package cn.bdqn.annotation; /** * 自定义注解(用于记录日志) */ import java.lang.annota

JavaWeb学习篇之----Servlet过滤器Filter和监听器

JavaWeb学习篇之----Servlet过滤器Filter和监听器 首先来看一下Servlet的过滤器内容: 一.Servlet过滤器的概念: *************************************************************************************** Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改. Servlet过滤器本身并不产生请求和响应对象,

Servlet过滤器Filter和监听器

一.Servlet过滤器的概念: *************************************************************************************** Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改. Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤作用.Servlet过期能够在Servlet被调用之前检查Request对象,修改Request H

Introducation of Servlet filter(servlet过滤器介绍 )

本文章向大家介绍Servlet Filter,主要包括 Servlet Filter使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 过滤器是一个可以转换请求或响应的标头和内容(或两者)的对象.过滤器与Web组件的不同之处在于过滤器通常不会自行创建响应.相反,过滤器提供可以“附加 ”到任何类型的Web资源的功能.因此,过滤器不应该对作为过滤器的Web资源有任何依赖性; 这样,它可以由多种类型的Web资源组成. 过滤器可以执行的主要任务如下. 查询请求

Spring AOP进行日志记录

在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个方法的调用.然后进行日志记录.使用过滤器的好处是可以自己选择性的对某一些方法进行过滤,记录日志.但是实现起来有点麻烦. 另外一种就是使用Spring的AOP了.这种方式实现起来非常简单,只要配置一下配置文件就可以了.可是这种方式会拦截下所有的对action的每个操作.使得效率比较低.不过想做详细日志

Servlet过滤器和监听器知识总结(转)

 Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤.判断用户的登录状态.过滤器使得Servlet开发者能够在客户端请求到达 Servlet资源之前被截获,在处理之后再发送给被请求的Servlet资源,并且还可以截获响应,修改之后再发送给用户.而Servlet监听器可以  监听客户端发出的请求.服务器端的操作,通过监听器,可以自动激发一些操作,如监听在线人数.  Servlet过滤器简介绍      Servlet过滤器是在Java Servle

Servlet 过滤器

过滤器Filter,是介于Servlet之前,可拦截过滤浏览器对Servlet的请求,也可以改变Servlet对浏览器的响应. 一.过滤器的概念 现在有以下几个请求: 1.针对所有的Servlet,产品经理想要了解从请求到响应之间的时间差. 2.针对某些特定的页面,希望仅有几个用户才能知道. 3.基于安全方面,用户希望输入的特定字符必须过滤并且替换为无害的字符. 4.请求与响应的编码从Big5改为UTF-8. 思路分析: 1.运行Servlet的service()方法前后,各记录一个时间,计算其