【Struts2三】拦截器
2024-10-01 18:58:57
拦截器:就是在訪问action之前。对其进行拦截!能够在拦截器中做一些逻辑的处理!
比方权限验证。没有权限就不给予訪问!
拦截器等效于servlet中的过滤器!
使用拦截器步骤:
1.定义自己的拦截器:
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
/**
* 定义自己的拦截器,须要实现Intercept接口!
*
*/
public class MyInterceptor implements Interceptor{
public void destroy()
{ }
public void init()
{ }
/**
* 重写intercept方法,在该方法中实现自己的拦截逻辑!
* 调用invocation.invoke()方法放行action!
*/
public String
intercept(ActionInvocation invocation) throws Exception { System. out.println("图片上传" );
return invocation.invoke();
// return null;//不运行action
}
}
|
2.在struts-interceptor.xml的配置文件里声明:
须要在struts.xml中包括上述配置文件!
struts-interceptor.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>
<package name="interceptor" namespace="/" extends="struts-default" >
<!-- 声明拦截器,拦截器声明应该位于action之前-->
<interceptors>
<!--声明自定义的拦截器
--> <interceptor name= "imageInterceptor"
class= "cn.itheima03.struts2.interceptor.MyInterceptor" ></interceptor>
<!-- 声明拦截器栈
--> <interceptor-stack name= "myInterceptor">
<interceptor-ref name="imageInterceptor" ></interceptor-ref>
<interceptor-ref name="defaultStack" ></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 改动默认的拦截器栈
--> <default-interceptor-ref name="myInterceptor" ></default-interceptor-ref>
<!--声明action,在运行action之前。会先运行拦截器中的方法
--> <action name= "interceptorAction_*" method ="{1}"
class= "cn.itheima03.struts2.interceptor.InterceptorTestAction" >
<result>
index.jsp
</result>
</action>
</package >
</struts>
|
3.定义action:
import com.opensymphony.xwork2.ActionSupport;
public class InterceptorTestAction extends ActionSupport{
public String
interceptor(){ System. out.println("interceptor" );
return SUCCESS ;
}
}
|
最新文章
- 转网页WB.ExecWB控件打印方法
- Winform中Grid跨行复制一列
- C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)
- 禁止触屏滑动touchmove方法介绍
- 【转】Android ProgressDialog的使用2
- VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用
- Tomcat Java.OutOfMemoryError : PermGen Space异常
- 那什么时候会触发BFC呢?块级格式化上下文
- ES6笔记
- ARM 编译产生.map之RO RW ZI
- Unity for VsCode
- Java中的Graphics2D类基本使用教程
- 第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- 小程序循环多个picker选择器,实现动态增、减
- IDEA项目搭建三——简单配置Maven使用国内及本地仓库
- java判断集合是否相等
- 20165211 学习基础和C语言调查
- matlab fgetl()
- 【洛谷4719】 动态dp(树链剖分,dp,矩阵乘法)
- Kafka网络模型分析
热门文章
- RHEL7.1安装VNC
- Android捕获View焦点事件,LinearLayout结合HorizontalScrollView实现ViewPgaer和选项卡Tabs联动
- Swift vs C# Go OC
- 修正单纯形法&;#183;优化算法实现&;#183;Java
- call() 和 apply() 的作用和区别
- html的学习思维导图
- 使用PHP中的curl发送请求
- 【Uva 1632】Alibaba
- 关于Blocking IO,non-Blokcing IO,async IO的区别和理解
- 信号 signal sigaction补充