广告
返回顶部
首页 > 资讯 > 精选 >tomcat+spring mvc原理是什么
  • 188
分享到

tomcat+spring mvc原理是什么

2023-06-02 12:06:44 188人浏览 独家记忆
摘要

这篇文章主要讲解了“Tomcat+spring mvc原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tomcat+spring mvc原理是什么”吧!tomat + spring

这篇文章主要讲解了“Tomcat+spring mvc原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tomcat+spring mvc原理是什么”吧!

tomat + spring mvc 是目前比较流行java微服务体系架构,包括现在的Spring Boot以及基于spring boot的进一步应用化封装的spring cloud框架,底层都是基于tomcat + spring mvc的框架。因此学习tomcat + spring mvc的基础原理,对于解决使用中出现的问题会有比较大的帮助。

tomcat + spring mvc的运作模式

    理解tomcat+spring mvc的工作原理之前,最好能自己配置一下tomcat环境,然后部署一个spring mvc服务,实际感受一下整个流程,对tomcat和spring mvc暴露在外的配置有一个大概的了解。这样有了感性的认识之后,再深入了解原理,会有比较好的理解。网上已经有很多比较详细的关于tomcat环境搭建的文章,这里我就不再赘述。
    传统的使用tomcat + spring mvc框架的服务在开发之前,需要先行配置tomcat的环境。这个过程包括下载和安装tomcat,配置环境变量,修改tomcat的配置文件,最后运行tomcat。对,你没看错,tomcat独立运行,而spring mvc的服务是tomcat运行时加载的。基于spring mvc框架的服务可以在流行的java IDE中自动创建,比如eclipse或者idea。自动创建的工程基本配置已经写入,你可以直接动手书写业务代码,这也是这种架构的显著优势。当然你也可以创建一个空的项目,自行配置。总的来说,spring mvc基于xml或者java代码的config文件的配置是比较繁琐的。项目最后需要打包成一个war文件,复制到tomcat的指定目录下,tomcat会自动解包加载,然后基于你的配置,访问指定端口的指定路由链接,就可以请求服务器的信息应答。
    显然,这种运作模式要求:tomcat需要有监视指定目录,一旦有新的war包加入,就完成解包并动态加载编译后的class的能力;tomcat需要有网络端口开闭和监视的机制,维护线程池来处理随时可能到来的请求;tomcat还需要将到来的请求顺利地传递给spring mvc服务,然后再将服务返回的数据发送出去。

tomcat内部的基本容器构成

    所谓容器(Container),并不是常说的用来存储数据结构的类,比如Collection、Set、List等,而是专指tomcat和spring mvc中用来对功能和结构进行分层抽象的概念(类或者接口)。tomcat的基本容器结构如图所示:
tomcat+spring mvc原理是什么
    tomcat最顶层的容器Server,代表整个tomcat服务器,一个Server可以包含一个或者多个Service。一个Service包含一个或者多个Connetor,但是只能包含一个Container。Connector主要用来处理连接相关的事,比如网络套接字Socket的监听、请求request的接收和应答response的发送。这里的Container是一个抽象的概念,一个接口。其实是指一个Service只能包含一个Engine--Engine继承自Container。Engine容器结构如图所示:
tomcat+spring mvc原理是什么
其中Engine、Host、Context和Wrapper都继承自Container。
    Engine用来管理多个站点,即可以有多个Host。Host代表一个站点,其实是一个虚拟主机。Context,上下文,代表一套应用程序,一套应用程序总是有相同的应用上下文配置。最后是Wrapper,每个wrapper只有一个Servlet,而每个Servlet即对应每个开发的spring mvc服务程序。所以我们开发的spring mvc服务程序都是通过Wrapper加载到tomcat中。Context和Wrapper是动态添加的,我们在tomcat的指定目录下每添加一个war包,tomcat加载war包时,就可以添加Context和Servlet。

tomcat容器对应的外部配置

    之所以强调学习原理之前,最好先自己配置tomcat环境和部署一个spring mvc服务程序,是因为tomcat的很多配置和内部容器相关。外部感性理解和对内部原理的理性理解的结合,有益于认知的深入和记忆。
    在tomcat的安装目录下(使用linux yum安装的默认目录在/usr/local/tomcat下,其他系统和安装方法的目录需要百度),有一个conf文件夹,里面存放着一些tomcat层次的容器配置。server.xml配置了Server容器下Service、Connector、Engine和Host的配置,格式类似上图所显示的嵌套结构,不过是以xml的形式。以其中一个Connector配置为例:

<Connector port="8080" protocol="Http/1.1"           connectionTimeout="20000"           redirectPort="8443" />

上面说到Connector主要用来处理连接相关的事,比如网络套接字Socket的监听、请求request的接收和应答response的发送。所以这里就配置了端口、网络协议、连接超时时间和重定向端口。其他容器的配置也比较类似,可以自行打开浏览一下。conf目录下的context.xml文件存放Context容器的配置:

<Context>    <!-- Default set of monitored resources. If one of these changes, the    -->    <!-- WEB application will be reloaded.                                   -->    <WatchedResource>WEB-INF/web.xml</WatchedResource>    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>    <!-- Uncomment this to disable session persistence across Tomcat restarts -->    <!--    <Manager pathname="" />    --></Context>

内部主要包括了两个web.xml的目录配置。按照上文所讲的容器结构,Context容器可以中可以有一个或者多个Wrapper,每个Wrapper中包含一个Servlet,Servlet就是我们开发的spring mvc 服务程序。web.xml里写的是spring mvc Servlet的相关配置,一般的spring mvc项目中会有一个WEB-INF目录,内部包含一个自己配置的web.xml文件。另一个是tomcat默认的web.xml的配置,可以看到就是conf目录下的web.xml,这个默认配置是针对所有部署在tomcat中的spring mvc程序。具体关于web.xml配置内容的解释,放在后面的spring mvc原理综述中。

感谢各位的阅读,以上就是“tomcat+spring mvc原理是什么”的内容了,经过本文的学习后,相信大家对tomcat+spring mvc原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: tomcat+spring mvc原理是什么

本文链接: https://www.lsjlt.com/news/229991.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • tomcat+spring mvc原理是什么
    这篇文章主要讲解了“tomcat+spring mvc原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tomcat+spring mvc原理是什么”吧!tomat + spring ...
    99+
    2023-06-02
  • Spring MVC原理是什么
    这篇文章将为大家详细讲解有关Spring MVC原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。springMVC,是spring的一个子框架,当然拥有spring的特性,如依赖注入。在web模型...
    99+
    2023-06-27
  • Spring MVC的原理是什么
    今天小编给大家分享一下Spring MVC的原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。SpringMVC是一种...
    99+
    2023-06-27
  • Spring MVC异常解析器的原理是什么
    本篇内容主要讲解“Spring MVC异常解析器的原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring MVC异常解析器的原理是什么”吧!使用介...
    99+
    2022-10-19
  • 在Spring mvc中实现DispatchServlet的原理是什么
    在Spring mvc中实现DispatchServlet的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Spring中, ContextLoaderListene...
    99+
    2023-05-31
    springmvc hs dispatchservlet
  • spring mvc是什么
    spring mvc是一个基于Java的开源Web应用程序框架,提供了一种模型,视图,控制器架构模式来构建灵活、可扩展的Web应用程序。无论是大型企业级应用程序还是小型个人项目,spring mvc都是一个理想的选择,其模块化设计和松耦合的...
    99+
    2023-08-09
  • spring、spring MVC和spring Boot是什么
    这篇文章主要介绍“spring、spring MVC和spring Boot是什么”,在日常操作中,相信很多人在spring、spring MVC和spring Boot是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-05
  • Spring mvc中内置编码过滤器的原理是什么
    Spring mvc中内置编码过滤器的原理是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。web.xml 中 添加如下配置:<filter> ...
    99+
    2023-05-31
    springmvc 滤器
  • Spring MVC的处理流程是什么
    本篇内容介绍了“Spring MVC的处理流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、曾经的王者&mdash;&am...
    99+
    2023-06-15
  • tomcat热部署原理是什么
    Tomcat热部署是指在不停止Tomcat服务器的情况下,实时更新或添加新的Java类和资源文件。其原理主要包括以下几个步骤:1. ...
    99+
    2023-09-15
    tomcat
  • Spring MVC能响应HTTP请求的原因是什么
    Spring MVC能响应HTTP请求的原因是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。很多Java面试官喜欢问这个问题:一个Spring MVC的项目文件里,开发人员...
    99+
    2023-06-02
  • tomcat热部署的原理是什么
    Tomcat热部署的原理是使用了Servlet规范中的"Reload"功能。当Tomcat启动时,它会监视web应用程序的文件夹,比...
    99+
    2023-10-23
    tomcat
  • ASP.NET MVC 2.0框架的原理是什么
    ASP.NET MVC 2.0框架的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用微软VS工具开发Web应用程序主要有两种方式:一种是常用的创建ASP.NET W...
    99+
    2023-06-17
  • spring session的原理是什么
    Spring Session是一种用于管理用户会话的框架,它通过将会话数据存储在外部存储介质中,而不是默认的内存中,来实现会话的持久...
    99+
    2023-09-21
    spring
  • Spring底层原理是什么
    这篇文章主要讲解了“Spring底层原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring底层原理是什么”吧!Spring简介ClassPathXmlApplicationCo...
    99+
    2023-07-05
  • spring scope的原理是什么
    Spring的Bean的作用域(scope)指定了一个Bean的实例是如何被创建和管理的。Spring框架提供了多种作用域,包括si...
    99+
    2023-08-31
    spring scope
  • Spring boot整合tomcat底层原理剖析
    目录本文结论spring-boot-starter-web内部有什么?TomcatServletWebServerFactory的作用:获取WebServer对象spring boo...
    99+
    2022-11-13
    Spring boot整合tomcat Spring boot 整合tomcat原理
  • Spring框架的原理是什么
    这篇文章主要讲解了“Spring框架的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring框架的原理是什么”吧!简要介绍spring的原理,并结合一个简单的实例,如何配置使用...
    99+
    2023-06-03
  • Spring中Spring Boot与Spring MVC的核心概念是什么
    这篇文章主要介绍了Spring中Spring Boot与Spring MVC的核心概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring中Spring Boot与Sp...
    99+
    2023-06-29
  • 如何深入分析Spring MVC工作原理
    这篇文章将为大家详细讲解有关如何深入分析Spring MVC工作原理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Spring MVC框架介绍Spring MVC属于SpringFrameW...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作