首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

在struts2类使用Interceptor(拦截器)

2012-10-15 
在struts2种使用Interceptor(拦截器)Struts2种的Interceptor类似于以往我们知道的过滤器,对用户的请求进行

在struts2种使用Interceptor(拦截器)

Struts2种的Interceptor类似于以往我们知道的过滤器,对用户的请求进行过滤处理,根据过滤得情况决定下一步需要采取的操作。

也可以理解成对用户的请求进行拦截处理。而且可以将多个拦截器合在一起使用,进行多种工作的拦截处理。

同样可以理解成Spring中的AOP,对一些操作进行额外的处理(比如前置处理、后置处理等)

Struts2种预定义了多种拦截器,比如Timer拦截器负责处理Action的运行时间,Log拦截器负责进行日志记录。在这里不对预定义的拦截器进行讲解。

我们同样可以定义我们自己的拦截器,对某些操作进行通用的处理。比如通用的验证处理。当我们请求某些操作的时候需要事先已经进行了验证,否则不允许请求这些操作,如果进行了验证,则允许。那么我们就可以自定义一个验证的拦截器,对需要进行验证的操作进行拦截。

好了,下面通过一个简单的实例进行讲解。

创建一个web project,比如这里是MySampleWeb,当然需要加入Struts所需要的类库(.jar)

首先创建拦截器类LoginInterceptor,需要继承AbstractInterceptor,这样,我们就建立了一个我们自定义的拦截器。拦截器中存在一个名称为intercept的方法,这个方法即为拦截方法,这个方法为契约方法,当拦截器运行的时候,此方法负责处理拦截,我们的拦截代码写在其中。

因为此拦截器负责判断是否验证的拦截,具体的代码如下:

?建立显示用户信息的页面showUsername.jsp

?好了现在进行必须的配置工作,首先配置web.xml,以便可以使用struts2,配置如下:

?strtus.xml配置文件如下,注意拦截器的配置,拦截器负责拦截ShowUserAction


?
?用正确的密码登录,显示如下:
在struts2类使用Interceptor(拦截器)
?
?如果此时在此请求showUserAction,则不需要登录,因为已经登录过了
在struts2类使用Interceptor(拦截器)
?在struts2类使用Interceptor(拦截器)

热点排行