SSM 拦截器的配置和具体实现
来源:互联网 发布:宿舍神器 知乎 编辑:程序博客网 时间:2024/06/05 04:28
Spring-MVC.xml配置
<!-- 拦截器 --><mvc:interceptors><!-- 多个拦截器,顺序执行 --><mvc:interceptor><!-- /**表示所有url包括子url路径 --><mvc:mapping path="/**"/><!-- 不拦截登录的请求 --><mvc:exclude-mapping path="/loginUser.do"/><bean class="com.jk.login.interceptor.LoginHandlerIntercepter"/></mvc:interceptor><!-- 可以继续写mvc interceptor双标签,执行多个拦截器 --></mvc:interceptors>
interceptor类的写法
package com.jk.login.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 LoginHandlerIntercepter implements HandlerInterceptor {public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object arg2, Exception arg3)throws Exception {}public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,Object arg2, ModelAndView arg3) throws Exception {}public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1,Object arg2) throws Exception { String requestURI = request.getRequestURI(); //准备跳转前,拦截到请求,先判断session中是否有值,即是用户名密码是否存在的指标 if(requestURI.indexOf("successLogin.do")>0){//requestURI.indexOf("successLogin.do")>0 //mapKey在loginUser方法中已经事先放入session了,这里取出判断,是否为空 //需要注意的是:model.addAttribute放入的数据,在request中get不到 Object attribute = request.getSession().getAttribute("mapKey"); if(attribute!=null){ return true;//非空说明数据库中存在对应帐号 }else{ //没有登陆,转向登陆界面 request.getRequestDispatcher("/login.jsp").forward(request,arg1); return false; } }else{ request.getRequestDispatcher("/login.jsp").forward(request,arg1); return false; }}}Controller层中,在登录时,将判断用户名是否存在的结果,放入了session中,在拦截器作用时,会get出session,根据是否有值判断是否拦截。
package com.jk.login.controller;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.jk.login.entity.LoginUser;import com.jk.login.service.UserLoginService;@Controllerpublic class UserLoginController {@Autowiredprivate UserLoginService loginService;//登陆@RequestMapping("loginUser")@ResponseBodypublic Map<String,Object> loginUser(LoginUser lo,HttpServletRequest request){Map<String,Object> map = new HashMap<String, Object>();try {map = loginService.queryByUserId(lo,request);//放入sessionrequest.getSession().setAttribute("mapKey", map);Object attribute = request.getSession().getAttribute("mapKey");System.err.println(attribute.toString()+"█--------------------");} catch (Exception e) {e.printStackTrace();}return map;}}
阅读全文
0 0
- SSM 拦截器的配置和具体实现
- ssm配置拦截器
- SSM整合中拦截器的配置
- ssm整合拦截器的配置
- ssm拦截器和配置文件
- saltstack mutilmaster的具体配置和实现
- 用户登陆后拦截器的具体实现
- SSM 框架拦截器:实现用户验证
- spring拦截方法的配置和实现
- ssm整合中的拦截器的使用
- 过滤器与拦截器的具体区别
- 过滤器与拦截器的具体区别
- 过滤器与拦截器的具体区别
- 过滤器与拦截器的具体区别
- SSM-拦截器
- 自定义拦截器(SSM)
- ssm:拦截器
- ssm--之拦截器
- 拓扑排序(字典序)
- js数据类型隐式转换
- 欢迎使用CSDN-markdown编辑器
- npm安装模块失败,修改Nodejs内置的npm默认配置路径
- Deepin Linux 连接蓝牙键盘(需要配对码的键盘)
- SSM 拦截器的配置和具体实现
- matlab中的下标都是从1开始
- 字符串
- javaScript解析Json
- Android Span应用
- 2017.11.3
- CSS2-7种选择器
- break和continue的区别以及增强for循环详解
- 关于angularjs中$http POST请求参数的问题