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位 ...
随机推荐
- docker基础学习笔记
Docker安装 Docker基本组成 docker架构图 安装步骤 官网安装参考手册:https://docs.docker.com/engine/install/ubuntu/ 卸载旧版本 for ...
- servlet 的生命周期
1 //servlet 的生命周期 2 @WebServlet(value = "/life",name = "LifeServlet",loadOnStart ...
- Java常用类Object
1 package com.lv.study.pm; 2 3 public class TestObject { 4 5 public static void main(String[] args) ...
- 五、小程序网络API·天气查询
本节主要介绍使用小程序网络API的相关应用制作一款天气查询小程序.掌握wx.request接口的用法. 前期准备:自行到和风天气官网(https://dev.qweather.com/) 申请API的 ...
- Select 组件实现【全选】(基于 Element)
〇.前言 在 Element 中,Select 组件支持单选和多选,但是并没有全选的属性,因此只能通过其事件和属性来实现,本文将实现一个简单的示例. 注意:本文的示例中,通过 leixing1 来兼容 ...
- 一文搞定AB测试
import numpy as npimport scipy.stats as statsimport pandas as pd'''场景:当已知总体标准差,对总体均值进行估计,用z检验'''def ...
- Oracle故障处理:分析Oracle数据库离奇的多快读慢
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效 ...
- php 第三方网页应用授权登录扩展包 支持 微信、qq、微博、github gitee gitlaba 等第三方登录
thirdparty_oauth 这是一个社会第三方登录扩展包 目前支持 微信.qq.微博.github gitee gitlaba 等第三方登录. [外链图片转存失败,源站可能有防盗链机制,建议将图 ...
- pdfjs-dist v2.11.338写个react demo
app.jsx import './App.css' import * as pdfjs from "pdfjs-dist"; import "pdfjs-dist/we ...
- 知道主机名称 如何知道ip地址
举例 ping -4 raspberrypi 就可以知道 ip 地址了.