springMVC.xml文件中====

<!-- 拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*"/>
<mvc:exclude-mapping path="/**/fonts/*"/>
<mvc:exclude-mapping path="/**/*.css"/>
<mvc:exclude-mapping path="/**/*.js"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.gif"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<mvc:exclude-mapping path="/**/*.jpeg"/>
<!-- 登录前放行的请求 -->
<mvc:exclude-mapping path="/**/user/login.do"/>
<mvc:exclude-mapping path="/**/user/toRegister.do"/>
<mvc:exclude-mapping path="/**/code/getVerifyCode"/>
<mvc:exclude-mapping path="/**/user/findUserByPhoneNo.do"/>
<mvc:exclude-mapping path="/**/user/findAllotControlByUserNo.do"/>
<mvc:exclude-mapping path="/**/user/userLogin.do"/>
<mvc:exclude-mapping path="/**/user/toUserMainjsp.do"/>
<bean class="interceptor.InterceptorDemo"></bean>
</mvc:interceptor>
</mvc:interceptors>

java代码

package interceptor;

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class InterceptorDemo implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("进入preHandle方法");
String user_no=httpServletRequest.getSession().getAttribute("user_no").toString();
System.out.println("进入preHandle方法user_no=="+user_no);
if(!StringUtils.isAllBlank(user_no)) {
System.out.println("session有值");
return true;
}
return false;
}

@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
String url = httpServletRequest.getServletPath();//获取当前url
String contextPath = httpServletRequest.getContextPath();//获取当前项目的根目录
System.out.println("url:"+url);
System.out.println("contextPath:"+contextPath);
System.out.println("进入postHandler 方法");
}

@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("进入afterCompletion 方法");

}
}

方法二

springMVC.xml文件======

<mvc:interceptors>
<bean class="com.xy.cc.interceptor.SpringLoginInterceptor">
<property name="excludedUrls">
<list>
<value>/user/getrsakey.do</value>
<value>/</value>
<value>/user/getMsgCode.do</value>
<value>/user/Login.do</value>
<value>/user/msgLogin.do</value>
<value>/user/getCompanyByCompanyidAndUserNo.do</value>
<value>/user/regist.do</value>
<value>/user/toDownLoadJsp.do</value>
<value>/user/resetPassword.do</value>

</list>
</property>
</bean>
</mvc:interceptors>

后台java代码====

package com.xy.cc.interceptor;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.xy.cc.controller.BadSurveyController;
import com.xy.cc.service.UserService;
import com.xy.cc.util.CUtil;

public class SpringLoginInterceptor implements HandlerInterceptor{
private static Logger logger = Logger.getLogger( HandlerInterceptor.class);
private static UserService u= null;

private List<String> excludedUrls;

// private static SimpleDateFormat sdf =new SimpleDateFormat("yy-MM-dd HH:mm:ss");

public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object arg2) throws Exception {

String requestUri = req.getRequestURI();

if(!requestUri.endsWith(".do")){//对非.do不拦截
return true;
}

for (String url : excludedUrls) {
if (requestUri.endsWith(url)) {
return true;
}
}
if(null==u) {
getDao("userService",req);
}

String oUsrNo=req.getHeader("oUsrNo");
if(null==u.findBaseInfoByUsrNo(oUsrNo)) {
logger.info("当前请求oUsrNo='"+oUsrNo+"'");
logger.info("当前请求url="+requestUri+"未获取到用户信息");
return false;
}
return true;
}

public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {

}

public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {

}

public List<String> getExcludedUrls() {
return excludedUrls;
}

public void setExcludedUrls(List<String> excludedUrls) {
this.excludedUrls = excludedUrls;
}

private void getDao(String t,HttpServletRequest request){
BeanFactory beanFactory = WebApplicationContextUtils.getRequiredWebApplicationContext((request.getSession()).getServletContext());
u=(UserService) beanFactory.getBean(t);

}
}

配置简单的拦截器java中的更多相关文章

  1. springboot环境下配置过滤器和拦截器

    以前我们在配置过滤器和拦截器的时候,都是一个类继承一个接口,然后在xml中配置一下就ok 但是,但是,这是springboot的环境,没有xml的配置.所以我们还要继续学习啊啊啊啊啊~~~~~ 先简单 ...

  2. 拦截器(Interceptor)中的invocation.invoke()

    关于在Struts2的自定义的验证拦截器(Interceptor)中的invocation.invoke()是什么意思? package com.xjtu.interceptor; import co ...

  3. springmvc实现简单的拦截器

    SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方 ...

  4. Spring boot 配置自己的拦截器

    框架使用的是spring boot 2.0 首先,自定义拦截器实现HandlerInterceptor接口,preHandler是在执行controller方法前执行的  此外还有两个方法,具体作用最 ...

  5. springboot配置过滤器和拦截器

    import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http ...

  6. [Java类加载器]Java中classLoader浅析.

    本文为在公司内部TD上写的一篇小文, 主要讲解java中classLoader基础知识, 现在拿来这里分享一下. 一.问题 请在Eclipse中新建如下类,并运行它: 1 package java.l ...

  7. SpringBank 开发日志 一种简单的拦截器设计实现

    当交易由Action进入Service之前,需要根据不同的Service实际负责业务的不同,真正执行Service的业务逻辑之前,做一些检查工作.这样的拦截器应该是基于配置的,与Service关联起来 ...

  8. SpringMVC配置session过期拦截器,返回登录页面

    spring-mvc.xml配置 <mvc:interceptors> <!-- session失效拦截器 --> <mvc:interceptor> <!- ...

  9. python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中

    # coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.s ...

随机推荐

  1. vue微博回调空页面

    1.vue微博回调空页面 注:微博回调空页面为:http://127.0.0.1:8888/oauth/callback/ 1.1 页面路径 components\oauth.vue <temp ...

  2. keeplived高可用集群

    什么是Keeplived? Keepalived是Linux下面实现VRRP备份路由的高可靠性运行件.基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接.二者 ...

  3. 使用django的用户表进行登录管理

    改写用户基本表 ... AUTH_USER_MODEL = 'appjwt.User' ... setting.py from django.db import models from django. ...

  4. RabbitMQ Go客户端教程5——topic

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第五篇--topic. 这些教程涵盖了使用RabbitMQ创建消息传递 ...

  5. 第15.4节 PyCharm程序代码检测功能介绍

    老猿使用PyCharm有将近一个月了,发现PyCharm并不能很好的完成语法检查,有时运行时突然终止,仔细核查却发现是基本的语法错误,不过有次无意中移动鼠标到代码最右边的边框时发现其实PyCharm有 ...

  6. 用Python爬取了三大相亲软件评论区,结果...

    小三:怎么了小二?一副愁眉苦脸的样子. 小二:唉!这不是快过年了吗,家里又催相亲了 ... 小三:现在不是流行网恋吗,你可以试试相亲软件呀. 小二:这玩意靠谱吗? 小三:我也没用过,你自己看看软件评论 ...

  7. LeetCode初级算法之数组:136 只出现一次的元素

    只出现一次的元素 题目地址:https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找 ...

  8. filebeat输出结果到elasticsearch的多个索引

    基本环境: filebeat版本:6.5.4 (Linux,x86-64) elasticsearch版本:6.54   (一)需求说明 在一台服务器上有多个日志需要使用filebeat日志收集到el ...

  9. 【题解】P1852 跳跳棋

    link 题意 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.棋盘上有3颗棋子,分别在 \(a,b,c\) 这三个位置.我们要通过最少的跳动把他们的位置移动成 \(x,y, ...

  10. redis学习之——持久化RDB 和AOF

    RDB: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里.rdb 保存的是dump.rdb文件 RDB工作原理: Redis会 ...