SpringMVC拦截器的实现(也就是登录是一定要通过登录的页面)
Posted SmallCuteMonkey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC拦截器的实现(也就是登录是一定要通过登录的页面)相关的知识,希望对你有一定的参考价值。
UserController类中:
@RequestMapping("login")
public String login(User user, HttpServletRequest request){
User htUser = userService.queryByUsernameAndPassword(user);
//判断是否登录成功
if(htUser!=null){
HttpSession session=request.getSession();
session.setAttribute("user",htUser);//把HtUserr 的值传入user中然后可以通过getAttrubute()进行获取,最后拦截器进行放行
//listpage是分页管理系统
return "redirect:listpage";
}
package com.zjj.inter;
import com.zjj.pojo.User;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginInterceptor implements HandlerInterceptor {
//方法执行之前拦截
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
HttpSession session = httpServletRequest.getSession();
User user = (User) session.getAttribute("user");
//true 放行 false拦截
if(user!=null){
return true;
}
//如果没有登录成功,或者没有先进入拦截页面进行登录,将跳转到拦截页面
httpServletResponse.sendRedirect("login.jsp");
return false;
}
//方法接收请求之后,解析视图之前拦截
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
//方法执行完毕,视图渲染结束之后执行
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
还可以定义其他的拦截器看情况而定
preHandle方法执行之前进行拦截。
postHandle()方法执行之后拦截
AfterCompletion()方法执行完毕拦截。
interceptor /ˌɪntəˈsɛptə/
n. 截击舰,[航][军] 截击机;拦截器;拦截者(interceptor的复数)
SpirngMvc.xml文件加上如下的配置:
<!-- 配置类似于全局的拦截器 如果项目中用到拦截器,需要配此项,如果没用的到拦截器,不能配,否则会报错-->
<mvc:interceptors>
<mvc:interceptor>
<!-- 表示拦截项目下的所有 -->
<mvc:mapping path="/**"/>
<!-- 表示排除login请求的拦截 exclude英文意思排除 -->
<mvc:exclude-mapping path="/login"/>
<bean class="com.zjj.inter.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
以上是关于SpringMVC拦截器的实现(也就是登录是一定要通过登录的页面)的主要内容,如果未能解决你的问题,请参考以下文章