Java Web(七)__Tomcat(一)

JavaWeb 服务器

介绍

为什么需要?

  • Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
  • Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Web服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问。
  • JavaWeb:指用java技术来解决相关web互联网领域的技术的总称。即使用java语言实现浏览器可以访问的程序内容,称之为Java Web。
  • 学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件,然后在 web 服务器中开发相应的 web 资源;

常用的web服务器

  • 1)Tomcat
    •          官网:Apache Tomcat 8 (8.0.53) - Documentation Index
    •          由 Apache 组织提供的一种 Web 服务器,支持Servlet/JSP少量JavaEE规范。
    •         它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。        
    •         Tomcat实际是一个Java程序,可以处理来自浏览器的HTTP请求。
  •  2)Jboss
    •         是一个遵从  JavaEE  规范的、它支持所有的  JavaEE 规范(免费)。  
    •      
  •  3)GlassFish
    •         由  Oracle  公司开发的一款  JavaWeb 服务器,是一款商业服务器,达到产品级质量(应用很少)。     
    •    
  •  4)Resin
    •         CAUCHO  公司的产品,是一个非常流行的服务器,对  servlet  和  JSP 提供了良好的支持, 性能也比较优良(收费)。
  •  5)WebLogic【很猛】
    •         是  Oracle  公司的产品,支持  JavaEE  规范, 而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。
    •            

 使用步骤:

  • 准备静态资源
  • 下载安装Web服务器软件
  • 将静态资源部署到Web服务器上
  • 启动Web服务器使用浏览器访问对应的资源。

浏览器访问web服务器文件UML时序图


 web 工程发布目录结构

Servlet 规范规定,JavaWeb 应用必须采用固定的目录结构。

  •     即每种组件在 JavaWeb 应用中都有固定的存放目录,方便Servlet 容器顺利地找到 JavaWeb 应用的各个组件

以Tomcat为例:

|-- webapps                 
  |-- webapp                  # 站点根目录
    |-- META-INF              # META-INF 目录
    |   `-- MANIFEST.MF       # 配置清单文件
    |-- WEB-INF               # 一个受服务器保护的目录,浏览器无法直接访问到该目录的内容
    |   |-- classes           # class文件目录
    |   |   |-- *.class       # 程序需要的 class 文件
    |   |   `-- *.xml         # 程序需要的 xml 文件
    |   |-- lib               # 库文件夹
    |   |   `-- *.jar         # 程序需要的 jar 包
    |   `-- web.xml           # Web应用程序的部署描述文件。
                              #比如Servlet程序、Filter程序、Listener监听器、Session超时等
    |-- <userdir>             # 自定义的目录
    |-- <userfiles>           # 自定义的资源文件
  • webapps:在 webapps 下,每一个子目录都是一个独立的 Web 应用,子目录的名字(webapp)就是 Web 应用的名字,也被称为 Web 应用的上下文根,用户可以通过这个上下文根来访问 JavaWeb 应用中的资源。
  • webapp: 工程发布文件夹(web应用的根目录)。属于该web应用的所有资源都存放在该目录下。每个 war 包都可以视为 webapp 的压缩包。
  • META-INF:META-INF 目录用于存放工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生成。
  • WEB-INF:Java web应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
    • /WEB-INF/classes:存放程序所需要的所有.class 文件。
    • /WEB-INF/lib:存放程序所需要的所有 jar 文件。
    • /WEB-INF/web.xml:web 应用的部署配置文件。它是工程中最重要的配置文件,它描述了 servlet 和组成应用的其它组件,以及应用初始化参数、安全管理约束等。


Tomcat 

介绍

开源小型web服务器 ,完全免费,主要用于中小型web项目。

Tomcat 是由 Apache 开发的一个 Servlet 容器(又称web容器),支持Servlet/JSP少量JavaEE规范,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。

由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

JavaEE:

  • (Java Enterprise Edition,Java企业版)指Java企业级开发的技术规范总和。
  • 包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。

安装

Tomcat 安装程序包

  •     tar.gz文件是Linux操作系统下的安装版本;
  •     zip文件是Windows系统下的压缩版本;找到Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可
  •     Tomcat仍然是支持jsp 和 el;Apache Tomcat® - Which Version Do I Want?
  •     Tomcat 最好的小伙伴是 JSP+EL;

安装__软件版本

  •     下载后得到一个 exe 安装包(一般给客户使用) 
  •     在安装过程中会自动进行相关配置。比如找到 JDK 的位置、读取环境变量 JAVA_HOME 等。
  •     启动后以服务的方式运行,并且带有 GUI 管理工具(图形界面化的管理工具),用户可以很方便地通过界面进行管理和操作,非常友好。

注意:安装版需要配置的环境变量。

l JAVA_HOME:必须先配置JAVA_HOME,因为Tomcat启动需要使用JDK;

l CATALANA_HOME:如果是安装版,那么还需要配置这个变量,这个变量用来指定Tomcat的安装路径,例如:F:\apache-tomcat-7.0.42。

l 启动:进入%CATALANA_HOME%\bin目录,找到startup.bat,双击即可;

l 关闭:进入%CATALANA_HOME%\bin目录,找到shutdown.bat,双击即可;

startup.bat会调用catalina.bat,而catalina.bat会调用setclasspath.bat,setclasspath.bat会使用JAVA_HOME环境变量,所以我们必须在启动Tomcat之前把JAVA_HOME配置正确。

解压__软件版本

  •     一个 zip 压缩包,是免安装的,使用 WinRAR 等软件解压到任意目录后就可以直接使用
  •     当不再使用时,直接删除文件夹即可卸载
  •     没有 GUI 界面,只能通过使用各种配置文件和命令来操作和管理

注意,Tomcat解压或安装到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。


目录结构

说明:

  • 1)bin
    •     该目录下存放的是二进制可执行文件.
    •     如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;
    •    如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,shutdawn.bat用来停止Tomcat; 其中以.sh结尾的 Linux 命令; 以.bat结尾的 Windows 命令
    •     常用的 Tomcat 命令:
      •         startup.sh/startup.bat:用来启动 Tomcat;
      •         shutdown.sh/shutdown.bat:用来关闭 Tomcat;
      •         catalina.bat/ catalina.bat:用来设置 Tomcat 的内存
  • 2)conf
    • server.xml:配置整个服务器(tomcat)信息。例如设置域名、IP、端口号、默认加载的项目、请求编码等等。
    • tomcatusers.xml:用来配置和管理 Tomcat 的用户与权限,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面;
    • web.xml:部署描述符文件,这个文件中注册很多MIME类型,即文档类型。
      • 这些MIME类型是客户端与服务器之间说明文档类型的。MIME就是用来说明文档的内容是什么类型的!
      • 如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它。当然是在浏览器中显示这个html文件。
      • 如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。
  • 3)lib
    •         Tomcat 运行时需要的 jar 包所在的目录【该Tomcat下所有项目都可以共享】
  • 4)logs
    •    注意:清空该目录中的文件不会对 Tomcat 的运行带来影响
    •     在 Linux 系统中,控制台的输出日志在 catalina.out 文件中
    •     在 Windows 系统中,控制台的输出日志在 catalina.xxxx-xx-xx.log 文件中
    •    用来存放 Tomcat 在运行过程中产生的日志文件
  • 5)temp  :   存储临时产生的文件,即缓存。【可以在停止Tomcat后删除】
  • 6)webapps
    •     Tomcat 允许以文件夹、war 包、jar 包的形式发布应用
    •     当 Tomcat 启动时会去加载 webapps 目录下的应用程序;存放项目的文件,web 应用放置到此目录下浏览器可以直接访问
    •         web应用所在目录,即供外界访问的web资源的存放目录
    •         用来存放web程序(也就是通常所说的网站)
  • 7)work
    •         用来存放 Tomcat 在运行时的编译文件(也即 class 字节码文件)。例如 JSP 编译后的文件。
    •       清空 work 目录,然后重启 Tomcat,可以达到清除缓存的作用 
  • 8)LICENSE:许可证。

  • 9)NOTICE:说明文件


 启动

双击 bin  目录下的 startup.bat  文件

启动后,通过浏览器访问 http://localhost:8080能看到Apache Tomcat的内容就说明Tomcat已经启动成功。

注意:

启动的过程中,控制台有中文乱码,需要修改conf/logging.prooperties

java.util.logging.ConsoleHandler.encoding = UTF-8

注意,不要关闭黑窗口,关闭了,tomcat 服务就停止。

catalina 启动 Tomcat

  •     进入到 Tomcat  的 bin  目录下
  •     输入cmd ->回车
  •     执行命令:  catalina run

关闭

关闭有三种方式

  • 直接x掉运行窗口:强制关闭[不建议]
  • bin\shutdown.bat:正常关闭【有日志显示,推荐方式】
  • ctrl+c: 正常关闭 


配置

修改端口

Tomcat默认的端口是8080,要想修改Tomcat启动的端口号,需要修改 conf/server.xml


注: HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。


部署

方式1__常用:将  web  工程的目录拷贝到  Tomcat  的  webapps 目录下

部署步骤:

  • news Web工程(目前都是静态资源:html, 图片)
  • 将该news目录/文件夹  拷贝到  Tomcat 的webapps目录下
  • 浏览器输入: http://ip[域名]:port/news/子目录../文件名。例如http://localhost/news/hello.html,能看到内容就说明项目已经部署成功。

注意如果项目的文件夹里有index.html的文件,那么不需要详细的路径,直接到文件夹名即可。

方式2__推荐:通过配置文件来部署

部署步骤:

  • 1.在Tomcat  下的  conf  目录\Catalina\localhost\ 下配置文件
    •     比如hsp.xml,作为web应用的上下文路径,而不再理会 <Context>中配置的 path 路径,因此在配置的时候,可以不写 path。
  • 2.访问web工程: http://ip[域名]:port/hsp/index.html  就表示访问  D:\album 目录下的index.html 

说明:每个项目分开配置,tomcat 将以\conf\Catalina\localhost 目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会 <Context>中配置的 path 路径,因此在配置的时候,可以不写 path。 

方式3:

一般JavaWeb项目会被打包称war包,然后直接将war包放到Webapps目录下,Tomcat会自动解压缩war文件。

  • 将 目录拷贝到Tomcat的webapps目录下,然后在 bin 目录下执行 startup.bat 或 startup.sh 
  • Tomcat 会自动解压 webapps 目录下的 war 包,在webapps目录下就会多一个xxx目录
  • 通过浏览器访问http://localhost/xxx(xxx 是 war 包文件名),能看到内容就说明项目已经部署成功。

方式4:

①、打开tomcat下conf/server.xml,在<Host> </Host>标签之间输入项目配置信息

1

<Context path="/WebProject" docBase="D:/WebProject" reloadable="true" />

  path:浏览器访问时的路径名

  docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目

  reloadble:设定项目有改动时,tomcat是否重新加载该项目

  ②、双击 startup.bat,启动 tomcat 服务器,然后在浏览器输入访问的项目名称路径  

注意:如果你配置的 path="/xx",那么访问的时候就是这样:  

注意:但是从 tomcat5.0版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目。 


其他

webapps目录下/ROOT工程的访问

  •     在浏览器地址栏中输入访问地址如下: http://ip[域名]:port, 没有Web工程/应用名时,默认访问的是  ROOT 工程
  •     在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/  ,没有资源名,默认访问  index.jsp 页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目标检测7-DETR算法剖析与实现

文章目录 端到端目标检测框架DETR背景介绍模型结构模块解析数据模型结构 动手实现DETR 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 端到端目标检测框架DETR 背景介绍 DETR是Facebook AI的Nicolas Carion等于2020年05月提交的论文中提…

stm32——hal库学习笔记(定时器)

这里写目录标题 一、定时器概述&#xff08;了解&#xff09;1.1&#xff0c;软件定时原理1.2&#xff0c;定时器定时原理1.3&#xff0c;STM32定时器分类1.4&#xff0c;STM32定时器特性表1.5&#xff0c;STM32基本、通用、高级定时器的功能整体区别 二、基本定时器&#xff0…

消息队列-RabbitMQ:延迟队列、rabbitmq 插件方式实现延迟队列、整合SpringBoot

十六、延迟队列 1、延迟队列概念 延时队列内部是有序的&#xff0c;最重要的特性就体现在它的延时属性上&#xff0c;延时队列中的元素是希望在指定时间到了以后或之前取出和处理&#xff0c;简单来说&#xff0c;延时队列就是用来存放需要在指定时间被处理的元素的队列。 延…

揭秘离子交换工艺:解决地下水氟超标问题的绿色高效方案

在水处理领域&#xff0c;面对地下水氟化物超标的挑战&#xff0c;各类除氟工艺如活性氧化铝吸附法、电渗析法、反渗透法等各显其能。然而&#xff0c;在综合考虑处理效果、运行成本及环保效益后&#xff0c;离子交换工艺以其独特的技术优势和可持续性脱颖而出&#xff0c;成为…

Python环境下基于门控双注意力机制的滚动轴承剩余使用寿命RUL预测(Tensorflow模块)

机械设备的寿命是其从开始工作持续运行直至故障出现的整个时间段&#xff0c;以滚动轴承为例&#xff0c;其寿命为开始转动直到滚动体或是内外圈等元件出现首次出现故障前。目前主流的滚动轴承RUL预测分类方法包含两种&#xff1a;一是基于物理模型的RUL预测方法&#xff0c;二…

互联网高科技公司领导AI工业化,MatrixGo加速人工智能落地

作者&#xff1a;吴宁川 AI&#xff08;人工智能&#xff09;工业化与AI工程化正在引领人工智能的大趋势。AI工程化主要从企业CIO角度&#xff0c;着眼于在企业生产环境中规模化落地AI应用的工程化举措&#xff1b;而AI工业化则从AI供应商的角度&#xff0c;着眼于以规模化方式…

C++面试宝典第31题:有效的数独

题目 判断一个9 x 9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 1、数字1-9在每一行只能出现一次。 2、数字1-9在每一列只能出现一次。 3、数字1-9在每一个以粗实线分隔的3 x 3宫内只能出现一次。 下图是一个部分填充的有效的数独,数独部分空格内已…

FITC Palmitate Conjugate,FITC-棕榈酸酯缀合物,可以用标准 FITC 滤光片组进行成像

FITC Palmitate Conjugate&#xff0c;FITC-棕榈酸酯缀合物&#xff0c;可以用标准 FITC 滤光片组进行成像 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;FITC Palmitate Conjugate&#xff0c;FITC-棕榈酸酯缀合物&#xff0c;FITC 棕榈酸酯缀合物&#xff0c;F…

如何将cocos2d-x js打包部署到ios上 Mac M1系统

项目环境 cocos2d-x 3.13 xcode 12 mac m1 big sur 先找到你的项目 使用xcode软件打开上面这个文件 打开后应该是这个样子 执行编译运行就好了 可能会碰到的错误 在xcode11版本以上都会有这个错误&#xff0c;这是因为iOS11废弃了system。 将上面代码修改为 #if (CC_TARGE…

基于springboot+vue的高校学科竞赛系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

详细描述一下CrossOver2024版本的用途和作用?

当然可以。CrossOver 是一款由 CODE WEAVERS 公司开发的软件&#xff0c;其主要目标是在 macOS 和 Linux 系统上实现与 Windows 应用程序的兼容性。它不同于传统的虚拟机&#xff0c;如 Parallels 或 VMware&#xff0c;因为它并不在 macOS 上创建一个完整的 Windows 环境。相反…

机房预约系统(个人学习笔记黑马学习)

1、机房预约系统需求 1.1系统简介 学校现有几个规格不同的机房&#xff0c;由于使用时经常出现“撞车“现象,现开发一套机房预约系统&#xff0c;解决这一问题。 1.2身份简介 分别有三种身份使用该程序 学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教师创建账…

HarmonyOS开发技术全面分析

系统定义 HarmonyOS 是一款 “ 面向未来 ” 、面向全场景&#xff08;移动办公、运动健康、社交通信、媒体娱乐等&#xff09;的分布式操作系统。在传统的单设备系统能力的基础上&#xff0c;HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够…

网络安全“三保一评”深度解析

“没有网络安全就没有国家安全”。近几年&#xff0c;我国法律法规陆续发布实施&#xff0c;为承载我国国计民生的重要网络信息系统的安全提供了法律保障&#xff0c;正在实施的“3保1评”为我国重要网络信息系统的安全构筑了四道防线。 什么是“3保1评”&#xff1f; 等保、分…

LVGL8.1在Windows显示图片

1、将这些宏的值改成1&#xff0c;以便支持这些格式&#xff1a; 2、 这两个地方&#xff1a; LV_USE_FS_WIN32 设置符号&#xff0c;大小写字母、“\”、“”等符号都可以。 LV_FS_WIN32_PATH 为一个目录&#xff0c;图片放入此目录。 3、载入图片&#xff1a; “M:color.pn…

WebServer -- 定时器处理非活动连接(上)

目录 &#x1f34d;函数指针 &#x1f33c;基础知识 &#x1f419;整体概述 &#x1f382;基础API sigaction 结构体 sigaction() sigfillset() SIGALRM, SIGTERM 信号 alarm() socketpair() send() &#x1f4d5;信号通知流程 统一事件源 信号处理机制 &#x…

书生·浦语大模型实战营第二节课作业

使用 InternLM-Chat-7B 模型生成 300 字的小故事&#xff08;基础作业1&#xff09;。 熟悉 hugging face 下载功能&#xff0c;使用 huggingface_hub python 包&#xff0c;下载 InternLM-20B 的 config.json 文件到本地&#xff08;基础作业2&#xff09;。 下载过程 进阶…

【医学大模型】大模型 + 长期慢病的预测和管理

大模型 长期慢病的预测和管理 提出背景长期慢病框架慢性疾病检测框架如何实现多提示工程为什么使用多提示 慢性疾病管理框架个性化提示工程医学知识注入 提出背景 论文&#xff1a;https://arxiv.org/abs/2401.12988 慢性疾病是指那些需要长期管理和治疗的疾病&#xff0c;包…

# CCF系列会议截稿时间订阅

[晓理紫]CCF系列会议截稿时间订阅 VX关注{晓理紫}免费,每日更新最新CCF系列会议信息,如感兴趣,请转发给有需要的同学,谢谢支持!! VX关注{晓理紫}免费 NETYS (Non-CCF) The International Conference on Networked Systems Deadline: Fri Mar 8th 2024 19:59:00 CST (2…

navicat连接云服务器(宝塔)

下面介绍两种navicat连接云服务器&#xff08;宝塔&#xff09;的方法 一、通过ssh配置&#xff08;安全&#xff09; 打开navicat&#xff0c;配置新链接的SSH&#xff08;主机&#xff1a;填写公网IP&#xff0c;用户名和密码是服务器的账号密码&#xff09; 在常规填写数据…