拦截器定义

实现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应用拦截器判断用户是否登录相关推荐

  1. 使用session监听+spring MVC拦截器禁止用户重复登录

    在许多web项目中,需要禁止用户重复登录.一般来说有两种做法: 一是在用户表中维护一个字段isOnLine(是否在线),用户登录时,设定值为true,用户退出时设定为false,在重复登录时,检索到该 ...

  2. Django项目实战——6—(退出登录、判断用户是否登录、QQ登录、QQ登录工具QQLoginTool、本机绑定域名)

    1.退出登录 注册界面跳转到登陆界面:templates/register.html 前端注册界面 {# 跳转到登陆界面 #}<a href="{% url 'users:login' ...

  3. 自定义拦截器用于用户登录的

    1 2 1.编写一个类,实现com.opensymphony.xwork2.interceptor.Interceptor 3 2.主要实现public String intercept(Action ...

  4. SpringMVC之拦截器和异常处理

    第四章 拦截器和异常处理 回顾 课前测: 本章内容 拦截器 异常处理 第一节:拦截器 javaWeb: 三大组件为servlet.filter .listener filter: 1.filter接口 ...

  5. SpringMVC之拦截器使用

    拦截器的介绍 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理,可以通过自定义拦截器来实现特定的功能. 过滤器与拦截器的区别:拦截器是AO ...

  6. SpringMVC之拦截器

    目录 一.什么是拦截器? 二.拦截器与过滤器 三.应用场景 四.拦截器入门案例 五.拦截器方法说明 六.用户登录权限控制 一.什么是拦截器? SpringMVC的处理器拦截器,类似于Servlet开发 ...

  7. Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证

    一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...

  8. 基于struts2拦截器实现用户操作日志记录

    2019独角兽企业重金招聘Python工程师标准>>> 这里基于struts2的拦截器来实现. 使用struts2拦截器拦截所有或者指定的请求,对用户操作过程中的:操作用户,操作时间 ...

  9. SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】

    注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

最新文章

  1. tf.reduce_mean解释
  2. 「第一篇」大学生电子设计竞赛,等你来提问。
  3. DDD“上吊绳驱动开发”,开发要想不被“吊死”,该如何自救?
  4. maven 打包编译_您是否真的想加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。...
  5. 温州大学c语言作业布置的网站,老师APP上布置作业 三年级娃为刷排名半夜做题_央广网...
  6. day13 java的多态
  7. PowerDesigner 学习
  8. 大数据_Spark_VS_Hadoop_框架---Spark工作笔记0002
  9. (面试必知)必知必会的冒泡排序和快速排序
  10. echarts3与echarts2区别
  11. 与大学生谈学习BIM软件开发所需要的准备
  12. 新手如何从零开始学习Unity3D,这边文章就够了!
  13. mysql如何创建用户代码_Mysql 创建用户 受权_mysql
  14. java程序设计 刘卫国_Java语言程序设计
  15. excel格式导出合并单元格
  16. KSImageNamed 安装后无效解决方法
  17. 美国诚实签经验——不要抢答,两个人一起签,要让与社会交流多、表达能力强的人为主导,抓住问题核心回答,重要问题回答时补充材料...
  18. Android拦截电话
  19. 2w字长文!手撸一套 Java 基础面试题
  20. 淮海工学院计算机考试题库,淮海工学院数据库试卷.docx

热门文章

  1. 跨年过程中因日期格式化引发的生产故障:格式化方式YYYYMMdd和yyyyMMdd的区别
  2. 可以对窗口函数之后再加条件_SQL 窗口函数——解决实际问题
  3. python网页服务器_python编写简单网页服务器
  4. pkdownloaderror错误8如何解决_8个深度学习/计算机视觉错误,应该如何避免它们
  5. linux反调试代码,linux反调试方法
  6. docker 启动容器_crontab入门二:定时启动docker容器并启动容器内部脚本
  7. decode的mysql用法_MySQL DECODE( )用法及代码示例
  8. python的groupby中函数详解_python groupby函数用法
  9. AutoML Challenge 历史回顾
  10. centos系统所需软件