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. pyhon的6大基本数据类型

    1.数字型(Number) 1.1 整型(int) 整型包括所有的正整数,负整数还有0. 在python中所有的整型数据全部默认采用十进制进行表示,但我们还可以手动表示其他进制的整型,具体表示如下: ...

  2. 【Go语言绘图】gg 库的基本使用

    最近接了个比较大的需求,需要做很多图片处理的事情,比如图片的旋转裁截拼接,各种渐变处理,文字排列,一开始光是想想就头疼.但没有办法,既然已经需求已经到手上了,那就得把它做好才行,于是便开始被迫营业,无 ...

  3. java集合源码分析(三):ArrayList

    概述 在前文:java集合源码分析(二):List与AbstractList 和 java集合源码分析(一):Collection 与 AbstractCollection 中,我们大致了解了从 Co ...

  4. Bootstrap Blazor 组件介绍 Table (二)自定义模板列功能介绍

    Bootstrap Blazor 是一套企业级 UI 组件库,适配移动端支持各种主流浏览器,已经在多个交付项目中使用.通过本套组件可以大大缩短开发周期,节约开发成本.目前已经开发.封装了 70 多个组 ...

  5. java简单的实现搜索框的下拉显示相关搜索功能

    最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 ...

  6. PyQt(Python+Qt)学习随笔:QMainWindow的splitDockWidget方法将QDockWidget停靠窗分割排列

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 主窗口的splitDockWidget方法用于将一个停靠窗占据的空间分 ...

  7. PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的setTitleBarWidget方法

    setTitleBarWidget方法用于给停靠窗口设置个性化的标题栏,调用语法如下: setTitleBarWidget(QWidget widget) 说明: widget参数可以是任意一个QWi ...

  8. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解

    本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...

  9. SELECT 1,2,3...的含义及其在SQL注入中的用法

    首先,select 之后可以接一串数字:1,2,3-只是一个例子,这串数字并不一定要按从小到大排列,也不一定从1开始,这串数字的值和顺序是任意的,甚至可以是重复的,如:11,465,7461,35 或 ...

  10. Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)

    1.Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括:数据库.文件.表.试图 Hive默认可以直接加载文本文件(TextFile),还 ...