Struts2 拦截器


本文整理自网络,侵删。

拦截器在概念上与servlet过滤器或JDK代理类相同。拦截器允许横切功能,把action以及框架分开实现。你可以使用拦截器实现以下操作:

  • 在调用action之前提供预处理逻辑。

  • 在调用action后提供后处理逻辑。

  • 捕获异常,以便可以执行备用处理。

Struts2框架中提供的许多功能都是使用拦截器实现的,包括异常处理,文件上传,生命周期回调和验证等。事实上,由于Struts2将其大部分功能基于拦截器,因此不太可能为每个action分配7个或8个拦截器。

Struts2框架拦截器

Struts 2框架提供了一个良好的开箱即用的拦截器列表,这些拦截器预先配置好并可以使用。 下面列出了几个重要的拦截器:

序号拦截器和说明
1alias

允许参数在请求之间使用不同的别名。

2checkbox

通过为未检查的复选框添加参数值false,以辅助管理复选框。

3conversionError

将字符串转换为参数类型的错误信息放置到action的错误字段中。

4createSession

自动创建HTTP会话(如果尚不存在)。

5debugging

为开发人员提供一些不同的调试屏幕。

6execAndWait

当action在后台执行时,将用户发送到中间的等待页面。

7exception

映射从action到结果抛出的异常,允许通过重定向自动处理异常。

8fileUpload

便于文件上传。

9

i18n

在用户会话期间跟踪选定的区域。

10logger

通过输出正在执行的action的名称提供简单的日志记录。

11params

设置action上的请求参数。

12prepare

这通常用于执行预处理工作,例如设置数据库连接。

13profile

允许记录action的简单分析信息。

14scope

在会话或应用程序范围内存储和检索action的状态。

15ServletConfig

提供可访问各种基于servlet信息的action。

16timer

以action执行时间的形式提供简单的分析信息。

17token

检查action的有效性,以防止重复提交表单。

18validation

提供action的验证支持。

你可以阅读Struts 2文档,了解上述拦截器的完整信息。接下来我们会告诉你如何在Struts应用程序中使用拦截器。

如何使用拦截器?

让我们看看如何在我们的“Hello World”程序中使用一个已经存在的拦截器。我们将首先使用timer拦截器,目的是测量执行action方法所需的时间。同时我们使用params拦截器,目的是将请求参数发送给action。你可以尝试不在你的例子中使用这个拦截器,然后你会发现name属性没有被设置,因为参数无法发送给action。
我们可以保留HelloWorldAction.java,web.xml,HelloWorld.jsp和index.jsp文件,因为它们已在Hellow World示例一章中创建过了,然后让我们参照下面修改struts.xml文件给它添加拦截器:

 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
   <constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">
      <action name="hello" 
         class="cn.Vue5教程.struts2.HelloWorldAction"
         method="execute">
         <interceptor-ref name="params"/>
         <interceptor-ref name="timer" />
         <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

右键单击项目名称,然后单击“Export”>“WAR File”创建WAR文件。然后在Tomcat的webapps目录中部署这个WAR文件。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/HelloWorldStruts2/index.jsp。结果如下图所示:

阅读剩余部分

相关阅读 >>

Struts2 spring集成

Struts2 异常处理

Struts2 actions动作

Struts2 拦截器

Struts2 数据库访问

Struts2 控制标签

Struts2 架构

Struts2 发送电子邮件

Struts2 环境设置

Struts2 结果类型

更多相关阅读请进入《Struts2》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...