什么是春季调度程序 Servlet?
在这个图像中(我是从这里得到的),HTTP请求向调度程序Servlet发送了一些东西。
我的问题是 Dispatcher Servlet 是做什么的?
它是否类似于从网页上获取信息并将其抛出到控制器?
在这个图像中(我是从这里得到的),HTTP请求向调度程序Servlet发送了一些东西。
我的问题是 Dispatcher Servlet 是做什么的?
它是否类似于从网页上获取信息并将其抛出到控制器?
DispatcherServlet 的工作是获取传入的 URI,并找到处理程序(通常是 Controller 类上的方法)和视图(通常是 JSP)的正确组合,这些处理程序组合在一起形成应该在该位置找到的页面或资源。
我可能有
/WEB-INF/jsp/pages/Home.jsp
和类上的方法
@RequestMapping(value="/pages/Home.html")
private ModelMap buildHome() {
return somestuff;
}
Dispatcher servlet 是“知道”在浏览器请求页面时调用该方法,并将其结果与匹配的 JSP 文件组合以生成 html 文档的位。
它如何实现这一点因配置和Spring版本而异。
也没有理由最终结果必须是网页。它可以做同样的事情来定位RMI端点,处理SOAP请求,任何可以进入servlet的东西。
在Spring MVC中,所有传入的请求都通过单个servlet。此 servlet - - 是前端控制器。前端控制器是 Web 应用程序开发中的典型设计模式。在这种情况下,单个 servlet 接收所有请求,并将它们传输到应用程序的所有其他组件。DispatcherServlet
的任务是向特定的Spring MVC控制器发送请求。DispatcherServlet
通常我们有很多控制器,并引用以下映射器之一来确定目标控制器:DispatcherServlet
BeanNameUrlHandlerMapping
;ControllerBeanNameHandlerMapping
;ControllerClassNameHandlerMapping
;DefaultAnnotationHandlerMapping
;SimpleUrlHandlerMapping
.如果未执行任何配置,则默认使用和。DispatcherServlet
BeanNameUrlHandlerMapping
DefaultAnnotationHandlerMapping
识别目标控制器后,向其发送请求。控制器根据请求执行一些工作(或将其委托给其他对象),并返回带有模型和视图名称的 。DispatcherServlet
DispatcherServlet
视图的名称只是一个逻辑名称。然后,此逻辑名称用于搜索实际的视图(以避免与控制器和特定视图耦合)。然后引用视图解析器,
并将视图的逻辑名称映射到视图的特定实现。DispatcherServlet
的一些可能的实现是:ViewResolver
BeanNameViewResolver
;ContentNegotiatingViewResolver
;FreeMarkerViewResolver
;InternalResourceViewResolver
;JasperReportsViewResolver
;ResourceBundleViewResolver
;TilesViewResolver
;UrlBasedViewResolver
;VelocityLayoutViewResolver
;VelocityViewResolver
;XmlViewResolver
;XsltViewResolver
.当 确定将显示结果的视图时,它将呈现为响应。DispatcherServlet
最后,将对象返回给客户端。DispatcherServlet
Response