spring mvc 学习笔记

       今天主要学习spring mvc 框架的内容,以及相关的配置,如果有哪里不对,希望大家可以给指正,小弟在这里先谢谢大家!!!

spring mvc 的 DispatcherServlet在web.xml文件中配置的情况,因为它是一个servlet,所以就可以被配置多次,这个类相当于将uri-pattern中的uri获取到,就像一堆uri中找到自己的相关请求,这样的就可以分离uri,比如说有.do结尾的还有.form结尾的,那我们就需要用不同的servlet进行分解处理,这里有一点很重要,就是dispatcherServlet每一个配置,都会产生一个webApplectionContext上下文对象,同时保存在servletContext,request中!!!这里也就是spring对于uri的一次分解。

spring在servlet初始化的时候通常有2种加载配置文件的方式,一种是spring中在servlelt中配置文件的方式,另外就是web.xml配置一个监听器进行配置文件的加载。

      第一种默认情况下; DispatcherServlet初始化的时候,会在WEB-INF下寻找,【servlet-name】-servlet.xml的配置文件,这个servlet-name就是在web.xml文件中配置的servlet-name,这样在多个DispatcherServlet中的配置时就可以将配置分开,进行解耦。

第一种在配置文件中进行配置;在servlet中配置init-param,这样在servlet进行初始化的时候就会就会加载相应的配置文件,在这里配置文件有两种写法:

<param-value>/WEB-INF/classes/springMvc.xml</param-value>

<param-value>classpath*:/springMVC.xml</param-value>

这里的对比就可以看出classpath就相当于/WEB-INF/classes/文件按目录,在这里还有一点需要注意。

classpath:表示知识加载寻找到的第一个资源,而不进行多次全部遍历寻找;

classpath*:表示会在加载配置文件时会在目录下便利查询符合条件的配置文件;

这里还有一个技巧,就是在classpath后面的文件通配符的使用**/springMVC.xml表示任何目录下的springMVC.xml文件,*.xml表示所有已xml结尾的文件(这个大家肯定都知道)

<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/springMVC.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

第二种加载配置文件的方式,就是配置一个监听器,

<listener> 
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

配置监听器在加载的时候,spring会产生一个webApplictionContext的对象,这个对象表示的父上下文的对象,而在servlet中配置的会产生一个子类的DispatcherServlet对象,就是子上下文对象,这两个对象有一定的关系,父上下文对象加载,每一个子类都可以使用父类上下文对象的相关信息,而父类不能使用子类上下文的相关对象,在servlet中进行配置的子类上下文对象的时候,每一个servlet都会出现一个子类的上下文对象,这个servletContext对象当有请求过来以后,产生了request对象时,会将servletContext对象保存到request对象中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值