spring boot如何实现拦截器

                                   spring boot如何实现拦截器


        项目中使用拦截器来保护页面的认证或是其他操作,比如只有认证过的用户才能访问相关页面。可以
在访问页面之前进行检测。这时候需要拦截器来操作,开发自写义拦截器,需要铺现HandlerInterceptor接口

并实现preHandle方法

package interceptor;


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


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


public class LoginInerceptor implements HandlerInterceptor{


public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub

}


public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub


}


public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO Auto-generated method stub

boolean flag;


                //决定会话是否在username
String username=(String)request.getSession().getAttribute("username");


               //如果会话不存在username,那么定义向到 "/"
if (username== null) {
request.getRequestDispatcher("/").forward(request, response);
flag=false;
}

else {

flag=true;
}


return flag;
}


}


编写配置类,并extends WebMvcConfigurerAdapter,重写了addInterceptors方法


package ch07;


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


import interceptor.LoginInerceptor;


@SuppressWarnings("deprecation")
@Configuration


public class LoginInerceptorConfig  extends WebMvcConfigurerAdapter{


@Override
public void addInterceptors(InterceptorRegistry registry) {
// TODO Auto-generated method stub
        //一定要注单excludePathPatterns和addPathPatterns不要冲突了
registry.addInterceptor(new LoginInerceptor()).excludePathPatterns("/login","/").addPathPatterns("/*");
}




}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值