问题描述

对于Spring mvc的拦截器我觉的应该是请求什么就该拦截什么,没有请求的就不该被拦截,但是不知道为什么,在如下的代码中,当我请求/路径的时候,我并没有请求index.html呀,为什么执行完控制器的代码和拦截器的postHandle方法之后,又执行了一次preHandle。我实在是想不明白为什么会是这样。详细内容如下:

相关代码

项目名称:codesound

Controller代码

@RequestMapping(value="/",method=RequestMethod.GET)

public String domain() {

System.out.println("控制器被调用");

return "index";

}

拦截器LoginInterceptor代码

package com.xy.codesound.interceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

public class LoginInterceptor implements HandlerInterceptor {

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

System.out.println("preHandle:"+request.getRequestURL());

return true;

}

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

System.out.println("postHandle");

}

@Override

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception {

System.out.println("afterCompletion");

}

}

拦截器配置信息

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">

mapping="/resources/**">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

10485760

UTF-8

base-package="com.xy.codesound.web">

当浏览器发起127.0.0.1:8080/codesound/请求,我期待的控制台输出结果是

preHandle:http://127.0.0.1:8080/codesound/

控制器被调用

postHandle

afterCompletion

实际看到的错误信息是

preHandle:http://127.0.0.1:8080/codesound/

控制器被调用

postHandle

preHandle:http://127.0.0.1:8080/codesound/WEB-INF/html/index.html

postHandle

afterCompletion

afterCompletion

spring 两次进入拦截器_spring mvc 拦截器一次请求拦截两次?相关推荐

  1. java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用

    在开发一个网站时可能有这样的需求:某些页面只希望几个特定的用户浏览.对于这样的访问权限控制,应该如何实现呢?拦截器就可以实现上述需求.在 Struts 2 框架中,拦截器是其重要的组成部分,Sprin ...

  2. springmvc 拦截器_Spring MVC拦截器学习

    1 介绍 Spring Web MVC是基于Servlet API构建的原始Web框架. 2 拦截器 2.1 定义 springmvc框架的一种拦截机制 2.2 使用 2.2.1 两步走 实现Hand ...

  3. 前后端分离,如何解决跨域(代理模式)、路由拦截(进入页面需要登录)以及请求拦截(登录TOKEN失效)等问题(初学者)

    前端时间项目需要发布一个较大的版本,工作比较忙,加了好多个晚上的班,感觉自己有点缺氧了.最近稍微闲下来了,顺便调休了三天,刚刚给家里来了个大扫除,看着这干干净净的小家,心里顿时舒服了很多. 下面进入正 ...

  4. spring mvc拦截器_Spring MVC拦截器示例

    spring mvc拦截器 我认为现在是时候看看Spring的MVC拦截器机制了,这种机制已经存在了很多年,并且是一个非常有用的工具. Spring Interceptor会按照提示说:在传入的HTT ...

  5. Java web登录拦截器_Spring MVC 拦截器实现登录

    上篇博文我在博客中讲到如何使用spring MVC框架来实现文件的上传和下载,今天小钱给大家再来分享和介绍Spring MVC框架中相当重要的一块功能--拦截器. 关于拦截器的概念我在这里就不多说了, ...

  6. springboot 拦截器_Spring Boot入门系列(十)如何使用拦截器,一学就会!

    前面介绍了Spring Boot 如何整合定时任务已经Spring Boot 如何创建异步任务,不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhon ...

  7. 给axios的请求拦截器中配置token

    axios 1. 配置token 用户第一次登录系统时,服务器端会返回一个身份秘钥信息(token),表明当前用户有资格.权限访问服务器,客户端获取token之后,通过sessionStorage存储 ...

  8. jsp中的url拼接的参数传递到controller乱码_Spring MVC中的拦截器

    拦截器是 AOP 编程思想的典型应用 详述 Spring MVC 框架中拦截器 Interceptor 的使用方法​blog.csdn.net 实现 1:创建一个controller类 package ...

  9. [Spring mvc 深度解析(三)] 创建Spring MVC之器

    第9章 创建Spring MVC之器 ​ 本章将分析Spring MVC自身的创建过程.首先分析Spring MVC的整体结构,然后具体分析每一层的创建过程. 1 整体结构介绍 Spring MVC中 ...

最新文章

  1. Matlab数据的可视化 -- 柱形立体图
  2. centos7 minimal运行vue项目npm run serve时报错:Error: spawn xdg-open ENOENT --解决办法:yum install xdg-utils
  3. 嵌入式系统分类及其应用场景_词嵌入及其应用简介
  4. 爬取前尘无忧python职位信息并保存到mongo数据库
  5. java mysql show status_Java 能不能执行mysql 中的show master status 命令
  6. 计算机网络技术专业发展现状,计算机网络技术的发展现状和前景
  7. linux 下的挂载
  8. 业界 | 成为CTO之前,我希望有人告诉我这些
  9. 【树莓派搭建个人网站】花生壳内网穿透
  10. Understanding Unix/Linux Programming-ls指令练习二
  11. ES Transport Client学习
  12. 三角函数常用公式总结
  13. 天气预报接口api(中国天气网)
  14. 无法打开此修补程序包,请确认该修补程序包存在并且可以访问它以检查这个修补程序包是有效的
  15. JDBC userenv('LANG')
  16. 用iPhone前摄3D人像建模,Meta:我看行
  17. 如何快速将WPS表格或者excel数据将表格转化为json
  18. switch好玩吗_Switch游戏没那么少!我今天就推荐几个好玩的
  19. java 汉字转换全拼、首字母拼音
  20. Android应用接入招商一网通

热门文章

  1. vscode插件推荐
  2. 和平精英要多少Android版本,和平精英外国版
  3. 最简单的SpringMVC + Maven配置
  4. 跟我一起写一个chrome扩展程序
  5. 解决mysql大小写敏感问题
  6. 【.NET】SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间
  7. 1.5 基础数据类型 -- 字典与集合
  8. JDBC实现用于操作数据库Mysql的工具类JDBCTools
  9. Python之数据分析(Numpy中读取与保存数据文件、将数据文件制成K线图)
  10. python把cookie分割成字典