interceptor拦截器实现后台登录拦截


1、配置spring-mvc.xml文件

<?xml version="1.0" encoding="UTF-8"?>



    
    

    
    

    
    

    
    
        
        
    

    
    
        
            
            
            
            
            
        
    

    
    
    
    


注意点:扫描包要扫描到interceptors

2、配置web.xml文件

添加HiddenHttpMethodFilter拦截器


    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HiddenHttpMethodFilter
        /*
    

3、编写LoginIntercept.java文件

LoginIntercept类实现HandlerInterceptor接口,并重写其中的方法,在preHandle方法里进行验证是否登录

package com.ku.interceptors;

import com.ku.pojo.Admin;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

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

@Component
public class LoginIntercept implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Admin loginAdmin = (Admin) request.getSession().getAttribute("loginAdmin");
        if(loginAdmin != null){
            return true;
        } else {
            response.sendRedirect(request.getContextPath()+"/manager/managerLogin");
            return false;
        }

    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }

}

注意点:@Component注解别忘了

4、编写jsp页面

  1. index.jsp
<%--
  Created by IntelliJ IDEA.
  User: aria
  Date: 2022/4/20
  Time: 8:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    首页



    前往视频专区
前往后台管理
  1. video.jsp
<%--
  Created by IntelliJ IDEA.
  User: aria
  Date: 2022/4/20
  Time: 8:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    视频专区


    视频专区



  1. main.jsp
<%--
  Created by IntelliJ IDEA.
  User: aria
  Date: 2022/4/20
  Time: 8:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    后台主页


    后台主页
管理员姓名:${sessionScope.loginAdmin.adminName}
  1. managerLogin.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: aria
  Date: 2022/4/20
  Time: 9:03
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录



    
用户名:
密 码:
${msg}

5、项目结构

项目使用到了MyBatis逆向工程生成mapper和pojo。controller和service这里也不展示了,如果搜到这篇文章那应该这些文件的编写都不是问题
在这里插入图片描述