标签:拦截器 return 用户 session employee 拦截 页面
文章目录
逻辑图
控制器部分
@RequestMapping("/userLogin")
@ResponseBody
public JsonResult login(String username, String password, HttpSession session) {
try {
Employee employee = employeeService.login(username, password);
// 把用户信息存到session
session.setAttribute("USER_IN_SESSION", employee);
if (!employee.isAdmin()) {
// 查询该用户拥有的权限信息(集合表达式)
List<String> stringList = permissionService.selectByEmpId(employee.getId());
// 把权限信息存到session
session.setAttribute("PREMISSION_IN_SESSION", stringList);
}
//
return new JsonResult();
} catch (Exception e) {
e.printStackTrace();
return new JsonResult(false, e.getMessage());
}
}
- 接收前端传过来的用户名和密码,若与数据库用户数据匹配,则把用户对象封装进session中
拦截器部分
- 实现拦截器接口,并重写preHandler方法
- 从session寻找用户,若用户没有登录,则无法访问其他页面,被强行跳转至登陆页面
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 从session中获取用户信息
Object employee=request.getSession().getAttribute("USER_IN_SESSION");
// 如果不存在,代表没有登录,跳转到登陆页面,不放行
if (employee==null){
response.sendRedirect("/login.html");
return false;//不放行
}
return true;//放行
}
}
applicationContext.xml配置部分
- 配置那些路径需要拦截,哪些不需要拦截
<!-- 配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/><!--需要拦截的路径 -->
<mvc:exclude-mapping path="/login.html"/><!--排除拦截登陆页面的路径 -->
<mvc:exclude-mapping path="/userLogin"/><!--排除拦截登陆控制器的路径 -->
<mvc:exclude-mapping path="/js/**"/><!--排除拦截的路径 -->
<mvc:exclude-mapping path="/css/**"/><!--排除拦截的路径 -->
<mvc:exclude-mapping path="/img/**"/><!--排除拦截的路径 -->
<bean class="com.edt.web.interceptor.LoginInterceptor"/>
</mvc:interceptor
</mvc:interceptors>
标签:拦截器,return,用户,session,employee,拦截,页面 来源: https://blog.csdn.net/EDT777/article/details/111161608
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。