Struts2 登陆拦截器

用于做拦截是否已经登陆 检测session中是否已经存在用户信息
LoginIntercept.java
public class LoginIntercept extends MethodFilterInterceptor{

	@Override
	protected String doIntercept(ActionInvocation arg0) throws Exception {
		HttpServletRequest request = ServletActionContext.getRequest();
		  HttpSession session = request.getSession();
		  String name = (String)session.getAttribute("name");//获取session中信息,可修改为存在session中的任何信息
		  if(name == null){
		   return "login";
		  }else{
		  return arg0.invoke();
		  }
	}

}
struts.xml配置:
<package name="test" namespace="/" extends="struts-default">   
		<interceptors>
              <!-- 自己定义的拦截器 -->
	     <interceptor name="logininterceptor" class="intercept.LoginIntercept" />
	     <interceptor-stack name="logininterceptorStack" >
	      <interceptor-ref name="defaultStack" />
	      <interceptor-ref name="logininterceptor" />
	     </interceptor-stack>
		</interceptors>
	    <default-interceptor-ref name="defaultStack" />
	    <global-results>
	     <!-- 下面定义的结果对所有的Action都有效 -->
	     <result name="login">/index.jsp</result>
	    </global-results>
		<action name="show" class="action.ShowAction">    
		<result name="success">/success.jsp</result>
                          <!-- 在此action中配置此拦截器 -->
			<interceptor-ref name="defaultStack"></interceptor-ref> 
			<interceptor-ref name="logininterceptor"></interceptor-ref>   
		</action>    
	</package>

你可能感兴趣的:(struts,拦截器)