登陆验证拦截器

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";
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值