详解Spring mvc DispatchServlet 实现机制
在Spring中, ContextLoaderListener只是辅助类,在web 容器启动的时候查找并创建WebApplicationContext对象,通过该对象进行加载spring的配置文件。而真正的逻辑实现其实是在DispatcherServlet中进行的,DispatcherServlet是实现servlet接口的实现类。 DispatcherServlet 在 web.xml 中的配置如下: <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern><!-- 如果写斜杠的话那就表示请求是否加后缀都可以 --> </servlet-mapping> DispatcherServlet 源码解析 DispatcherServlet 的 init() 方法在 HttpServletBean() 中实现的 init()
onRefresh() 方法 在初始化servletBean的时候,最终会调用 onRefresh() 方法,该方法主要是刷新Spring在web功能实现中所必须使用的全局变量。
DispatchServlet的请求处理逻辑 servlet 接受到请求后,会调用service() 方法,然后service根据HTTP响应的请求方法进行调用响应的逻辑处理。 从类结构中,可以看出SpringMVC 支持 GET、POST、PUT、DELETE、OPTIONS、TRACE方法 从代码中,我们发现这几个方法交给 processRequest() 来进行处理请求。 processRequest()->doService()->doDispatch() doDispatch() 方法
processDispatchResult() 方法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Spring Boot中使用LDAP来统一管理用户信息的示例
- JDBC—03—SQL注入问题;PreparedStatement介绍;
- 我的Eclipse代码格式化风格
- 如何区分textField.setText()并在java中手动将文本添加到te
- ArrayList中的java – toArray(T [])方法
- java中? extends T 和? super T解析
- java – Wicket中的ResourceReferences是什么,它们如何工作
- java – 为什么程序不允许初始化静态最终变量?
- java – 如何在bundle中传递list <>
- Hibernate Query接口 setMaxResults方法:设置最大返回记录