`
qinyaojin
  • 浏览: 4779 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

配置拦截器

阅读更多
通过使用拦截器,我们可以在Action中的方法执行之前先执行一些我们事先定义好的方法,也可以在Action中的方法执行之后立即执行一些我们事先定义好的方法。在开发的过程中,拦截器将是一个强有力的工具。拦截器有很多功能,如下所示。

校验(validation):检查输入是否正确。

属性封装(property population):将输入传输和转化为对象的属性。

日志(logging):记录关于每个Action的详细信息。

切面(profiling):记录Action的吞吐量。

我们可以将多个拦截器链接在一起形成一个拦截器栈。比方说一个Action不仅要对客户端的资格进行审查,还要记录它自己的行为,那么我们可以将实现这两个功能的拦截器放在一起,形成一个拦截器栈(interceptor stack)。拦截器是以Java类的形式实现的,因此每一个拦截器都有一个唯一的类名。为了让对拦截器的参考更加容易,我们可以在框架中为每个拦截器注册一个更简单的名字。

下面给出了一个注册拦截器的例子:

   1. <interceptors> 
   2.     <interceptor name="security" class="com. 
   3.     company.security.SecurityInterceptor"/> 
   4.     <interceptor-stack name="secureStack"> 
   5.         <interceptor-ref name="security"/> 
   6.         <interceptor-ref name="defaultStack"/> 
   7.     </interceptor-stack> 
   8. </interceptors>

在定义一个拦截器栈的时候,单个的拦截器和拦截器栈可以以任意的顺序混合在一起,Struts 2框架将会按照拦截器在栈里面的顺序调用它们。大多数应用程序都会定义一个默认的拦截器栈,如<default-interceptor-ref name="defaultStack"/>,默认的拦截器栈会作用于<package>中的每个<action>上。当然<action>还可以定义它自己的本地(局部)栈,如下面例子所示:

   1. <action name="VelocityCounter" class="org.apache.struts2.example.counter.SimpleCounter"> 
   2.     <result name="success">success.jsp</result> 
   3.     <interceptor-ref name="defaultComponentStack"/> 
   4. </action>

上面讲解了struts.xml中常用的7个功能元素的配置,在后面的开发中我们将通过实例来展示如何使用它们。

在Struts 2核心JAR包的根目录下有一个struts-default.xml文件,这个文件是自动加载的,不需要在我们的struts.xml文件中用<include>导入。
分享到:
评论

相关推荐

    SpringMVC配置拦截器实现登录控制的方法

    4. SpringMVC中的拦截器实现登录控制的流程:首先配置拦截器,指定需要拦截的URL路径和排除的URL路径(如登录页面和静态资源路径等)。拦截器的实现类中,preHandle方法中首先检查请求的URI是否在排除的URL列表中,...

    spring mvc xml配置拦截器

    2. **配置拦截器** 在Spring MVC的配置文件(通常为`servlet-context.xml`)中,我们需要声明拦截器并将其添加到`&lt;mvc:interceptors&gt;`标签下。以下是一个示例配置: ```xml xmlns:xsi=...

    ssm配置及struts文件,拦截器.zip

    通过在struts.xml中配置拦截器栈,你可以控制拦截器的执行顺序和行为。 总的来说,这个压缩包提供的资料涵盖了SSM框架的基本配置、Struts2的文件上传和拦截器的深入理解,对于想要学习和使用这些技术的开发者来说是...

    mybatis 分页拦截器及拦截器配置

    MyBatis 分页拦截器是实现数据库查询分页效果的一种高效解决方案。在传统的SQL查询中,我们通常需要手动编写...在实际项目中,根据业务需求选择合适的分页插件,并正确配置拦截器,能够有效提升开发效率和代码质量。

    自定义拦截器的实现以及拦截器的详细配置

    3. **注解方式配置**:除了XML配置,Struts2还支持注解方式来配置拦截器。在Action类上使用`@InterceptorRef`注解指定拦截器栈。 ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts...

    SpringBoot整合Mybatis完整详细版含注册、登录、拦截器配置

    - **配置拦截器**:在`WebMvcConfigurer`的实现类中,通过`addInterceptors`方法添加自定义的拦截器,定义拦截的URL规则和处理逻辑。 - **拦截器的执行流程**:拦截器会在Controller方法执行前后进行回调,可以...

    struts2自定义拦截器配置心得

    - `struts.xml`是Struts2的主配置文件,用于全局配置拦截器、包、Action等。在这里,我们看到配置了一个名为`login`的自定义拦截器,其类为`interceptor.StrutsLoginInterceptor`。 - 使用`interceptor-stack`来...

    spring boot配置拦截器代码实例

    Spring Boot 配置拦截器代码实例 Spring Boot 框架提供了强大的拦截器机制,允许开发者在请求处理之前、之后或抛出异常时执行特定的逻辑。拦截器可以用来实现身份验证、日志记录、缓存处理等功能。本文将详细介绍 ...

    uni-app 请求拦截器

    【uni-app请求拦截器】是基于uni-app框架实现的一种机制,它允许开发者在发送网络请求前和接收到响应后执行自定义的操作。这种机制对于统一处理请求头、数据格式、错误处理以及添加全局的请求前后的逻辑非常有用,极...

    struts2 拦截器实例

    3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...

    ehcache配置拦截器缓存页面

    本文将深入探讨如何配置Ehcache作为拦截器来缓存页面,以此提升Web应用的性能。 首先,我们需要了解Ehcache的基本概念。Ehcache是一个开源的、内存级的缓存解决方案,它支持本地缓存和分布式缓存。通过在内存中存储...

    Spring Boot实战(连接MySQL数据库+使用Spring Data Jpa+配置拦截器及实现跨域访问等)

    Spring Boot实战(连接MySQL数据库+使用Spring Data Jpa+配置拦截器及实现跨域访问+整合Redis使用Docker部署Spring Boot项目+使用AOP的正确姿势+整合Mybatis并完成CRUD操作+整合 thymeleaf+整合 MyBatis (XML 版))

    拦截器解决中文乱码问题

    2. **配置拦截器**:在Spring的配置文件(如`web.xml`或`spring-mvc.xml`)中,我们需要注册这个拦截器,将其添加到拦截器链中。 3. **设置请求编码**:在`preHandle`方法中,我们可以获取到HttpServletRequest对象...

    Struts2拦截器及其用法详细说明

    3. 在Struts2的配置文件(struts.xml)中声明并配置拦截器,指定拦截器的执行顺序和作用范围。 **四、拦截器的配置** Struts2的拦截器可以通过XML或注解两种方式进行配置: - XML配置:在`struts.xml`文件中,...

    Struts2 配置第一个拦截器

    3. **配置拦截器栈**: 拦截器通常不是单独工作的,而是组合成一个“拦截器栈”(Interceptor Stack)。在`&lt;interceptors-stack&gt;`标签内定义拦截器栈,并通过`&lt;interceptor-ref&gt;`引用已注册的拦截器。 ```xml .....

    sql盲注拦截器配置文件

    通过配置拦截器,我们可以设定规则来识别并阻止潜在的SQL注入尝试。 配置拦截器的关键步骤包括: 1. **识别可疑输入**:拦截器首先需要识别出哪些请求参数可能是攻击者尝试注入SQL代码的地方。这通常涉及到对HTTP...

    在Ejb中加入拦截器

    同时,如果一个bean中既定义了注解拦截器又配置了XML拦截器,那么XML配置的拦截器会在注解拦截器之前执行。 **5. 示例** ```java @Stateless public class MyEJB { @AroundInvoke public Object logInvocation...

    SpringBoot的拦截器

    2. 配置拦截器:接下来,我们需要在Spring Boot的配置类中注册这个拦截器,让它生效。可以通过实现`WebMvcConfigurer`接口并覆盖`addInterceptors()`方法来完成。 ```java @Configuration public class ...

    mybatis分页拦截器

    2. **配置拦截器**:在MyBatis的配置文件中,我们需要声明并配置拦截器,指定其类名以及可能的参数,例如分页插件的属性,如当前页数、每页记录数等。 3. **拦截器链**:MyBatis使用拦截器链模式,多个拦截器会按照...

Global site tag (gtag.js) - Google Analytics