[SpringMVC整合MyBatis] springmvc拦截器-定义和配置
程序员文章站
2022-03-18 16:14:16
...
1、新建一个 拦截器
3.登陆和注销controller方法
package cn.com.foha.lamppostmanagement.Interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SecurityInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
System.out.println("SecurityInterceptor...preHandle...");
//获取请求的url
String url=request.getRequestURI();
//判断url是否是公开地址(实际使用时将公开地址配置到配置文件中)
if(url.indexOf("loginCheck")>=0){
//如果要进行登录提交,放行
return true;
}
//这里可以根据session的用户来判断角色的权限
if(request.getSession().getAttribute("userId") != null) {
//方形
return true;
}
//判断是否有 userId 这个session,如果没有(或者过期了)转发到登录页面
request.getRequestDispatcher("/").forward(request,response);
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 {
}
}
2.配置 springmvc.xml
<!--拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/"/>
<mvc:exclude-mapping path="/static/**" />
<ref bean="userSecurityInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<bean id="userSecurityInterceptor" class="cn.com.foha.lamppostmanagement.Interceptor.SecurityInterceptor"></bean>
<!--<mvc:default-servlet-handler />
3.登陆和注销controller方法
@RequestMapping("/loginCheck")
@ResponseBody
public Object loginCheck(User user, HttpSession session)throws Exception
{
User user1=userService.login(user);
if(user1!=null)
{
session.setAttribute("userId",user1.getRoleid());
session.setAttribute("userName", user.getUsername());
return "true";
}
else
{
System.out.println("用户名或密码错误");
return "false";
}
}
//退出登录
@RequestMapping(value = "/logout")
public String logout(HttpSession session) throws Exception {
session.removeAttribute("userId");
session.removeAttribute("userName");
session.invalidate();
return "redirect:/lamppostmanagement";
}
代码需要根据自己情况修改
执行效果
上一篇: 中国民航飞行学院人事薪资管理系统实践案例
下一篇: Spring Boot 拦截器
推荐阅读
-
SpringBoot整合SpringMVC之自定义JSON序列化器和反序列化器
-
SpringMVC工作原理和自定义拦截器
-
SpringMVC 拦截器 springmvc+spring+mybatis 整合
-
基于IDEA搭建SpringMVC+Spring+Mybatis的全过程,并深入了解整个运行流程和项目配置
-
springMVC自定义拦截器配置
-
SpringBoot(一):整合SpringMVC和初识配置文件(入门)
-
SpringMVC 和 mybatis 整合之修改(三)
-
java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付、附源码)
-
java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付、附源码)
-
详解如何整合SpringMVC和mybatis