博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring mvc
阅读量:6906 次
发布时间:2019-06-27

本文共 2723 字,大约阅读时间需要 9 分钟。

hot3.png

org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-web
${spring.version}

 web部署描述符web.xml是java web 应用必不可少的配置文件。

spring
org.springframework.web.servlet.DispatcherServlet
1
spring
/

为了让spring加载 *-servlet.xml之外的配置文件,需要定servlet监听器contextLoaderListener。默认情况下加载配置文件/WEB-INF/applicationcontext.xml,但是也可以在上下文参数中指定资金的文件。可以指定多个用逗号或者空格分隔的配置文件。

contextConfigLocation
/WEB-INF/applicationContext.xml /WEB-INF/spring-security-servlet.xml
org.springframework.web.context.ContextLoaderListener

 ContextLoaderListener 加载指定的Bean配置文件到跟应用上下文中,而每个DispatcherServlet将其配置文件加载到自己的上下文,并引用根应用上下文为其上级。每个DispatcherServlet实例加载的上下文可以访问甚至覆盖跟应用上下文中声明的Bean。子上下文可以访问父上下文中的内容,但父上下文不能访问子上下文中的内容。 

激活Spring MVC 注解扫描

<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。

会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理并返回.DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet.

 补充说明:多个HandlerMapping的执行顺序问题:

DefaultAnnotationHandlerMapping的order属性值是:0

<mvc:resources/ >自动注册的 SimpleUrlHandlerMapping的order属性值是: 2147483646

<mvc:default-servlet-handler/>自动注册 的SimpleUrlHandlerMapping 的order属性值是: 2147483647

 spring会先执行order值比较小的。当访问一个a.jpg图片文件时,先通过 DefaultAnnotationHandlerMapping 来找处理器,一定是找不到的,因为我们没有叫a.jpg的Action。然后再按order值升序找,由于最后一个 SimpleUrlHandlerMapping 是匹配 "/**"的,所以一定会匹配上,就可以响应图片

@RequestMapping("list")	public void memberList() {	}//返回值为void的方法默认会返回与方法签名同名的视图(也就是memberList

自定义一个拦截器,要实现HandlerInterceptor接口

@Componentpublic class Intercept	implements HandlerInterceptor {	@Override	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {		// TODO Auto-generated method stub		return false;	}	@Override	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {		// TODO Auto-generated method stub			}	@Override	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {		// TODO Auto-generated method stub			}

 mvc

mvc contexts

 

 

 

 

 

转载于:https://my.oschina.net/liyonglee/blog/353926

你可能感兴趣的文章
ubuntu安装JDK
查看>>
FastJSON的常用方法
查看>>
HibernateUtil
查看>>
JDK 1.8 JVM的变化
查看>>
.Net组件程序设计之对象生命周期
查看>>
Map接口、静态导入、Collections集合工具类
查看>>
痞子衡嵌入式:蓝牙芯片厂商三强(Qualcomm&CSR, TI, Nordic)产品一览
查看>>
痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性介绍(1)- 概览
查看>>
codevs——1742 爬楼梯
查看>>
洛谷——P3376 【模板】网络最大流
查看>>
varnish安装和配置
查看>>
[ JS 进阶 ] 闭包,作用域链,垃圾回收,内存泄露
查看>>
HDOJ 1050 贪心? 好题
查看>>
OneZero第四次站立会议(2016.3.24)
查看>>
python 文件的写入和读取 操作
查看>>
插入排序
查看>>
学习JS的心路历程-参数传递方式(上)
查看>>
java8 for ,forEach ,lambda forEach , strean forEach , parller stream forEach, Iterator性能对比
查看>>
Python获取两个ip之间的所有ip
查看>>
导航条
查看>>