SpringMVC(一)---流程详解

DispatcherServlet

DispatcherServlet负责请求的分发,所以被称为请求分发器。和一般的Servlet一样,它在web.xml中配置,用于拦截匹配的请求路径,并将这些路径分发到不同的业务处理器。

	<!--一个示例-->
	<!--web.xml-->
  <servlet>
    <servlet-name>dispatcherServlet</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>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
init-param

默认情况下,DispatcherServlet会根据servlet-name到WEB-INF目录下去寻找名为[servlet-name]-servlet.xml的Spring配置文件。示例中用contextConfigLocation参数指定了文件。如果采用这种办法,包之间用”/“分割,多文件用”,“分割。(classpath指的是/WEB-INF/classes)

load-on-startup

参数值应是整数,小于0或不配置表示该Servlet会在第一次请求时启动,等于0或大于0表示会在容器启动时加载,数值越小优先级越高。

servlet-mapping

收到请求后,Servlet会将应用上下文去掉。如http://localhost:8080/springMVC_war/index.html,springMVC是应用上下文,故容器会将http://localhost:8080/springMVC去掉,用index.html匹配。
在DispatcherServlet中,应将url-pattern设置成/。这样只要在web.xml匹配不到合适的URL,它们的访问请求都将交给DispatcherServlet。

HandlerMapping

DispatcherServlet根据配置的路径和处理器的对应,将请求交给配置的处理器映射器(HandlerMapping)进行处理。

SimpleUrlHandlerMapping
<!--springmvc.xml-->
<bean class="org.springfamework.web.servlet.handler.SimpleUrlHandlerMapping">
	<property name="mappings">
		<props>
			<prop key="/user">userController</prop>
			<prop key="/test">testController</prop>
		</props>
	</property>
</bean>
BeanNameUrlHandlerMapping
<!--springmvc.xml-->
<bean id="mvcHelloController" name="/mvcHello" 
							class="Cotroller.MvcHelloController"/>

HandlerAdapter

在SpringMVC中,一个HTTP请求会由映射到某个类中的方法来处理,不直接调用处理器而通过Handlerdapter进行调用。

HttpRequestHandlerAdapter
public class MyHttpRequestHandler implements HttpRequestHandler {
    @Override
    public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        
    }
}

视图和视图解析器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值