SpringMVC拦截器:解决项目中接口(url)访问权限的问题(通过url不能随意访问controller层)

层次关系

在这里插入图片描述
拦截器实现HandlerInterceptor接口

package com.bybo.aca.web.interceptor;

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

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class Login implements HandlerInterceptor {

    @Override
    public void afterCompletion(HttpServletRequest httpRequest,
            HttpServletResponse httpResponse, Object arg2, Exception arg3)
            throws Exception {
         
    }

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2, ModelAndView arg3) throws Exception {
        

    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
            Object object) throws Exception {
        /*HttpServletRequest httpRequest = (HttpServletRequest) request;  
         HttpServletResponse httpResponse = (HttpServletResponse) response;*/
        String urlString = request.getRequestURI();
            
        ///olForum/forumList.html模拟登录页
        if(urlString.endsWith("forumList.html")){
            return true;
        }
        //请求的路径
        String contextPath=request.getContextPath();
       
        /*httpRequest.getRequestDispatcher("/olForum/forumList").forward(httpRequest, httpResponse);*/
        /*response.sendRedirect(contextPath+"/olForum/forumList.html");*/
        response.sendRedirect(contextPath + "/olForum/forumList.html?login=aaa");  
        return false;
        /*httpResponse.sendRedirect(httpRequest.getContextPath()+"/olForum/forumList.html");
        return;*/
        

    }

}

spring.xml

<mvc:interceptors>  
   <!--  使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求   -->
    <!-- <bean class="com.bybo.aca.web.interceptor.Login"/> -->   
    <mvc:interceptor>  
        <!-- 进行拦截:/**表示拦截所有controller -->
        <mvc:mapping path="/**" />
       <!-- 不进行拦截 -->
        <mvc:exclude-mapping path="/index.html"/>
     
        <bean class="com.bybo.aca.web.interceptor.Login"/>  
    </mvc:interceptor>  
</mvc:interceptors>   

猜你喜欢

转载自blog.csdn.net/qq_39905910/article/details/84893803
今日推荐