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

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...