S++

千线一眼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

SpringMVC-拦截器

拦截器说明

方法名 说明
preHandle() 请求处理之前调用。返回布尔值,false为拦截请求,true为通过请求
postHandle() 在请求处理之后,视图渲染之前调用。
afterCompletion() 整个请求结束之后调用。

用户登录权限控制

package com.sjj.interceptor;

import com.sjj.domain.User;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 判断用户是否登录
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");
        if(user==null){
            // 跳转登录页面
            response.sendRedirect(request.getContextPath()+"login.jsp");
            return false;
        }
        return true;
    }
}
    <!--配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <!--对login登录资源不进行拦截操作-->
            <mvc:exclude-mapping path="/login"/>
            <bean class="com.sjj.interceptor.LoginInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

posted on   S++  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示