Struts2拦截器

2016-12-29  本文已影响20人  你能不能别说话

自定义拦截器:


从struts2的apps中拷贝相应jar包 然后建struts2项目

加入到buildpath

从它的示例项目中 拷贝 struts.xml文件

其它内容都删掉,只用留下这个

struts.xml文件必须在src目录下。

然后在web-inf目录下的web.xml文件中 对struts2进行配置


新建一个Action继承ActionSupport,并重写它的execute方法

然后要对该Action在struts.xml中进行配置:

访问这个路径可以访问到其首页:

点击该文字:

success.jsp页面:

定义一个拦截器:

该拦截器下的intercept方法是自动调用的,进行拦截操作

其中  invocation.invoke方法是执行下一个拦截器(如果是最后一个拦截器,就执行目标Action),它会返回一个字符串,也就是结果视图,也就是Action中的方法返回的字符串。

然后需要在struts.xml文件中对该拦截器进行配置。

首先先要注册该拦截器:

然后还要引用这个拦截器:

在Action里面引用了这个拦截器


拦截器的顺序是按照从上到下的顺序进行执行的。

显示引用拦截器以后,只有手动添加才能够引用defaultStack


建javaweb项目,然后进行struts(此处省略)配置

禁用动态化的调用,它的开发模式

在struts.xml文件中可以加上这些内容:

因为web-inf目录下的文件外部无法直接访问到,所以要在struts.xml文件中进行配置。

在web-inf目录下的page目录下的:manager.jsp

通过路径(项目名)到主页:

访问配置的Action,来访问到manager页面。

login.jsp页面:


建LoginAction类,实现SessionAware接口

对username和password字段添加get和set方法。将用户的信息保存的session里面。获得一个封装了servlet的session的集合。通过实现这个接口来拿到(实现它的setSession方法)。

然后写一个处理登录请求的方法:

然后在struts.xml中配置这个LoginAction

然后在login.jsp中显示用户登录失败的信息:

新建一个拦截器来处理:如果用户已经登录,就可以通过auth来访问界面,如果用户没有登录,就不能够通过auth来访问界面。

核心:

然后要在struts.xml里面的Action进行拦截,1.先要注册拦截器

2.然后要为Action引用拦截器

上面已经定义了拦截器栈,所以下下面进行引用的时候只需要引用拦截器栈就行了。


完成了以后 看效果:

如果没有登录,直接按照这个路径去访问,它就返回到了登录页面。

但是如果正确的登录了以后,会跳转到:

这个时候Session保存着用户的登录信息。

这次再次访问auth就可以直接进来了。

上一篇 下一篇

猜你喜欢

热点阅读