springmvc拦截器验证登录时间
在前一篇【Filter实现用户名验证】的随笔里,记录了如何使用filter
这次增加了拦截器实现
①filter实现用户登陆时验证用户名是否为null
②interceptor实现用户登陆时时间判断,在时间段外不能进入系统
③在时间段外跳转到静态画面
难点在于怎么调到静态画面而不被filter给拦截住
最后用了下面的方法:
- <filter>
- <filter-name>SecurityServlet</filter-name>
- <filter-class>com.msm2.filter.MyFilter</filter-class>
- <init-param>
- <param-name>ignores</param-name>
- <param-value>/index</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>SecurityServlet</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- private String prefixIignores = null;
- public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
- throws IOException, ServletException {
- ......
- if (canIgnore(request)) {
- arg2.doFilter(request, response);
- return;
- }
- ......
- }
- @Override
- public void init(FilterConfig arg0) throws ServletException {
- encode = "utf-8";
- String cp = arg0.getServletContext().getContextPath();
- String ignoresParam = arg0.getInitParameter("ignores");
- prefixIignores = cp + ignoresParam;
- }
- @Override
- public void destroy() {
- prefixIignores = null;
- }
- private boolean canIgnore(HttpServletRequest request) {
- String url = request.getRequestURI();
- if (url.startsWith(prefixIignores)) {
- return true;
- }
- return false;
- }
- <mvc:interceptors>
- <!-- 多个拦截器,顺序执行 -->
- <!-- 拦截器1 登陆拦截 -->
- <mvc:interceptor>
- <mvc:mapping path="/login" /><!-- 可以写多个,如果为/*,将拦截所有的Controller -->
- <bean class="com.msm2.interceptor.LoginInterceptor">
- <!--startTimeStr 属性指定允许登陆的开始时间-->
- <property name="startTimeStr">
- <value>7:00:00</value>
- </property>
- <!--endTimeStr 属性指定允许登陆的结束时间-->
- <property name="endTimeStr">
- <value>21:00:00</value>
- </property>
- <!--outTimePageUrl 属性指定不在时间范围内时,提示页面的URL-->
- <property name="outTimePageUrl">
- <value>http://localhost:8080/msm2/index/index.jsp
- </value>
- </property>
- </bean>
- </mvc:interceptor>
- </mvc:interceptors>
终于实现了不拦截静态画面了
将工程源码给出,希望给在springmvc学习路上的朋友有所帮助。
貌似zip没法共享。
springmvc拦截器验证登录时间的更多相关文章
- springboot+springmvc拦截器做登录拦截
springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration ...
- SpringMVC拦截器实现登录认证(转发)
感谢原作者,转发自:http://blog.csdn.net/u014427391/article/details/51419521 以Demo的形式讲诉拦截器的使用 项目结构如图: 需要的jar:有 ...
- SpringMVC拦截器实现登录认证
项目结构如图: 需要的jar:有springMVC配置需要的jar和jstl需要的jar SpringMVC包的作用说明: aopalliance.jar:这个包是AOP联盟的API包,里面包含了针对 ...
- springmvc拦截器实现登录验证
首先创建一个实体类: Customer: 1 package com.petcare.pojo.base; 2 3 import java.sql.Date; 4 import java.sql.Ti ...
- SpringMVC拦截器(实现登录验证拦截器)
本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 <%@ ...
- SpringMVC之拦截器实现登录验证
今天回头看之前发的javaweb学习路线图,发现把路线图中的也学的有一半多了,不过还是路漫漫.在前面的博客中有学习过spring的aop,它利用动态代理实现,在springmvc中也是一样,今天使用H ...
- SpringMVC拦截器+Spring自定义注解实现权限验证
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- SpringMVC拦截器实现用户登录拦截
本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 1 < ...
- SSM 拦截器验证权限和登录与注销的实现
拦截器的作用在于,比如我们输入 xxx.com/admin 发起请求进入 网站后台或者其他后台页面.我们的拦截器会在 Controller 调用之前进行拦截,至于什么拦截,由我们来写.比如,判断用户 ...
随机推荐
- [LeetCode] Valid Word Abbreviation 验证单词缩写
Given a non-empty string s and an abbreviation abbr, return whether the string matches with the give ...
- [LeetCode] Isomorphic Strings 同构字符串
Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...
- CephRGW 在多个RGW负载均衡场景下,RGW 大文件并发分片上传功能验证
http://docs.ceph.com/docs/master/radosgw/s3/objectops/#initiate-multi-part-upload 根据分片上传的API描述,因为对同一 ...
- Mysql数据库 - 增删改
一. Create 1. 单条插入, sql格式: insert into (列名) values(列值); INSERT INTO test.tch_teacher ( Sex, BId, NO, ...
- 并发包的线程池第二篇--Executors的构造
上一篇讲述了ThreadPoolExecutor的执行过程,我们也能看出来一个很明显的问题:这个线程池的构造函数比较复杂,对于不十分理解其运作原理的程序员,自己构造它可能体现和想象中不一样的行为.比如 ...
- Android基础总结(四)
网络图片查看器 确定图片的网址 发送http请求 URL url = new URL(address); //获取连接对象,并没有建立连接 HttpURLConnection conn = (Http ...
- 如何给frame标签的src属性以及a标签的href属性自动设值
<frame src="" id="main" name="main" marginwidth="0" margi ...
- js中$(function())
$(document).ready() 里的代码是在页面内容都加载完才执行的 $(document).ready(function(){})可以简写成$(function(){});
- linux 星际词霸安装
安装StarDict星际译王.这是linux系统中最常用的翻译软件之一,但好久没有更新了.Ubuntu14.04下直接在ubuntu软件中心中搜索stardict即可图形界面安装. 命令行安装:sud ...
- java -- 容易放错的误区
1.按值传递 和 引用传递 (基本类型包括基本类型的包装类 或者 字符串类型 传递的是 副本 并不会改变原来的值)|| 如果是引用类型 传递的是地址,会改变原来的值. public class T ...