<!-- 设置session失效时间,1分钟后失效 -->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.ywjava.action.LoginAction;
import com.ywjava.utils.Constants;
public class SessionInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
String userName = (String) session.get("user");
if (userName == null) {
return INDEXE;//return Action.INDEX;
} else {
return actionInvocation.invoke();
}
}
}
<struts>
<package name="test" extends="struts-default">
<interceptors>
<!-- 自定义拦截器 -->
<interceptor name="myInterceptor" class=com.vince..interceptor.SessionInterceptor" />
<!-- 配制默许的拦截器到拦截器栈 -->
<interceptor-stack name="myStack">
<!-- 此处先后顺序好像没影响哦,我尝试过是没影响的 -->
<interceptor-ref name="myInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<!-- 配置默认的拦截器 -->
<default-interceptor-ref name="myStack" />
<action name="test" class="com.vince.action.TestAction">
<result name="success">/test.jsp</result>
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
<action name="index" class="com.vince.action.IndexAction">
<result name="success">/index.jsp</result>
<result name="erroe">/index.jsp</result>
</action>