后端Web之Web服务器(以Tomcat为例)

devtools/2024/9/23 10:29:18/

目录

1.Web服务器

2.Tomcat介绍

3.Tomcat使用

4.SpringBootWeb入门解析


1.Web服务器

Web服务器是一种软件或硬件系统,用于托管网站和Web应用程序,并处理客户端(如浏览器)的HTTP请求。它是任何Web应用程序的基础,选择合适的Web服务器对于确保应用程序的性能、安全性和可扩展性至关重要。

主要功能:

  1. 处理HTTP请求:接收客户端的HTTP请求并根据请求类型(GET, POST, PUT, DELETE等)提供响应。
  2. 服务静态内容:提供HTML页面、CSS样式表、JavaScript文件、图片和视频等静态资源。
  3. 脚本处理:与CGI脚本或服务器端脚本语言(如PHP, Python, Ruby等)集成,执行服务器端逻辑。
  4. 数据库交互:与数据库系统集成,为动态Web页面提供数据。
  5. SSL/TLS:支持HTTPS协议,提供安全的通信通道。
  6. 虚拟主机:在同一服务器上托管多个域名和网站。
  7. URL重写和重定向:支持URL重写规则和HTTP重定向。
  8. 缓存控制:管理响应的缓存策略,提高性能。
  9. 代理和负载均衡:作为反向代理,分发请求到多个后端服务器

简单来说,Web服务器对HTTP协议操作进行封装,简化了Web程序开发。同时能够部署Web项目,对外提供网上信息浏览服务,能够让其他人访问到服务器上的资源。

2.Tomcat介绍

说明:IDEA中自带tomcat服务器不需要自己下载(入门解析部分)

Tomcat是一个开源的轻量级Web应用服务器,广泛用于部署Java Web应用程序。它支持Java EE(现在称为Jakarta EE,自Java EE 8起)中的一些少量规范,如Servlet和JSP。因此它是一个轻量级服务器,而像WebLogic、WebSphere这样的支持全部的javeEE规范的服务器就是重量级的服务器。Tomcat提供HTTP服务,并具有灵活的配置和强大的管理功能。

正因为它是轻量级服务器,因此也称为Web容器。Servlet程序需要依赖支持servlet的服务器(如Tomcat)才能运行,所以也称为Servlet容器。

官网:https://tomcat.apache.org/

3.Tomcat使用

在一台主机上,端口号是不能重复的,如果已经有其他程序占用了8080端口,那么tomcat将无法成功启动,要么结束占用8080端口的程序,要么更改tomcat默认端口占用号(conf/server.xml)

小知识:HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。即localhost:80=localhost,浏览器会自动将80省略。

应用程序部署:直接将项目放在webapps目录下就部署完了

4.SpringBootWeb入门解析

在IDEA中新建spring boot项目时,上方有个server url,这个就是官方提供的骨架(官方提供的项目模板)

点进去可以看到这个项目的各个设置,我们在IDEA中创建spring boot项目时,实际上就是关联的官方的这个模板,因此创建项目时是需要联网的。

有时我们连不上官方提供的骨架,我们也可以更换国内的骨架(start.aliyun.com)

创建web程序时会勾选web依赖,这样提前勾选的依赖称为起步依赖

起步依赖利用maven中的依赖传递特性把开发某一个功能所需要的常用依赖聚合在一起,这样我们只需要引入这一个web开发的起步依赖就能实现这个功能。

官方提供的部分起步依赖如下:它们都包含starter,这个starter就是指起步依赖。每个起步依赖都用于开发特定的功能,比如我要操作redis,就引入redis起步依赖。

springboot项目创建时会继承一个父工程,这些依赖的版本都在父工程中统一管理,这里的springboot版本为2.7.4,那么引入的这些依赖都是符合这个版本的,不会产生兼容性问题

实际上,我们通过web依赖的依赖传递就引入了tomcat依赖,也就是自带tomcat(内嵌tomcat),启动项目时就会启动这个tomcat服务器(8080端口),访问localhost:8080就能访问内嵌tomcat服务器上的资源了。


http://www.ppmy.cn/devtools/97276.html

相关文章

Android笔试面试题AI答之Kotlin(11)

文章目录 49. Kotlin中的Sequence,为什么它处理集合操作更加高效?1. 惰性求值2. 逐个元素处理3. 避免中间集合的创建4. 支持无限序列5. 性能对比 50. Kotlin中的Coroutines与线程有什么区别?有哪些优点?一、协程与线程的区别二、协…

《Docker:实现开发环境一致性与高效部署的利器》

目录 介绍Docker 优势:Docker 的核心价值Docker在软件开发中的影响结语 介绍 Docker 是一个开源的应用容器化平台,它允许开发者将应用程序及其所有依赖项打包到一个独立的容器中。Docker 的基本概念包括: 镜像(Image)…

pyinstaller程序打包,资源嵌入exe

参考:https://blog.csdn.net/qq_48979387/article/details/132359366 一、参数说明 -F 最终打包为一个可执行文件。-w 取消Windows显示窗口-add-data ‘dll;dll’,将当前目录dll下的文件打包到可执行文件的dll中,最终会在解压文件的dll文件…

关于WebSocket必知必会的知识点

什么是WebSocket WebSocket是一种网络传输协议,可以在单个TCP连接上进行全双工通信,位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,服务器可以主动向客户端发送消息。在WebSocket API中,浏览器和…

力扣第 411 场周赛题解

3258. 统计满足 K 约束的子字符串数量 I 给你一个 二进制 字符串 s 和一个整数 k。 如果一个 二进制字符串 满足以下任一条件,则认为该字符串满足 k 约束: 字符串中 0 的数量最多为 k。字符串中 1 的数量最多为 k。 返回一个整数,表示 s …

虚幻引擎游戏开发 | 程序化生成道具位置 Randomize Height

当地图上有无数个收集物【如水晶】,一键随机化高度 应用前 应用后 这时候水晶的高度是离散型地在0和110两个数中平均概率地选择。 如果要有权重地分布高度,减少高位水晶的比例(由于过多连续跳跃会让玩家无聊和难以持续专注)可以加…

Professional Scrum Master (PSM) 官方认证培训班:掌握Scrum,提升项目管理能力

在快速变化的商业环境中,高效的项目管理和团队协作是企业成功的关键。作为一种广泛认可的敏捷框架,Scrum已成为推动项目成功和提高团队效率的重要工具。为了帮助专业人士掌握Scrum方法和实践,Scrum.org推出了Professional Scrum Master (PSM)…

探索 HarmonyOS 的层叠布局:灵活的 Stack 容器

在应用开发中,灵活的布局设计是提高用户体验的关键之一。HarmonyOS 提供了丰富的布局组件,其中层叠布局(Stack Layout)是一个强大的工具,可以帮助开发者轻松实现元素的重叠显示。本文将深入探讨 Stack 容器的功能和应用…