当前位置: 首页 > 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;就认为两个对象…...

函数的参数

函数的默认实参 函数默认参数&#xff1a;函数的形参可以有默认值&#xff0c;如果我们自己传入参数&#xff0c;就用自己的数据&#xff0c;如果没有&#xff0c;那么用默认值 特别注意*&#xff1a; 如果某个位置有了默认参数&#xff0c;那么从这个位置往后&#xff0c;必…...

数组(八)-- LC[53][152] 最大子数组之和与乘积最大子数组

1 最大子数组之和 1.1 题目描述 题目链接&#xff1a;https://leetcode.cn/problems/maximum-subarray/ 1.2 求解思路 1. 暴力法 class Solution:def maxSubArray(self, nums: List[int]) -> int:length len(nums)max_sum float(-inf)for i in range(length):sum_sub_…...

docker2-zabbix

安装最新版docker yum remove docker docker-common docker-selinux docker-engine yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum list docker-ce --showduplicates | sort -r yum install docke…...

ctcdecode安装

1.下载 https://pan.baidu.com/s/1sZMbzzYtBoT35zHtDifVqQ &#xff0c;提取码&#xff1a;a05y。然后解压到ctcdecode文件夹中。 感谢 ctcdecode安装_huangneng0219的博客-CSDN博客 提供。 然后build.py文件中的compile_args [-O3, -DKENLM_MAX_ORDER6, -stdc11, -fPIC] …...

虚树学习小记

虚树是什么 虚树指在原树上选择需要的点和它们的LCALCALCA组成的一棵树。这样可以使在树DP时顶点数更少&#xff0c;从而减少时间复杂度。一般用于有多组数据且能保证所有数据访问的点的和不超过规定范围。 情景代入&#xff1a;SDOI2011消耗战 SDOI2011消耗战 题目大意 给…...

【C++】特殊类设计(单例模式)

文章目录一、设计模式概念二、设计一个不能被拷贝的类三、设计一个只能在堆上创建对象的类3.1 私有构造3.2 私有析构四、设计一个只能在栈上创建对象的类五、设计不能被继承的类六、单例模式❗️❗️6.1 饿汉模式6.2 懒汉模式6.2.1 线程安全问题6.2.2 新写法一、设计模式概念 …...

基于YOLOv5的水下海洋目标检测

摘要&#xff1a;水下海洋目标检测技术具有广泛的应用前景&#xff0c;可以用于海洋环境监测、海洋资源开发、海洋生物学研究等领域。本文提出了一种基于 YOLOv5 的水下海洋目标检测方法&#xff0c;使用数据增强方法进行了大量实验&#xff0c;并与其他方法进行了对比&#xf…...

磁盘这列(Raid)

RAID介绍 RAID技术通过把多个硬盘设备组合成一个容量更大的、安全性更好的磁盘阵列。把数据切割成许多区段后分别放在不同的物理磁盘上&#xff0c;然后利用分散读写技术来提升磁盘阵列整体的性能&#xff0c;同时把多个重要数据的副本同步到不同的物理设备上&#xff0c;从而…...

Oracle之PL/SQL存储过程与函数练习题(七)

1.创建一个存储过程&#xff0c;以员工号为参数&#xff0c;输出该员工的工资2.创建一个存储过程&#xff0c;以员工号为参数&#xff0c;修改该员工的工资。若该员工属于10号部门&#xff0c;则工资增加150&#xff1b;若属于20号部门&#xff0c;则工资增加200&#xff1b;若…...

C++入门教程||C++ 基本的输入输出||C++ 数据结构

C 基本的输入输出 C 基本的输入输出 C 标准库提供了一组丰富的输入/输出功能&#xff0c;我们将在后续的章节进行介绍。本章将讨论 C 编程中最基本和最常见的 I/O 操作。 C 的 I/O 发生在流中&#xff0c;流是字节序列。如果字节流是从设备&#xff08;如键盘、磁盘驱动器、…...