struts2中判断是否登录的拦截器
我在进入某个页面之前经常需要做些判断。比如说我要拦截page.jsp这个页面。判断一下是否已经登录。我拦截器已经写好了。但在struts.xml里面就不知道怎么写了。主要...
我在进入某个页面之前经常需要做些判断。
比如说我要拦截 page.jsp这个页面。判断一下是否已经登录。我拦截器已经写好了。但在struts.xml里面就不知道怎么写了。主要是action怎么写呢?
我想不管怎么说,配置文件里总要体现page.jsp吧,不然它怎么知道我要拦截的网址是哪个? 展开
比如说我要拦截 page.jsp这个页面。判断一下是否已经登录。我拦截器已经写好了。但在struts.xml里面就不知道怎么写了。主要是action怎么写呢?
我想不管怎么说,配置文件里总要体现page.jsp吧,不然它怎么知道我要拦截的网址是哪个? 展开
展开全部
在<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进行拦截.而如果你想单独对一个页面进行登陆验证还是建议你使用过滤器.
在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 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
<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
<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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在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>
你应该能看懂吧?
我的工程里面的
<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>
你应该能看懂吧?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?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>
<!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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询