在前一篇【Filter实现用户名验证】的随笔里,记录了如何使用filter

这次增加了拦截器实现

①filter实现用户登陆时验证用户名是否为null

②interceptor实现用户登陆时时间判断,在时间段外不能进入系统

③在时间段外跳转到静态画面

难点在于怎么调到静态画面而不被filter给拦截住

最后用了下面的方法:

  1. <filter>
  2. <filter-name>SecurityServlet</filter-name>
  3. <filter-class>com.msm2.filter.MyFilter</filter-class>
  4.   <init-param>
  5.    <param-name>ignores</param-name>
  6.    <param-value>/index</param-value>
  7. </init-param>
  8. </filter>
  9. <filter-mapping>
  10. <filter-name>SecurityServlet</filter-name>
  11. <url-pattern>/*</url-pattern>
  12. </filter-mapping>
  1. private String prefixIignores = null;
  2. public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
  3. throws IOException, ServletException {
  4. ......
  5. if (canIgnore(request)) {
  6. arg2.doFilter(request, response);
  7. return;
  8. }
  9.   ......
  10. }
  1. @Override
  2. public void init(FilterConfig arg0) throws ServletException {
  3. encode = "utf-8";
  4. String cp = arg0.getServletContext().getContextPath();
  5. String ignoresParam = arg0.getInitParameter("ignores");
  6. prefixIignores = cp + ignoresParam;
  7. }
  8. @Override
  9. public void destroy() {
  10. prefixIignores = null;
  11. }
  12. private boolean canIgnore(HttpServletRequest request) {
  13. String url = request.getRequestURI();
  14. if (url.startsWith(prefixIignores)) {
  15. return true;
  16. }
  17. return false;
  18. }
  1. <mvc:interceptors>
  2. <!-- 多个拦截器,顺序执行 -->
  3. <!-- 拦截器1 登陆拦截 -->
  4. <mvc:interceptor>
  5. <mvc:mapping path="/login" /><!-- 可以写多个,如果为/*,将拦截所有的Controller -->
  6. <bean class="com.msm2.interceptor.LoginInterceptor">
  7. <!--startTimeStr 属性指定允许登陆的开始时间-->
  8. <property name="startTimeStr">
  9. <value>7:00:00</value>
  10. </property>
  11. <!--endTimeStr 属性指定允许登陆的结束时间-->
  12. <property name="endTimeStr">
  13. <value>21:00:00</value>
  14. </property>
  15. <!--outTimePageUrl  属性指定不在时间范围内时,提示页面的URL-->
  16. <property name="outTimePageUrl">
  17. <value>http://localhost:8080/msm2/index/index.jsp 
  18. </value>
  19. </property>
  20. </bean>
  21. </mvc:interceptor>
  22. </mvc:interceptors>

终于实现了不拦截静态画面了

将工程源码给出,希望给在springmvc学习路上的朋友有所帮助。

貌似zip没法共享。

springmvc拦截器验证登录时间的更多相关文章

  1. springboot+springmvc拦截器做登录拦截

    springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration ...

  2. SpringMVC拦截器实现登录认证(转发)

    感谢原作者,转发自:http://blog.csdn.net/u014427391/article/details/51419521 以Demo的形式讲诉拦截器的使用 项目结构如图: 需要的jar:有 ...

  3. SpringMVC拦截器实现登录认证

    项目结构如图: 需要的jar:有springMVC配置需要的jar和jstl需要的jar SpringMVC包的作用说明: aopalliance.jar:这个包是AOP联盟的API包,里面包含了针对 ...

  4. springmvc拦截器实现登录验证

    首先创建一个实体类: Customer: 1 package com.petcare.pojo.base; 2 3 import java.sql.Date; 4 import java.sql.Ti ...

  5. SpringMVC拦截器(实现登录验证拦截器)

    本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 <%@ ...

  6. SpringMVC之拦截器实现登录验证

    今天回头看之前发的javaweb学习路线图,发现把路线图中的也学的有一半多了,不过还是路漫漫.在前面的博客中有学习过spring的aop,它利用动态代理实现,在springmvc中也是一样,今天使用H ...

  7. SpringMVC拦截器+Spring自定义注解实现权限验证

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  8. SpringMVC拦截器实现用户登录拦截

    本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 1 < ...

  9. SSM 拦截器验证权限和登录与注销的实现

    拦截器的作用在于,比如我们输入 xxx.com/admin 发起请求进入 网站后台或者其他后台页面.我们的拦截器会在 Controller  调用之前进行拦截,至于什么拦截,由我们来写.比如,判断用户 ...

随机推荐

  1. [LeetCode] Find the Difference 寻找不同

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  2. [LeetCode] Remove Duplicates from Sorted List 移除有序链表中的重复项

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  3. JavaScript模板引擎artTemplate.js——template.helper()方法

    上一篇文章我们已经讲到了helper()方法,但是上面的例子只是一个参数的写法,如果是多个参数,写法就另有区别了. <div id="user_info"></d ...

  4. StringIO和BytesIO

    1. StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后 ...

  5. AngularJS Scope(作用域)

    1. AngularJS Scope(作用域) Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Sc ...

  6. canvas

    1. 画布可以通过两只手指上下移动,画布大小默认为屏幕大小的2倍,通过自定义View,嵌套scollview实现. Y 2. 通过处理手指触摸事件,一根手指时,使用Canvas绘制移动路径,产生直线: ...

  7. iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到

    iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ...

  8. 精灵方向移动问题[math.floor]

    local xd = math.cos(math.rad(self._direction));--self._direction方向角度 local yd = math.sin(math.rad(se ...

  9. 从点云到网格(二)VRIP介绍

    VRIP(Volumetric Range Image Processing),顾名思义,是从深度图重建网格的一种方法.VRIP是Brian Curless和Marc Levoy在1996年提出来的方 ...

  10. 在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)

    根据数据信息动态生成三维管线及横断面表格.效果图如下: 在获取信息后,直接构造点阵进行文字绘制即可. 绘制IElement代码: /// <summary> /// 绘制三维文字 /// ...