SpringMVC-MAVENWEB项目笔记02

2019-11-10  本文已影响0人  林深雾雨

定义拦截器:只要针对于控制器

springmvc.xml配置 路径包含admin/ 会进入 AdminController.java进行检查

<!-- 配置拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/admin/*" /><!-- 地址栏含有该内容 //配置拦截目录 -->
            <bean class="com.wk.utils.AdminInterceptor"></bean><!--进入该类中进行判定是否已经登录-->
        </mvc:interceptor>
    </mvc:interceptors>

controller中如果没有登录 就返回登录界面 /TestSpringMVC/src/main/java/com/wk/controller/AdminController.java

package com.wk.controller;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("admin")
public class AdminController {
    @RequestMapping("/test")
    private void test(HttpServletResponse resp) {
        // TODO Auto-generated method stub
        System.out.println("admin test");
        try {
            resp.getWriter().append("{\"result\":true}");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

/TestSpringMVC/src/main/java/com/wk/utils/AdminInterceptor.java
配置 假装登录 进行登录设置session值

package com.wk.utils;

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

import org.springframework.web.servlet.HandlerInterceptor;

public class AdminInterceptor implements HandlerInterceptor{
    //实现这个接口 不需要重写他的方法 因为他的源码是用default默认方法体修饰  不用重写其他所有的 方法 要哪个取那个
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        //通过request对象得到session
        HttpSession session=request.getSession();
        String isLogin=(String) session.getAttribute("isLogin");
        
        if(isLogin!=null) {
            return true;
        }
        
        //如果isLogin字符串为空  跳转登录页面 因为没有返回值 就用重定向 
        //因为是重定向 是有客户端页面向客户端页面跳转 所以要写项目名
        response.sendRedirect("/TestSpringMVC/html/login.html");
        return false;
    }

}
上一篇下一篇

猜你喜欢

热点阅读