当前位置: 首页 > news >正文

【JavaWeb】4—Tomcat

⭐⭐⭐⭐⭐⭐
Github主页👉https://github.com/A-BigTree
笔记链接👉https://github.com/A-BigTree/Code_Learning
⭐⭐⭐⭐⭐⭐

如果可以,麻烦各位看官顺手点个star~😊

如果文章对你有所帮助,可以点赞👍收藏⭐支持一下博主~😆

文章目录

  • 4 Tomcat
    • 4.1 配置文件
      • 4.1.1 配置
        • 设置
        • 配置
      • 4.1.2 配置文件
        • XML
          • 名词介绍
          • 可扩展
          • XML基本语法
          • XML约束
        • 属性文件
        • 其他形式
    • 4.2 Tomcat的部署和启动
      • 4.2.1 Tomcat扮演的角色
        • 对外:Web服务器
        • 对内:Servlet
      • 4.2.2 部署
        • 前提
        • 启动关闭Tomcat

4 Tomcat

4.1 配置文件

4.1.1 配置

设置

所谓设置其实就是通过修改一个一个的参数,告诉应用软件它该怎么工作

配置

本质上配置和设置是一样的,只是对象和形式不同:

配置设置
对象开发中使用的应用程序或框架应用软件
形式特定格式的配置文件应用软件的友好界面

4.1.2 配置文件

XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 配置SpringMVC前端控制器 --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 在初始化参数中指定SpringMVC配置文件位置 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 设置当前Servlet创建对象的时机是在Web应用启动时 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!-- url-pattern配置斜杠表示匹配所有请求 --><!-- 两种可选的配置方式:1、斜杠开头:/2、包含星号:*.atguigu不允许的配置方式:前面有斜杠,中间有星号/*.app--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
名词介绍

可扩展标记语言(eXtensible Markup Language,XML),XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。

可扩展

可扩展三个字表面上的意思是XML允许自定义格式。但是不代表 可以随便写

在这里插入图片描述

在XML基本语法规范的基础上,你使用的那些第三方应用程序、框架会通过设计 『XML约束』 的方式 『强制规定』 配置文件中可以写什么和怎么写,规定之外的都不可以写。

XML基本语法这个知识点的定位是:我们不需要从零开始,从头到尾的一行一行编写XML文档,而是在第三方应用程序、框架已提供的配置文件的基础上修改。要改成什么样取决于你的需求,而怎么改取决于XML基本语法具体的XML约束

XML基本语法
  • XML声明

这部分基本上就是固定格式,大家知道就好

<?xml version="1.0" encoding="UTF-8"?>
  • 根标签

根标签有且只能有一个;

  • 标签关闭
    • 双标签:开始标签和结束标签必须成对出现;
    • 单标签:单标签在标签内关闭;
  • 标签嵌套
    • 可以嵌套,但是 不能交叉嵌套
  • 注释不能嵌套
  • 标签名、属性名建议使用小写字母
  • 属性
    • 属性必须有值;
    • 属性值必须加引号,单双都行;

看到这里大家一定会发现XML的基本语法和HTML的基本语法简直如出一辙。其实这不是偶然的,XML基本语法+HTML约束=HTML语法。在逻辑上HTML确实是XML的子集。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

从HTML4.01版本的文档类型声明中可以看出,这里使用的DTD类型的XML约束。也就是说http://www.w3.org/TR/html4/loose.dtd这个文件定义了HTML文档中可以写哪些标签,标签内可以写哪些属性,某个标签可以有什么样的子标签。

XML约束

将来我们主要就是根据XML约束中的规定来编写XML配置文件。而XML约束主要包括DTD和Schema两种。如果XML配置文件使用的是DTD,那么对我们几乎没有影响。如果是Schema约束,需要我们稍微参与一点点。

  • 文档类型定义(Document Type Definition,DTD)

将来在IDEA中有代码提示的协助,在DTD文档的约束下进行配置非常简单。

<!ENTITY % fontstyle"TT | I | B | U | S | STRIKE | BIG | SMALL"><!ENTITY % phrase "EM | STRONG | DFN | CODE |SAMP | KBD | VAR | CITE | ABBR | ACRONYM" ><!ENTITY % special"A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |MAP | Q | SUB | SUP | SPAN | BDO | IFRAME"><!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON"><!-- %inline; covers inline or "text-level" elements -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;"><!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
<!ATTLIST (%fontstyle;|%phrase;)%attrs;                              -- %coreattrs, %i18n, %events -->
  • Schema

我们将来使用SSM框架中的SpringSpringMVC框架时,会涉及到一点点对Schema约束的设置。不过不必紧张,有IDEA的支持操作会非常简单,我们现在只需要理解基本概念即可。

首先我们要理解一个概念:『名称空间』,英文:name space

在这里插入图片描述

Schema约束要求我们一个XML文档中,所有标签,所有属性都必须在约束中有明确的定义。

下面我们以web.xml的约束声明为例来做个说明:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
属性名作用
xmlns指出当前XML文档约束规则的名称空间在哪里 我们就是通过这个属性来引用一个具体的名称空间
xmlns:xsi指出xmlns这个属性是在哪个约束文档中被定义的
xsi:schemaLocation语法格式:在xsi名称空间下引用schemaLocation属性 配置含义:指定当前XML文档中所用到的约束文档本身的文件的地址

xmlnsxsi:schemaLocation对应关系如下图:

在这里插入图片描述

引入多个名称空间的例子如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><context:component-scan base-package="com.atguigu.crud.component"/><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean><mvc:default-servlet-handler/><mvc:annotation-driven/></beans>

看到这么复杂,这么长的名称空间字符串,我们会觉得很担心,根本记不住。但是其实不需要记,在IDEA中编写配置文件时,IDEA会协助我们导入,会有提示。我们理解各个部分的含义能够调整即可。

属性文件

以properties作为扩展名的文件。

atguigu.jdbc.url=jdbc:mysql://192.168.198.100:3306/mybatis1026
atguigu.jdbc.driver=com.mysql.jdbc.Driver
atguigu.jdbc.username=root
atguigu.jdbc.password=atguigu
  • 由键值对组成;

  • 键和值之间的符号是等号;

  • 每一行都必须顶格写,前面不能有空格之类 的其他符号;

其他形式

  • YAML语言的配置文件:在SpringBoot中使用;
spring:profiles:active: fcdatasource:name: mydbtype: com.alibaba.druid.pool.DruidDataSourceurl: jdbc:mysql://192.168.41.100:3306/spring_boot?serverTimezone=UTCusername: rootpassword: atguigudriver-class-name: com.mysql.cj.jdbc.Driver
mybatis:mapper-locations: classpath*:/mybatis-mapper/*Mapper.xml
logging:level:com.atguigu.function.compute.mapper: debug
  • JSON格式的配置文件:一般是前端使用;

4.2 Tomcat的部署和启动

4.2.1 Tomcat扮演的角色

对外:Web服务器

在这里插入图片描述

对内:Servlet

在这里插入图片描述

4.2.2 部署

前提

Tomcat本身是一个Java程序,所以当前系统中必须正确配置了JAVA_HOME环境变量。

Tomcat支持的Java版本对照:

在这里插入图片描述

启动关闭Tomcat

启动Tomcat:运行Tomcat解压后根目录下\bin\startup.bat即可。

PS D:\JavaWeb\apache-tomcat-10.1.7\bin> .\\startup.bat

Tomcat首页网址为:localhost:8080

如果需要停止Tomcat,则运行shutdown.bat程序。

PS D:\JavaWeb\apache-tomcat-10.1.7\bin> .\\shutdown.bat

小提示:将来我们在IDEA中启动Tomcat,如果IDEA卡死强关,Tomcat不会正常退出。下次再启动Tomcat会因为残留进程仍然占用8080端口,导致新的进程无法启动。此时可以使用shutdown.bat结束残留进程。

具体部署过程可在IDEA中进行。

相关文章:

【JavaWeb】4—Tomcat

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…...

宝塔Linux面板部署Python flask项目

目录 &#x1f449;1、前言 &#x1f449;2、安装python项目管理器 &#x1f449;3、上传项目文件及文件夹 &#x1f449;4、配置项目 &#x1f449;5、请求测试 学习记录&#xff1a; &#x1f449;1、前言 写在前面&#xff1a;前几天我们实现了外网内外登录正方教务系…...

spring中产生bean的几种方式

BeanImportMyImportSelector implements ImportSelectorMyImportBeanDefinitionRegistarimplements ImportBeanDefinitionRegistrarFactoryBean这里着重讲解FactoryBean如何判断当前bean是否是FactoryBeanorg.springframework.beans.factory.support.AbstractBeanFactory#isFac…...

OD-火星文计算(Python)

火星文计算 题目描述 已经火星人使用的运算符号为# $ 其与地球人的等价公式如下x#y2*x3*y4x$y3*xy2x y是无符号整数 地球人公式按照c语言规则进行计算 火星人公式中$符优先级高于#相同的运算符按从左到右的顺序运算 输入描述 火星人字符串表达式结尾不带回车换行 输入的字符…...

【vue3教程】初入了解vue3的基本结构

前言 Animatrix&#xff1a;黑客帝国 Blade Runner&#xff1a;银翼杀手 Cowboy Bebop&#xff1a;星际牛仔 Dragon Ball&#xff1a;龙珠 Evangelion&#xff1a;新世纪福音战士 Ghostin the Shell&#xff1a;攻壳机动队 Hunter X Hunter&#xff1a;全职猎人 Initial D&…...

智慧供水综合运营平台解决方案

一、概述 建设背景&#xff1a; 供水系统是城市生存、发展的基础&#xff0c;供水事业的发展与城市的社会经济发展息息相关&#xff0c;其服务质量的好坏不仅关系到供水企业自身的利益&#xff0c;也直接影响到社会的稳定和政府形象。住房城乡建设部于2012年12月5日正式发布了《…...

文件系统、描述符和缓冲区

目录 &#x1f3c6;一、文件系统 1、open ①对open接口的介绍 ②接口使用 2、write接口 3、read接口 &#x1f3c6;二、深入理解文件描述符fd 1、fd具体实质 2、文件fd的分配规则 3、fd重定向 ①输出重定向 ②追加重定向 ③输入重定向 ④文件的引用计数 &#x1f3c6;三…...

java微服务商城高并发秒杀项目--009.流控规则和降级规则

线程流控&#xff08;只要线程数达到了指定数量&#xff0c;访问就会被流控&#xff09;&#xff1a;warm up流控效果&#xff08;慢慢增加QPS的数量&#xff0c;之后最后达到阈值&#xff0c;这种情况下&#xff0c;一开始会容易限流&#xff0c;后期就不会限流了&#xff09;…...

php编写的脚本,如何才能在windows系统运行呢?

咱们要在Windows系统上运行PHP脚本&#xff0c;需要安装PHP解释器和Web服务器。 以下是基本的步骤&#xff0c;很简单&#xff1a; 下载PHP解释器&#xff1a;可以从官方网站 https://windows.php.net/download/ 下载Windows版本的PHP解释器。根据你的操作系统和需要的版本选…...

政务综合服务平台建设项目方案书

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 目 录 第一章 项目整体概述 1.1. 项目名称 1.2. 建设单位 1.3. 编写依据 1.3.1 相关政策 1.3.2 技术标准 1.4. 建设目标、规模、内容、建设期 1.4.1 建设目标 1.4.2 …...

python好玩的短代码

Python语言是一种流行的编程语言&#xff0c;在 Python语言中有很多有趣的特性&#xff0c;比如&#xff1a; 1.变量可以定义为字符串&#xff0c;也可以定义为字符串对象 2.变量可以用来初始化一个函数或模块&#xff0c;函数或者模块可以定义成一个类&#xff0c;这个类被称为…...

会Python如何学习C#的几个关键点

Python和C#都是常用的编程语言&#xff0c;但两者之间存在一些重要的区别。如果你已经掌握了Python并希望学习C#&#xff0c;以下是几个关键点&#xff1a; 面向对象编程&#xff08;OOP&#xff09;&#xff1a;C#是一种严格的面向对象编程语言&#xff0c;而Python则具有更灵…...

索引失效原则与查询优化

数据库调优的维度&#xff1a; 索引建立SQL优化&#xff08;本文重点&#xff09;my.cnf的调整&#xff08;线程数&#xff0c;缓存等&#xff09;分库分表 SQL查询优化的技术从大方向上可以分为 物理查询优化&#xff0c;逻辑查询优化 物理查询优化&#xff1a;即通过建立索…...

读完这篇文章你就彻底了解了什么是AES算法

目录 导论 介绍加密算法的定义和基本概念 解释加密算法在现代通信和存储系统中的重要性...

ArrayDeque类常用方法

数据结构 ArrayDeque类是 双端队列的线性实现类。 具有以下特征&#xff1a; ArrayDeque是采用数组方式实现的双端队列。ArrayDeque的出队入队是通过头尾指针循环&#xff0c;利用数组实现的。ArrayDeque容量不足时是会扩容的&#xff0c;每次扩容容量增加一倍。ArrayDeque可…...

Leetcode.130 被围绕的区域

题目链接 Leetcode.130 被围绕的区域 mid 题目描述 给你一个 m x n的矩阵 board&#xff0c;由若干字符 X和 O&#xff0c;找到所有被 X围绕的区域&#xff0c;并将这些区域里所有的 O用 X填充。 示例 1&#xff1a; 输入&#xff1a;board [[“X”,“X”,“X”,“X”],[“X…...

MySQL-四大类日志

目录 &#x1f341;MySQL日志分为4大类 &#x1f341;错误日志 &#x1f343;修改系统配置 &#x1f341;二进制日志 &#x1f343;查看二进制日志 &#x1f343;删除二进制日志 &#x1f343;暂时停止二进制日志的功能 &#x1f341;事务日志(或称redo日志) &#x1f341;慢查…...

新加坡量子软件公司Horizon完成1810万美元A轮融资

​ &#xff08;图片来源&#xff1a;网络&#xff09; 近期&#xff0c;Horizon宣布已完成来自印度红杉资本、腾讯、SGInnovate、Pappas Capital和Expeditions Fund的1810万美元A轮投资。 Horizon是一家开发新一代编程工具的公司&#xff0c;总部位于新加坡&#xff0c;它致力…...

Spring学习(四):Scope的介绍及其失效解决方案

目录 一、spring当中有哪些scope 二、scope初始化与销毁演示 2.1 scope的初始化 2.2 scope的销毁 三、scope失效及其解决方案 3.1 scope失效演示 3.2 scope失效解决方案一&#xff1a;Lazy 3.3 scope失效解决方案二&#xff1a;设置proxyMode属性 3.4 scope失效解决…...

【学习集合--Set】

学习内容&#xff1a; Set集合概述Set集合实现—HashSet LinkedHashSet和TreeSet 学习产出&#xff1a; Set集合概述 Set中不存在值相同的节点。将两个对象e1.equals(e2),如果结果为true&#xff0c;或者&#xff08;e1e2&#xff09;内存地址相等&#xff0c;就认为两个对象…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...