浅谈Struts2的过滤器

过滤器:

           过滤器可以处理用户的请求和程序响应的内容,可用于权限控制、编码转换的场合。过滤器是servlet规范中的一部分,任何java web工程都可以使用。

    使用过滤器之前你得定义一个过滤器(实例化一个对象),也可以根据需求自己写一个类(继承java.Servlet.Filter接口,实现init,doFilter和destory三个方法)然后在这里实例化,以便下面使用。

1 <filter>
2         <filter-name>过滤器名称</filter-name>
3         <filter-class>过滤器对应的类</filter-class>
4         <!-- 初始化参数 -->
5         <init-param>
6             <param-name>参数名称</param-name>
7             <param-value>参数值</param-value>
8         </init-param>
9 </filter>

    过滤器必须和特定的URL关联才能发挥作用,关联的方式有3种:(过滤器名就是上面定义的过滤器)

1.与一个URL资源关联(仅仅是在请求xxx.jsp时过滤)

1 <filter-mapping>
2         <filter-name>过滤器名</filter>
3         <url-pattern>xxx.jsp</url-pattern>
4 </filter-mapping>

    2.与一个URL目录下的所有资源关联(任何的请求都会过滤)

1 <filter-mapping>
2         <filter-name>过滤器名</filter>
3         <url-pattern>/*</url-pattern>
4 </filter-mapping>

    3.与一个Servlet关联(请求指定的Servlet时会过滤)

1 <filter-mapping>
2         <filter-name>过滤器名</filter>
3         <url-pattern>Servlet名称</url-pattern>
4 </filter-mapping>

   这样,一个简单的Struts2的过滤器就配置好了(以上的配置都是在web.xml中进行的)。但它的实现流程是怎么样的呢?

假设现在有一个客户端请求(假设该请求已经被关联),这个请求会经过一系列的过滤器(过滤器链),每次经过一个过滤器都会根据当前过滤器对应的类实例化一个对象(调用init方法),并且调用里面的doFilter方法(该方法里面放的是你自己过滤的逻辑),只有通过了当前的过滤器才会到下一个过滤器,直到通过全部过滤器,如果没有通过则调到指定的错误页面。(下面是当一个过滤器通过时执行下一个过滤器的代码,在doFilter方法中)

1  // this is a normal request, let it pass through
2     chain.doFilter(request, response);

然后调用FilterDispatchar,根据用户的不同的请求做不同的处理.....(不是过滤器的内容,就不再阐述)

原文地址:https://www.cnblogs.com/baikaizhuliangshui/p/11621235.html

时间: 2024-10-15 16:58:18

浅谈Struts2的过滤器的相关文章

浅谈struts2标签中的2个很常用的标签的用法(radio和select)

1.如图所示我们需要在前台的页面通过radio和select将对应的数据库中的数据显示到选项当中,这也是我们做项目中经常需要做的,动态的显示,而不是静态的显示. 首先我们需要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码如下: <input type="RADIO" name="sex"

浅谈Struts2的拦截器

拦截器:       在谈拦截器之前,我觉得有必要提一下和过滤器的区别.     1. 首先拦截器是Struts2自己的,只有用了Struts2框架才可以使用拦截器,而过滤器是servlet规范中的一部分,任何java web工程都可以使用: 2. 其次拦截器只可以拦截Action,而过滤器理论上可以拦截任何东西(jsp,html,css,image或者js等). 拦截器配置(在Struts2.xml中进行): 1 <package name="default" extends=

浅谈Struts2拦截器的原理与实现

拦截器与过滤器           拦截器是对调用的Action起作用,它提供了一种机制可以使开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可重用的部分的方式,很多业务逻辑都是靠拦截实现的,比如校验,验证登录权限(比如下载时跳转到登陆页面)等等.     过滤器是对整个的请求过程起作用!换句话说就是拦截器没有过滤器的范围广.过滤器是在java web中,你传入的request,response提前过滤掉一些信息

浅谈Struts2(一)

一.Struts2引言 1.Struts2框架的概念 解决的MVC开发过程中,控制器(Controller)的通用问题. a.什么是MVC开发 MVC开发是一种编程思想,由设计者人为的把一个项目,划分为三个层次:M(Module模型层)V(View视图层)C(Controller控制层). b.javaEE编程体系中MVC编程思想的实现 (1)V(View视图层)------jsp.html (2)C(Controller控制层)------Servlet (3)M(Module模型层)----

浅谈Struts2(三)

一.Struts2收集client的参数 核心思路: <form method="post" action="XXXX"> <input type="text" name="username"/> <input type="text" name="password"/> <input type="text" name=&quo

浅谈struts2的国际化----i18n

可能大家在使用struts框架的时候,偶尔会看到这个词: i18n.也就是 Internationalization    i 开头,n 结尾, 总共18个字母,今天的主要内容就是围绕这 四个字母. struts2国际化是建立在 java 国际化的基础上的,通过提供不同国家.语言环境的消息资源,然后通过 ResourceBundle 加载指定Locale 对应的资源文件,取得文件中指定的 key 对应的信息. Locale 对象表示了特定的地理.政治和文化地区.需要 Locale 来执行其任务的

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

浅谈Struts2

计应134(实验班) 张人川 一.Struts2的优点: 在软件设计上Struts2没有像Struts1那样和Servlet AP紧密的耦合.Strus2设计属于无侵入设计. Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能. Struts2提供了类型转换器,我们可以吧特殊的请求参数转换成需要的类型. Struts2提供支持多种表现层技术,如JSP,freeMarker,Velocity Struts2的输入校验可以对指定方法进行校验 提供了全局范围,包范围和Act

浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

1.如图所看到的我们须要在前台的页面通过radio和select将相应的数据库中的数据显示到选项其中,这也是我们做项目中常常须要做的,动态的显示,而不是静态的显示. 首先我们须要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码例如以下: <input type="RADIO" name="sex&qu