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. 浅谈JAVA servlet

    1.servlet是什么? servlet的本质是接口,接口就是一种规范.我们来看一下servlet接口中都有哪些函数: 图片来源:https://www.cnblogs.com/whgk/p/639 ...

  2. jdk从1.8降到jdk1.7失败

    1.将JAVA_HOME:的路径更改为1.7的相关路径,例如我的:C:\Java\jdk1.7.0_80 2.此时查看版本:Java -version,如果是1.8的版本,就把path路径下的%JAV ...

  3. .Net Core JWT 动态设置接口与权限

    通过上一篇.Net Core官方的 JWT 授权验证学习到了JWT的授权.可以发现一个问题,就是如果每个接口可以使用的角色都是写死的,这样如果有所修改会非常麻烦,虽然用policy可以一定程度上缓解, ...

  4. python初次接触

    1.python有什么用或者能做什么? 可以做网站(比如 YouTube.豆瓣),可以做图片处理,可以做科学计算,也可以爬虫,甚至于游戏,学好Python后不用担心没有用武之地,Google就大量的在 ...

  5. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件操作控制类属性movable和tabsClosable介绍

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的操作控制类属性包括movable.tabsClosable这两个. 1. mo ...

  6. PyQt(Python+Qt)学习随笔:model/view架构中的两个标准模型QStandardItemModel和QFileSystemModel

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.PyQt中的标准模型 PyQt和Qt提供了两个标准模型QStandardItemModel和QF ...

  7. PyQt(Python+Qt)学习随笔:formLayout的layoutFormAlignment 属性

    一.引言 Qt Designer的表单布局(formLayout)中,layoutFormAlignment 用于控制表单布局中所有子部件在布局框内的对齐方式(与layoutLabelAlignmen ...

  8. 关于RequestParam在不同的Spring版本上,接口在controller重载时注解可能失效的踩坑记录

    先抛背景: 我项目中的Spring版本是2.0.3.RELEASE. api-demo负责暴露接口,service-demo负责实现功能.接口参数的@RequestParam和@RequestBody ...

  9. centos7最小安装后——网络配置、常见命令安装,远程连接、yum源安装软件包

    安装环境 #软件:vmware 14 #centos版本:CentOS-7-x86_64-DVD-1810 下载地址: #网络配置:NAT模式 配置 网络配置 #动态获取ip: centos7最小安装 ...

  10. 题解-CF1389F Bicolored Segments

    题面 CF1389F Bicolored Segments 给 \(n\) 条线段 \([l_i,r_i]\),每条有个颜色 \(t_i\in\{0,1\}\),求最多选出多少条线段,使没有不同颜色的 ...