Struts2自定义拦截器,检查用户是否登录
自定义拦截器,检查用户是否登录
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class CheckLoginInterceptor extends MethodFilterInterceptor{ //自定义拦截器 @Override protected String doIntercept(ActionInvocation invocation) throws Exception { HttpSession session = ServletActionContext.getRequest().getSession(); Object attribute = session.getAttribute("user"); if (attribute==null) { return "login"; }else { return invocation.invoke(); } }
}
</constant>
<package name="mydefault" extends="struts-default">
<interceptors><!--拦截机组--> <interceptor name="checklogin" class="com.itcast.interceptor.CheckLoginInterceptor"></interceptor>
<interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="checklogin"> <param name="excludeMethods">login</param> </interceptor-ref> </interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref> <global-results><!--全局结果视图要放在<default-interceptor-ref>下--> <result>/login/login.jsp</result> </global-results>
</package> </struts>
![]()

3.这样一个自定义的拦截器就生效了,可以拦截任何没有登录的用户进入登录界面 在拦截器栈中添加 <interceptor-refname="checklogin"> <paramname="excludeMethods">login</param> </interceptor-ref> 可以放过登录方法,不进行拦截。
- 1.创建自定义拦截器类
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class CheckLoginInterceptor extends MethodFilterInterceptor{ //自定义拦截器 @Override protected String doIntercept(ActionInvocation invocation) throws Exception { HttpSession session = ServletActionContext.getRequest().getSession(); Object attribute = session.getAttribute("user"); if (attribute==null) { return "login"; }else { return invocation.invoke(); } }
}
- 2.配置struts文件
</constant>
<package name="mydefault" extends="struts-default">
<interceptors><!--拦截机组--> <interceptor name="checklogin" class="com.itcast.interceptor.CheckLoginInterceptor"></interceptor>
<interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="checklogin"> <param name="excludeMethods">login</param> </interceptor-ref> </interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref> <global-results><!--全局结果视图要放在<default-interceptor-ref>下--> <result>/login/login.jsp</result> </global-results>
</package> </struts>
3.这样一个自定义的拦截器就生效了,可以拦截任何没有登录的用户进入登录界面 在拦截器栈中添加 <interceptor-refname="checklogin"> <paramname="excludeMethods">login</param> </interceptor-ref> 可以放过登录方法,不进行拦截。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
