栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

06-springMVC笔记-interceptor拦截器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

06-springMVC笔记-interceptor拦截器

06-springMVC笔记-interceptor拦截器 1.拦截器导入配置

    
        
        
        
        
    

2.拦截器业务实现(这里简单做一个session是否存在的拦截判断:判断是否有test键值对)
public class Interceptor implements HandlerInterceptor {
    //前拦截
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("=============处理前=============");
        HttpSession session = request.getSession();
        if (session.getAttribute("test") != null) {
            return true;
        }
        return false;
    }
}
3.写具体请求

t1请求为往session对象中存放一个名为test,值为sessionId的键值对。t2为清除session对象。t3位简单跳转。

通过结合拦截器(判断是否有test键值对),如果:

    【直接进入t3】:由于没有test键值对,拦截器会将t3请求拦截,无法进入到t3的页面。【先进入t1请求,再进入t3请求】,此时由于t1生产了一个test键值对,所以可以顺利进入t3。【先进入t1请求,再进入t2请求,最后进入t3请求】,此时t1生产了一个test键值对,但是t2把整个session给清除了,所以浏览器没有session对象,更没有test键值对,所以拦截器判断不通过,无法进入到t3的页面。
package com.hui.controller;

import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

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

@RestController
public class HelloController {

    @RequestMapping("t1")
    public String test1(HttpServletRequest req, HttpServletResponse resp) {
        HttpSession session = req.getSession();
        session.setAttribute("test", session.getId());
        System.out.println("test1=========>执行了:获取session,创建session对象");
        return "这里是t1,当前sessionId为:" + session.getAttribute("test");
    }

    @RequestMapping("t2")
    public String test2(HttpServletRequest req, HttpServletResponse resp) {
        HttpSession session = req.getSession();
        session.invalidate();
        System.out.println("test2=========>执行了:清除session");
        return "这里是t2,此时清除了session";
    }

    @RequestMapping("t3")
    public String test3(HttpServletRequest req) {
        System.out.println("test2=========>");
        String test = (String) req.getSession().getAttribute("test");
        return "这里是t3,sessionId为:" + test;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786296.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号