struts.xml
配置三个acion:login,Student,Teacher
在U1 package中配置自定义的登陆验证拦截器
<interceptors>
<interceptor name="checklogin" class="org.ccit.com.web.intercept.checkLoginInterceptor"></interceptor>
</interceptors>
在U1 package中配置一个全局视图 用于验证失败返回的界面
<global-results>
<result name="backlogin">/login.jsp</result>
</global-results>
<struts>
<package name="U1" extends="struts-default">
<interceptors>
<interceptor name="checklogin" class="org.ccit.com.web.intercept.checkLoginInterceptor"></interceptor>
</interceptors>
<global-results>
<result name="backlogin">/login.jsp</result>
</global-results>
<action name="login" class="org.ccit.com.web.action.UserAction" method="login">
<result name="success">/index.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
<package name="Student" extends="U1" namespace="/student">
<action name="studentlist" class="org.ccit.com.web.action.student" method="list">
<interceptor-ref name="checklogin"></interceptor-ref>
<result name="success">/studentlist.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
<package name="Teacher" extends="U1" namespace="/teacher">
<action name="teachertlist" class="org.ccit.com.web.action.teacher" method="list">
<interceptor-ref name="checklogin"></interceptor-ref>
<result name="success">/teacherlist.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
编写自定义的拦截器
继承 AbstractInterceptor类 重写intercept方法
package org.ccit.com.web.intercept;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import org.apache.struts2.ServletActionContext;
import org.ccit.com.domain.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* @program: struts2_05
* @description
* @author: LIANG
* @create: 2021-01-26 18:22
**/
public class checkLoginInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
//通过ServletActionContext获取request对象 再获取session对象 存储user对象
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
User user= (User) session.getAttribute("user");
if (user!=null){
return actionInvocation.invoke();
}else{
//验证失败 借助全局视图 返回登陆界面
return "backlogin";
}
}
}