Spring MVC中DispatcherServlet工作原理探究

下面类图将主要的类及方法抽离出来,以便查看方便,根据类的结构来说明整个请求是如何工作的主要使用到的技术有Spring的IOC容器和Servlet。假如我们要实现一个请求home.htm然后返回home.jsp视图资源则当home.htm请求到达时,我们
摘要由CSDN通过智能技术生成

下面类图将主要的类及方法抽离出来,以便查看方便,根据类的结构来说明整个请求是如何工作的

主要使用到的技术有Spring的IOC容器和Servlet。


假如我们要实现一个请求home.htm然后返回home.jsp视图资源则

当home.htm请求到达时,我们需要DispatcherServlet来处理该请求,所以首先配置该Servlet

第一步需要在web.xml中配置DispatcherServlet,使该servlet来接收请求并做进一步处理。

 <servlet>
 	<servlet-name>dispatch</servlet-name>
 	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 	<load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 	<servlet-name>dispatch</servlet-name>
 	<url-pattern>*.htm</url-pattern>
 </servlet-mapping>

这个部分很好理解,如果请求以.htm结尾则交给名为dispatch类为DispatcherServlet的Servlet处理。


从类图中很容易看出DispatcherServlet最终继承的是HttpServlet,也就是说它同样满足Servlet的工作原理

Servlet初始化时需要调用init方法,在HttpServletBean中实现,该init方法调用了initServletBean,该方法在FrameworkServlet中实现

initServletBean主要初始化关于配置文件的内容,比如{servlet-name}-servlet.xml


第二步,需要在/WebRoot/WEB-INF下新建名为{servlet-name}-servlet.xml的spring bean配置文件。(该示例中即为dispatch-servlet.xml)

在初始化过程中会去寻找该配置文件,当然我们也可以自己去设置参数来更改配置文件所在路径


比如我们如果在src下新建的该配置文件dispatch-servlet,在编译后会被复制到WEB-INF/classes文件夹下,

配置文件还是按照命名规范做吧(可以修改为其他名字)

<servlet>
		<servlet-name>dispatch</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>namespace</param-name>
			<param-value>cla
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值