SpringMVC应用拦截器判断用户是否登录
拦截器定义
实现HandlerInterceptor接口,实现接口方法。
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;public class Interceptor1 implements HandlerInterceptor{public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {// TODO Auto-generated method stubSystem.out.println("方法前 1");//判断用户是否登陆 如果没有登陆 重定向到登陆页面 不放行 如果登陆了 就放行了// URL http://localhost:8080/springmvc-mybatis/login.action//URI /login.actionString requestURI = request.getRequestURI();if(!requestURI.contains("/login")){String username = (String) request.getSession().getAttribute("USER_SESSION");if(null == username){response.sendRedirect(request.getContextPath() + "/login.action");return false;}}return true;}public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stubSystem.out.println("方法后 1");}public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stubSystem.out.println("页面渲染后 1");}}
拦截器配置
在springmvc.xml中配置拦截器
<!-- SPringmvc的拦截器 --><mvc:interceptors><!-- 多个拦截器 --><mvc:interceptor><mvc:mapping path="/**"/><!-- 自定义的拦截器类 --><bean class="com.itheima.springmvc.interceptor.Interceptor1"/></mvc:interceptor></mvc:interceptors>
编写登录jsp
<title>登录</title></head>
<body>
<form action="${pageContext.request.contextPath }/login.action" method="post">用户名:<input type="text" name="username" placeholder="输入用户名"><input type="submit" value="提交">
</form>
</body>
编写用户登录Controller
//去登陆的页面@RequestMapping(value = "/login.action",method = RequestMethod.GET)public String login(){return "login";}@RequestMapping(value = "/login.action",method = RequestMethod.POST)public String login(String username,HttpSession httpSession){httpSession.setAttribute("USER_SESSION", username);return "redirect:/item/itemlist.action";}
SpringMVC应用拦截器判断用户是否登录相关推荐
- 使用session监听+spring MVC拦截器禁止用户重复登录
在许多web项目中,需要禁止用户重复登录.一般来说有两种做法: 一是在用户表中维护一个字段isOnLine(是否在线),用户登录时,设定值为true,用户退出时设定为false,在重复登录时,检索到该 ...
- Django项目实战——6—(退出登录、判断用户是否登录、QQ登录、QQ登录工具QQLoginTool、本机绑定域名)
1.退出登录 注册界面跳转到登陆界面:templates/register.html 前端注册界面 {# 跳转到登陆界面 #}<a href="{% url 'users:login' ...
- 自定义拦截器用于用户登录的
1 2 1.编写一个类,实现com.opensymphony.xwork2.interceptor.Interceptor 3 2.主要实现public String intercept(Action ...
- SpringMVC之拦截器和异常处理
第四章 拦截器和异常处理 回顾 课前测: 本章内容 拦截器 异常处理 第一节:拦截器 javaWeb: 三大组件为servlet.filter .listener filter: 1.filter接口 ...
- SpringMVC之拦截器使用
拦截器的介绍 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理,可以通过自定义拦截器来实现特定的功能. 过滤器与拦截器的区别:拦截器是AO ...
- SpringMVC之拦截器
目录 一.什么是拦截器? 二.拦截器与过滤器 三.应用场景 四.拦截器入门案例 五.拦截器方法说明 六.用户登录权限控制 一.什么是拦截器? SpringMVC的处理器拦截器,类似于Servlet开发 ...
- Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证
一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...
- 基于struts2拦截器实现用户操作日志记录
2019独角兽企业重金招聘Python工程师标准>>> 这里基于struts2的拦截器来实现. 使用struts2拦截器拦截所有或者指定的请求,对用户操作过程中的:操作用户,操作时间 ...
- SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】
注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
最新文章
- tf.reduce_mean解释
- 「第一篇」大学生电子设计竞赛,等你来提问。
- DDD“上吊绳驱动开发”,开发要想不被“吊死”,该如何自救?
- maven 打包编译_您是否真的想加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。...
- 温州大学c语言作业布置的网站,老师APP上布置作业 三年级娃为刷排名半夜做题_央广网...
- day13 java的多态
- PowerDesigner 学习
- 大数据_Spark_VS_Hadoop_框架---Spark工作笔记0002
- (面试必知)必知必会的冒泡排序和快速排序
- echarts3与echarts2区别
- 与大学生谈学习BIM软件开发所需要的准备
- 新手如何从零开始学习Unity3D,这边文章就够了!
- mysql如何创建用户代码_Mysql 创建用户 受权_mysql
- java程序设计 刘卫国_Java语言程序设计
- excel格式导出合并单元格
- KSImageNamed 安装后无效解决方法
- 美国诚实签经验——不要抢答,两个人一起签,要让与社会交流多、表达能力强的人为主导,抓住问题核心回答,重要问题回答时补充材料...
- Android拦截电话
- 2w字长文!手撸一套 Java 基础面试题
- 淮海工学院计算机考试题库,淮海工学院数据库试卷.docx
热门文章
- 跨年过程中因日期格式化引发的生产故障:格式化方式YYYYMMdd和yyyyMMdd的区别
- 可以对窗口函数之后再加条件_SQL 窗口函数——解决实际问题
- python网页服务器_python编写简单网页服务器
- pkdownloaderror错误8如何解决_8个深度学习/计算机视觉错误,应该如何避免它们
- linux反调试代码,linux反调试方法
- docker 启动容器_crontab入门二:定时启动docker容器并启动容器内部脚本
- decode的mysql用法_MySQL DECODE( )用法及代码示例
- python的groupby中函数详解_python groupby函数用法
- AutoML Challenge 历史回顾
- centos系统所需软件