在java项目中如何使用Struts2拦截器

  介绍

在java项目中如何使用Struts2拦截器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> 1,拦截器是什么?

拦截器相当于过滤器:就是将不想要的去掉,想要的留下。拦截器抽象出一部分代码可以用来完善原来的行动。同时可以减轻代码冗余,提高重用率。通俗地讲就是一张网,过滤掉不需要的沙子,留下水。

<强> 2,拦截器的作用:

拦截器可以构成特定的功能,比如权限认证,日志记录和登陆判断。

<强> 3,拦截器的原理:

霸趈ava项目中如何使用Struts2拦截器"

其每一个行动请求都在拦截器中,每一个动作可以将操作转交给下面的拦截器,也可以直接退出到界面上。

<强> 4,定义拦截器:

(1)自定义一个实现拦截器接口(不过我初学者一般直接实现框架中的拦截器)

(2)在struts。xml中注册定义的拦截器

(3)可以需要的行动中引用拦截器

拦截器接口声明了三个方法

公共接口拦截器扩展了可序列化的{
  
  空白摧毁();
  
  无效的init ();
  
  字符串截取(ActionInvocation调用)抛出异常;
  }

初始化方法是在行动作用之前调用,就是开始给烂机器的初始化操作。

毁坏方法在拦截器被垃圾回收之前调用,用来回收初始化方法初始化的资源。

拦截方法是拦截器的主要操作。如果需要调用后续的行动或者拦截器,只需要在该方法中调用invocation.invoke()方法即可,在该方法调用的前后可以插入动作调用前后拦截器需要做的方法。

现在对用户登录进行拦截,代码如下:

 

注册拦截器:

& lt; interceptors>   & lt;拦截器的名字=癿yInterceptor"   类=癱om.fangchao.interceptor.MyInterceptor"祝辞& lt;/interceptor>   & lt;拦截器的名字=發oginInterceptor"   类=癱om.fangchao.interceptor.LoginInterceptor"祝辞& lt;/interceptor>      & lt; interceptor-stack name=癿yStack"祝辞   & lt; interceptor-ref name=發oginInterceptor"祝辞& lt;/interceptor-ref>   & lt; interceptor-ref name=癲efaultStack"祝辞& lt;/interceptor-ref>   & lt;/interceptor-stack>   & lt;/interceptors>

上述代码中的interceptor-stack是个拦截器栈。到目前为止,就是在下面引用时,比较方便,一般来讲,每个行动都会使用defaultStack。

拦截器参数:

配置参数:

    <李> excludeMethods:过滤掉不使用拦截器的方法 <李> includeMethods:使用拦截器的方法。

有两种配置方式:

& lt; interceptor-ref name=皏alidation"比;   & lt;参数名称=癳xcludeMethods"祝辞myValidationExcudeMethod   & lt;/interceptor-ref>   & lt; interceptor-ref name=皐orkflow"祝辞   & lt;参数名称=癳xcludeMethods"祝辞myWorkflowExcludeMethod   & lt;/interceptor-ref>

或者

& lt; interceptor-ref name=癲efaultStack"比;   & lt;参数名称=皏alidation.excludeMethods"祝辞myValidationExcludeMethod   & lt;参数名称=皐orkflow.excludeMethods"祝辞myWorkflowExcludeMethod   & lt;/interceptor-ref>

看完上述内容,你们掌握在java项目中如何使用Struts2拦截器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

在java项目中如何使用Struts2拦截器