struts2中判断是否登录的拦截器

我在进入某个页面之前经常需要做些判断。比如说我要拦截page.jsp这个页面。判断一下是否已经登录。我拦截器已经写好了。但在struts.xml里面就不知道怎么写了。主要... 我在进入某个页面之前经常需要做些判断。
比如说我要拦截 page.jsp这个页面。判断一下是否已经登录。我拦截器已经写好了。但在struts.xml里面就不知道怎么写了。主要是action怎么写呢?
我想不管怎么说,配置文件里总要体现page.jsp吧,不然它怎么知道我要拦截的网址是哪个?
展开
 我来答
书乐天0A2
2009-07-03 · TA获得超过722个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:247万
展开全部
在<package>里把拦截器注册上,然后在需要加入此拦截器的<action>配置中把这个拦截器加入就可以了。
在Action类中不需要编写其他的代码,只需要在拦截器中处理就可以了。

下面是配置的例子:
<package name="xxx">
<interceptors>
<interceptor name="myin" class="org.liky.interceptor.MyInterceptor">
</interceptor>
</interceptors>
<action name="upload" class="org.liky.action.MyAction">
<interceptor-ref name="myin"></interceptor-ref>
</action>
</package>

Struts的拦截器只是针对与Struts的Action所做的功能,只能针对跳转到这个页面之前的Action进行拦截.而如果你想单独对一个页面进行登陆验证还是建议你使用过滤器.

参考资料: http://bbs.mldn.cn

Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
百度网友ac22d8012
2009-07-03 · TA获得超过102个赞
知道答主
回答量:204
采纳率:0%
帮助的人:213万
展开全部
<package name="diy" extends="struts-default">

<interceptors>
<interceptor name="login" class="action.CheckLoginInterceptor" />
<interceptor-stack name="diyinter">
<interceptor-ref name="login" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="diyinter" />

<global-results>
<!-- 全局跳转,不成功跳到哪里去? login 需要在程序中自己定义好 -->
<result name="login" type="redirect">
/login.action
</result>
</global-results>

</package>

以后 你再定义的 package 继承自 diy 即可 :

<package name="XXX" extends="diy">
这里写 action
</package>

这样,拦截器就配置好了.

需要 验证是否登录的 action 写在继承了 diy 的 package 里面,其他的还是用 struts-default
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
有的我不知道
2009-07-03 · TA获得超过542个赞
知道答主
回答量:414
采纳率:0%
帮助的人:352万
展开全部
在web.xml里面写不是?

我的工程里面的
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.*.*.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/blog/*</url-pattern>
</filter-mapping>

你应该能看懂吧?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡海宽
2009-07-06
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
<?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>
<constant name="struts.custom.i18n.resources" value="LoginAction"></constant>
<package name="struts2" extends="struts-default">
<interceptors>
<interceptor name="interceptor1"

class="com.test.interceptors.Interceptor1">
</interceptor>
</interceptors>//上面是定义拦截器,通过class=" "找到路径
<action name="struts2*" class="com.test.action.LoginAction">
<interceptor-ref name="defaultStack"/>//调用自定义拦截器时要注意把默认拦截器引用
<interceptor-ref name="interceptor1"/>//这是引用的自定义拦截器,放在默认拦截器前后是有分别的
<result name="success">/login.jsp</result>
<result name="fail">/{1}.jsp</result>
<result name="input">/{1}.jsp</result>
</action>
</package>
</struts>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式