牛骨文教育服务平台(让学习变的简单)
博文笔记

Struts2自定义拦截器,检查用户是否登录

创建时间:2017-03-14 投稿人: 浏览次数:524
               自定义拦截器,检查用户是否登录
  • 1.创建自定义拦截器类
import javax.interceptor.InvocationContext; import javax.servlet.http.HttpSession;
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文件
<struts>     <constant name="struts.devMode" value="true" />     <constant name="struts.ui.theme" value="simple" />     <include file="user.xml"></include>     <!--修改上传大小-->     <constant name="struts.multipart.maxSize" value="10485760">
    </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> 可以放过登录方法,不进行拦截。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。