JSP 开发之Struts2内建自定义拦截器
关于JSP开发中Struts2内建自定义的介绍
Struts2框架中的自定义是一种强大的工具,用于请求参数、为Action属性赋值、执行数据校验以及处理文件上传等操作。当需要扩展Struts2的功能时,我们可以通过创建自定义并将其配置到Struts2容器中来实现。
配置主要涉及到四个配置元素:
1. 配置元素:用于配置自定义的基本信息,包括的名称和实现的类。还可以配置的参数。
例如:
```xml
参数值
...
```
2. 栈配置元素:用于配置一个栈,一个栈中可以包含多个,也可以引用其他的栈。这些按照配置的先后顺序执行。
例如:
```xml
参数值
...
```
3. 在包配置中使用:配置好了之后,可以在Struts2的包配置中使用该。在使用自定义时,还必须显示地使用系统默认的defaultStack。
例如:
```xml
```
Struts2框架中提供了一个强大的实现类——AbstractInterceptor。这个类已经为我们实现了init()和destroy()方法,而我们只需专注于实现intercept()拦截方法即可。让我们通过一个简单的例子来展示如何使用它。
代码示例:
```java
public class SimpleInterceptor extends AbstractInterceptor {
private String username;
private String password;
// 省略setter和getter方法
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// 获取被拦截的Action实例
LoginAction action = (LoginAction) invocation.getAction();
System.out.println("开始拦截:" + new Date());
// 记录开始时间
long start = System.currentTimeMillis();
// 回调执行Action被拦截的处理方法
String result = invocationvoke();
System.out.println("结束执行:" + new Date());
// 记录结束时间并计算执行时间
Long end = System.currentTimeMillis();
System.out.println("执行用时:" + (end - start) + "ms");
return result;
}
}
```
如果我们希望对特定的方法进行拦截,或者对某些方法放行,那么Struts2的MethodFilterInterceptor类将非常有用。它是AbstractInterceptor的子类,提供了更加细粒度的控制。这个类有三个主要方法,其中两个setter方法允许我们在配置时指定需要拦截或放行的方法。
配置示例:
```xml
login,execute
regiset
```
当多个作用于同一个Action时,它们的执行顺序遵循一定的规则。在Action的控制方法执行之前,先定义的会先执行;而在Action的控制方法执行之后,后定义的才会执行。这个规则在invocationvoke()这个点上进行分界。
感谢大家的阅读,希望这些内容能对大家有所帮助。如果您觉得本站内容有价值,请继续支持我们!
使用`cambrian.render('body')`来呈现文章内容。
编程语言
- JSP 开发之Struts2内建自定义拦截器
- vue动态删除从数据库倒入列表的某一条方法
- jquery分页插件jquery.pagination.js实现无刷新分页
- ThinkPHP 5.x远程命令执行漏洞复现
- js结合正则实现国内手机号段校验
- 微信小程序scroll-view实现字幕滚动
- JavaScript中string对象
- 分享JS数组求和与求最大值的方法
- Mpvue中使用Vant Weapp组件库的方法步骤
- JS对象序列化成json数据和json数据转化为JS对象的
- js解决软键盘遮挡输入框的问题分享
- Jqprint实现页面打印
- JS HTML5实现拖拽移动列表效果
- JavaScript encodeURI 和encodeURIComponent
- vuejs使用$emit和$on进行组件之间的传值的示例
- jQuery Easyui学习教程之实现datagrid在没有数据时显