Sevlet与Tomcat
前言
在弄懂Spring MVC的原理与架构先,不得不先弄清楚Sevlet与Tomcat,刚开始我甚至将两者弄混,本篇希望能够让uu了解并区分好两者。
正文
Tomcat:
开源的 Servlet 容器和 Web 容器:作为 Servlet 容器,它为 Servlet 提供运行环境,管理 Servlet 的生命周期,包括加载、初始化、调用服务方法以及销毁等。作为 Web 容器,它能够处理 Web 应用中的各种资源,如 HTML 页面、图片等,以及 Servlet 和 JSP。
负责执行和管理 Java Web 应用中的 Servlet 和 JSP:在 Java Web 应用中,Tomcat 能够加载和执行Servlet,根据客户端的请求调用相应的 Servlet 方法来处理请求。对于 JSP,Tomcat 会将其转换为 Servlet,然后像处理普通 Servlet 一样执行,从而实现动态内容的生成。
作为 Web 服务器接收客户端请求,执行后台逻辑并返回响应:当客户端向服务器发送 HTTP 请求时,Tomcat 作为 Web 服务器接收这些请求。然后,它会根据请求的内容,调用相应的 Servlet 或处理 JSP 页面,执行后台的业务逻辑。最后,根据逻辑的处理结果,生成相应的 HTTP 响应并返回给客户端。
Sevlet
纯Java 编写的一个服务器端程序:Servlet 是用 Java 语言编写的,运行在服务器端的程序,用于扩展服务器的功能,使其能够处理客户端的请求。
用来处理来自客户端的 HTTP 请求,并生成相应的 HTTP 响应:客户端通过 HTTP 协议向服务器发送请求,Servlet 接收到请求后,会根据请求的内容进行处理。处理完成后,生成相应的 HTTP 响应。这个过程使得 Servlet 能够根据不同的请求动态地生成内容。
配置方式
传统配置
配置Tomcat就不细说了,我发现有个大佬的文章讲的特别好,很详细(从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)),至于Sevlet就很简单了,首先创建类去实现Servlet接口,然后在web.xml中配置
<servlet>
<servlet-name>sevlet1</servlet-name>
<servlet-class>com.test.sevlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sevlet1</servlet-name>
<url-pattern>/sevlet1</url-pattern>
</servlet-mapping>
这两个的作用在这里就是声明Servlet,以及告诉 Tomcat 哪个 URL 对应这个 Servlet”。
<servlet-class>Servlet 的完整类名
<url-pattern>浏览器访问的路径
得记住两个<servlet-name>内的名字需完全一致
Springboot框架中
而我们目前使用 SpringBoot,就不用这么麻烦去配置 Tomcat 和 Sevlet,SpringBoot 把嵌入式 Tomcat 打成依赖 jar,应用启动时直接 new 一个 Tomcat 实例,监听端口、加载类,因此不需要外部 Tomcat ,如果要更换端口之类的,可以在 application.properties 修改;而 Sevlet 也不需要配置,自动配置由 DispatcherServletAutoConfiguratio 中的两个内部类 DispatcherServletConfiguration, DispatcherServletRegistrationConfiguration,前者是配置DispatcherServlet,后者是配置DispatcherServlet的注册类。什么是注册类?我们知道Servlet实例是要被添加(注册)到如tomcat这样的ServletContext里的,这样才能够提供请求服务。所以,DispatcherServletRegistrationConfiguration将生成一个Bean,负责将DispatcherServlet给注册到ServletContext中。(具体详看springboot mvc自动配置(一)自动配置DispatcherServlet和DispatcherServletRegistry)
篇后吐槽
我靠,这周,顶多就干了两天活,项目在上线部署阶段,我好像也确实干不了啥,这工资我拿的有点不好意思了。
Sevlet与Tomcat的更多相关文章
- Web服务器与Servlet容器
今日要闻: Oracle启动了JRE7到JRE8的自动更新, JRE8发布于2014.3,于2014.10成为java.com默认版本, JRE7发布于2011.7, Oracle指定的Java生命政 ...
- [javaEE] Servlet的手动配置
一.Servlet sun提供的一种动态web资源开发技术,本质上就是一段java小程序,可以将Sevlet加入到Servlet容器中 *Servlet容器 -- 能够运行Servlet的环境就叫做S ...
- jsp+tomcat+mysql+sevlet+javabean配置过程
在配置jsp开发环境的过程中会碰到不少问题,感谢网上的许多前辈的经验总结,作者cl41的JSP连接Mysql数据库攻略和作者Saulzy的MySQL学习笔记等文章对我来说简直是雪中送碳,为了帮助象我一 ...
- nginx和tomcat的区别
web上的server都叫web server,但是大家分工也有不同的. nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什 ...
- JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4134921.html [开发环境] 物理机版本:Win 7旗舰版(64位 ...
- Tomcat的目录结构及用途
目录结构及用途 目录 用途 bin 包含启动/关闭脚本 conf 包含不同的配置文件,包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件we ...
- Tomcat 下配置OpenLayers proxy.cgi代理
摘要:在OpenLayers访问WFS服务时,会遇到跨域的问题而导致服务无法访问.此时,需要在应用程序中设置代理,通过代理进行访问.本文介绍在tomcat进行proxy.cgi文件配置,以及在调用代理 ...
- apache httpd, nginx, tomcat, jboss
web上的server都叫web server,但是大家分工也有不同的. nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什 ...
- tomcat 与 nginx,apache的区别
tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...
- (转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4134921.html [开发环境] 物理机版本:Win 7旗舰版(64位 ...
随机推荐
- 鸿蒙Next仓颉语言开发实战教程:订单列表
大家上午好,最近不断有友友反馈仓颉语言和ArkTs很像,所以要注意不要混淆.今天要分享的是仓颉语言开发商城应用的订单列表页. 首先来分析一下这个页面,它分为三大部分,分别是导航栏.订单类型和订单列表部 ...
- 3. LangChain4j-RAG,实现简单的text-sql功能
1. 简介 前两章我们讲了如何使用LangChain4J进行AI交互, 其中包括 使用ChatLanguageModel.ChatMessage.ChatMemory等底层组件进行灵活/自由的与AI交 ...
- redis实现持久化存储的两种方案
一.简单说明 redis是非关系型数据库,是一种内存型数据库.数据存储在内存中,所以当我们关掉软件,或者拔掉电源时,内存中的数据就会丢失.针对此场景,这里提出持久化的方案.它的核心就是将内存中的数据存 ...
- Kafka入门实战教程(8):常用的shell工具脚本
1 Kafka提供的命令行脚本 Kafka默认提供了多个命令行脚本,用于实现各种各样的功能和运维管理.从2.2版本开始,提供了多达30+个Shell脚本. 今天我们来看一些其中比较实用的Shell脚本 ...
- Hadoop入门学习总结系列文章目录
一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...
- 前端开发系列005-基础篇之JavaScript严格模式
本文将重点介绍ES5中严格模式相关的知识点,包括但不限于严格模式的介绍.写法.严格模式和非严格模式使用对比等内容. 一.严格模式简单介绍 在JavaScript中有严格模式和非严格模式两种运行环境. ...
- EASY CONNECT安装使用
最近在项目运维中遇到要连远程服务器,刚开始客户提供的VPN有问题,老是不稳定,后建议客户使用Easy Connect,记录一下. 1.EASY CONNECT的下载与安装 一般百度EASY CONNE ...
- PCA(Principal Components Analysis)主成分分析: 坐标基 + 基变换 + 一维列向量坐标的变换: 左乘变换矩阵 而 一维行向量的坐标系基元的变换 是 右乘变换矩阵
https://zhuanlan.zhihu.com/p/661060377 总结: 坐标与坐标系(基向量组=变换矩阵)是成对出现.同一点在不同坐标系的坐标的变换,要有统一的"世界坐标系&q ...
- SciTech-EECS-电路设计-PCB设计-原理图设计-Schematic library(原理图元器件库)的设置 及 为新 “Component(元器件)” 新增“Symbol(符号封装)
Altium官方的"原理图设计"文档: How to Create a PCB Schematic | Altium Designer, Zachariah Peterson | ...
- OpenList挂载「迅雷」
存储->添加 选择迅雷 填写挂载路径,其他的按默认的即可 填写用户名和密码 注意:第一次挂载迅雷的时候,这里填的手机号不要+86 例如,我的手机号是12345678,此时直接填12345678即 ...