Struts2拦截器
来源:互联网 发布:windows store下载 编辑:程序博客网 时间:2024/06/05 20:49
一. 什么是拦截器?
Struts 2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能
拦截器方法在Action执行之前或者之后执行
拦截器栈从结构上看,拦截器栈相当于多个拦截器的组合在功能上看,拦截器栈也是拦截器
拦截器与过滤器原理很相似.
调用过程(重点)
拦截器类:
实现拦截器的三种方法:
1. 自定义拦截器第一种方法 接口的方法 implements Interceptor
2. 拦截器继承AbstractInterceptor 源于接口
3.第三种拦截器:还可以进行对某一个Action的方法排除
public class MyTimerInterceptor extends AbstractInterceptor{public String intercept(ActionInvocation invocation) throws Exception {//预处理工作long startTime = System.currentTimeMillis(); //执行后续拦截器或ActionString result = invocation.invoke(); //后续处理工作 long execTime = System.currentTimeMillis() - startTime; System.out.println("The interval time is "+execTime+" ms");//返回结果字符串 return result;}}struts.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.devMode" value="false"/> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.configuration.xml.reload" value="true"/><package name="default" namespace="/" extends="struts-default"><!-- 1.注册自定义的拦截器 --><interceptors><interceptor name="myIntercepetor1" class="com.icss.action.MyInterceptor3"></interceptor><!-- 2.注册拦截器栈 21 --><interceptor-stack name="myStack"><interceptor-ref name="myIntercepetor1"><!-- 自己的拦截器 --><param name="excludeMethods">add,update</param><!-- inexcludeMethods方法不进行拦截 --></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack></interceptors><!-- 3.引用自定义拦截器栈 --><default-interceptor-ref name="myStack"/><action name="Demo1Action_*" class="com.icss.action.Demo1Action" method="{1}"><result>/index.jsp</result></action></package><include file="com/icss/action/upload/struts.xml"></include></struts>
3.Struts2默认的拦截器
params拦截器
负责将请求参数设置为Action属性(属性驱动, 对象驱动)
servletConfig拦截器
将源于Servlet API的各种对象注入到Action
fileUpload拦截器
对文件上传提供支持
exception拦截器
捕获异常,并且将异常映射到用户自定义的错误页面
validation拦截器
调用验证框架进行数据验证
workflow拦截器
调用ActionSupport类的validate(),执行数据验证
4.Struts2默认的拦截器栈
struts-default.xml中定义一个defaultStack拦截器栈,并将其指定为默认拦截器
只要在定义包的过程中继承struts-default包,那么defaultStack将是默认的拦截器
阅读全文
0 0
- 【Struts2】Struts2中拦截器
- struts2拦截器
- Struts2拦截器
- struts2.0拦截器
- struts2.0 拦截器
- struts2拦截器学习
- struts2 拦截器
- Struts2拦截器(Interceptor)
- struts2.0拦截器
- 用上struts2拦截器
- struts2拦截器简介
- Struts2:拦截器概述
- Struts2拦截器(Interceptor)
- struts2 拦截器
- 关于struts2拦截器
- Struts2的拦截器
- struts2拦截器
- Struts2拦截器总结
- 为什么修改jsp不用重启tomcat,而修改servlet要重启tomcat
- jar命名打包war
- 17.11.11,web学习第一天,还有一年,努力吧青年
- windows中docker打包使用
- MyEclipse字体及颜色的设置
- Struts2拦截器
- Android6.0没有权限读取外部存储的问题
- sysfs文件系统与linux设备模型(5.4.2)
- 内联函数、递归函数和重载函数
- 【STM32】获取STM32官方固件库
- RT-Thread V2.1.0 重构工程(IAR为例)
- RT-Thread从开源代码生成自己的工程
- Android7.0下载Apk自动安装
- RT-Thread 学习笔记(一)---系统节拍tick