Struts2中怎么验证一个用户是否登录
2个回答
展开全部
我项目中的拦截器配置,其实楼上的filter方式也能实现功能要求,不过lz想研究下拦截器的话,可以参考我下面的配置。
有不明白的可以给我信息,我可以把整个struts.xml 发你参考。
<!--自定义拦截器配置 -->
<interceptors>
<interceptor name="Timeout" class="com.myproject.util.TimeOutInterceptor"/>
</interceptors>
action定义。。。。。。。。。。。
<action name="cf*" method="{1}" class="com.myproject.action.user.ConfigAction">
<!-- 引用自定义的拦截器 -->
<interceptor-ref name="Timeout">
<param name="excludeMethods">
UpdateInfo,UpdCss <!--注意参数配置 action中的仅这两个方法会被拦截 估计lz需要的就是这里的参数配置,可以指定Action中的方法进行拦截-->
</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/> <!-- struts 内置的默认拦截器 -->
<result name="config">/user/config.jsp</result>
</result>
//拦截器的实现。。。。。。。
package com.myproject.util;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import java.util.Map;
/**
* 通用拦截器,判断用户超时
* @author maodrc
*/
public class TimeOutInterceptor extends MethodFilterInterceptor {
@Override
protected String doIntercept(ActionInvocation ai) throws Exception {
Map sessionMap = ai.getInvocationContext().getSession();
String username = (String) sessionMap.get("username");
if (com.myproject.util.Util.isNull(username)) { //判断session
return "timeout"; // 这里可以配置一个 global 的result 即可。
} else {
return ai.invoke();
}
}
有不明白的可以给我信息,我可以把整个struts.xml 发你参考。
<!--自定义拦截器配置 -->
<interceptors>
<interceptor name="Timeout" class="com.myproject.util.TimeOutInterceptor"/>
</interceptors>
action定义。。。。。。。。。。。
<action name="cf*" method="{1}" class="com.myproject.action.user.ConfigAction">
<!-- 引用自定义的拦截器 -->
<interceptor-ref name="Timeout">
<param name="excludeMethods">
UpdateInfo,UpdCss <!--注意参数配置 action中的仅这两个方法会被拦截 估计lz需要的就是这里的参数配置,可以指定Action中的方法进行拦截-->
</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/> <!-- struts 内置的默认拦截器 -->
<result name="config">/user/config.jsp</result>
</result>
//拦截器的实现。。。。。。。
package com.myproject.util;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import java.util.Map;
/**
* 通用拦截器,判断用户超时
* @author maodrc
*/
public class TimeOutInterceptor extends MethodFilterInterceptor {
@Override
protected String doIntercept(ActionInvocation ai) throws Exception {
Map sessionMap = ai.getInvocationContext().getSession();
String username = (String) sessionMap.get("username");
if (com.myproject.util.Util.isNull(username)) { //判断session
return "timeout"; // 这里可以配置一个 global 的result 即可。
} else {
return ai.invoke();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询