JavaWeb-Tomcat

1. Web服务器

  • web服务器由硬件和软件组成:
    • 硬件:计算机系统
    • 软件:计算机上安装的服务器软件,安装后可以为web应用提供网络服务。
  • 常见的JavaWeb服务器:
    • Tomcat(Apache):应用最广泛的web服务器。
    • Jetty:更轻量级、更灵活的servlet容器。
    • Jboss(Redhat):支持JavaEE,应用较广。
    • GlassFish(Orcale):应用不是很广。
    • Resin(Caucho)
    • Weblogic(Orcale):付费,适合大型项目。
    • Websphere(IBM):付费,适合大型项目。

在这里插入图片描述
服务器硬件为JRE提供硬件支持,JRE为Tomcat提供运行环境,Tomcat为APP提供网络服务。
JRE就像操作系统,Tomcat就像浏览器,APP就像网页。网页无法直接在操作系统上显示,必须由浏览器解析显示,浏览器也无法直接在计算机硬件上运行,必须通过操作系统与底层交互。也就是说,APP需要通过Tomcat提供的服务完成相应功能,而Tomcat需要在JRE上才能运行。

2. Tomcat

2.1 简介

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

2.2 安装

Tomcat版本、servlet版本和JavaEE版本对照关系

Servlet VersionTomcat VersionJDK Version
6.111.0.x17 and later
6.010.1.x11 and later
5.010.0.x (superseded)8 and later
4.09.0.x8 and later
3.18.5.x7 and later
3.18.0.x (superseded)7 and later
3.07.0.x (archived)6 and later (7 and later for WebSocket)
  1. 根据对照关系,选择相应的Tomcat版本,去Tomcat官网https://tomcat.apache.org/下载对应的版本。我这里下载9.0版本的解压版。页面下方还有源码可以下载。在这里插入图片描述
  2. 解压Tomcat到非中文无空格的路径。在解压之前,需要先安装好JDK,并配置好JAVA_HOME变量,如果之前安装过JDK,那么环境变量应该已经配置好了。
    在这里插入图片描述3. 点击bin/startup.bat启动服务,启动后窗口不能关闭。在这里插入图片描述
    在这里插入图片描述
  3. 打开浏览器输入http://localhost:8080访问测试,如果出现如下页面,说明打开服务成功。在这里插入图片描述
  4. 关闭服务时,可以通过关闭第三步打开的窗口,还可以启动bin/shutdown.bat来关闭服务。在这里插入图片描述
  5. 打开服务时,dos窗口出现乱码的原因是dos窗口的编码是GBK,而打印信息的编码是utf-8,所以会出现乱码,可以通过修改conf/logging.properties文件中的java.util.logging.ConsoleHandler.encoding修改为GBK即可解决问题。在这里插入图片描述
    在这里插入图片描述

2.3 Tomcat目录及测试

  • D:\apache-tomcat-9.0.83称为Tomcat的安装目录或根目录。

  • bin目录中存放的是二进制可执行文件,解压版下的bin目录中有startup.bat和shutdown.bat等文件,安装版下的内容与解压版可能不同。要使bin目录中的命令可以在命令行中使用,需要配置环境变量。在环境变量中,添加CATALINA_HOME的变量,值为Tomcat的安装路径,然后path中添加路径 %CATALINA_HOME%\bin。但是在配置好环境变量后,如果安装其他版本的Tomcat,点击该版本bin目录下的startup.bat文件,运行的也会是环境变量中绑定目录下的startup.bat文件。
    在这里插入图片描述

  • conf目录中存放的是配置信息,其下有4个非常重要的文件:

    • server.xml:配置整个服务器的信息,例如端口号。默认的HTTP请求的端口号是8080.在这里插入图片描述

    • tomcat-users.xml:存储tomcat用户的文件,保存用户名和密码,以及用户的角色信息。可以按照该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了。在这里插入图片描述

    • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个HTML网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。在这里插入图片描述

    • context.xml:对所有应用的统一配置,通常我们不会去配置它。在这里插入图片描述

  • lib:Tomcat的类库,里面是jar文件。这个目录中的jar文件被Tomcat中的所有项目共享。在这里插入图片描述

  • logs:这个目录是用于存放日志文件的,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,也会记录在日志文件中。不需要的日志文件可以删除。在这里插入图片描述

  • temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除。

  • webapps:存放web项目的目录,其中每个文件夹都是一个项目。Tomcat有一些自带的项目,使用浏览器访问8080端口,访问的就是ROOT项目。在这里插入图片描述

  • work:与JSP有关。

  • LICENSE:许可证。

  • NOTICE:说明文件。

2.4 Web项目的标准结构

在这里插入图片描述

  • test_app:本应用的根目录。
    • static:非必要目录,约定俗称的名字,可以改成其他名字,用于存放静态资源如css、js和图片等。
    • WEB-INF:必要目录,并且名字不能更改,是受保护的资源目录,浏览器无法通过url直接访问该目录下的资源。在这里插入图片描述
      • classes:必要目录,用于存放字节码。如果项目中没有原码,则该目录不会出现。
      • lib:必要目录,存放此项目需要依赖的jar包。
      • web.xml:必要文件,项目的基本配置信息。较新版本中可以没有该文件。
    • index.html:访问该项目时默认的访问页面。在这里插入图片描述
    • 其他html文件:项目中的其他html页面。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2.5 Web项目的部署方式

  1. 将编译好的项目直接放在Tomcat的webapps目录下。
  2. 将编译好的项目打包成war包,再放在webapps目录下,tomcat启动后会自动解压war包部署项目。
  3. 将编译好的项目放在其他路径下,通过配置XML文件使得tomcat能够找到对应的项目。
    • 将项目直接放在D盘根目录下,然后在tomcat安装目录的conf\Catalina\localhost目录下新建一个与项目名相同的xml文件,并在文件中加上如下代码<Context path="自定义的项目上下文路径" docBase="项目在磁盘中的位置" />。项目上下文路径是在浏览器中需要输入的项目名称,需要与项目名称相同,如果不同则需要配置其他信息。在这里插入图片描述
      项目部署信息:在这里插入图片描述
      访问项目:在这里插入图片描述
    • 在浏览器输入的url与服务器资源的对应关系:在这里插入图片描述
    • 访问webapps下自带的项目:
      • docs项目:在这里插入图片描述
      • examples:在这里插入图片描述
      • host-manager和manager:访问这两个项目需要验证用户名和密码,可以在上面提到过的tomcat-users.xml文件中配置用户信息,加入以下代码即可:<role rolename="admin-gui" /> <role rolename="admin-script" /> <role rolename="manager-script" /> <role rolename="manager-jmx" /> <role rolename="manager-status" /> <user username="admin" password="123456" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />在这里插入图片描述
        在这里插入图片描述
      • ROOT:ROOT项目的上下文路径不为ROOT,直接访问8080端口访问的就是ROOT项目。在这里插入图片描述

2.6 IDEA中开发并部署运行Web项目

首先在IDEA中创建JavaWeb工程,然后将Java工程构建成可用于部署的app,再将app部署在tomcat上运行,这一系列操作都通过IDEA来完成。

2.6.1 IDEA关联本地Tomcat

  • 打开IDEA的设置页面,找到Build,Execution,Deployment下的Application Servers。
    在这里插入图片描述
  • 点击加号并且选择Tomcat Server。
    在这里插入图片描述
  • 选择Tomcat的安装目录。在这里插入图片描述
  • 点击apply后,IDEA与Tomcat关联成功。在这里插入图片描述

2.6.2 IDEA创建JavaWeb工程

  • 首先创建一个空项目,空项目下可以放多个module,也可以直接创建web工程。

  • 检查项目的SDK版本,语法版本,以及项目编译后的输出目录。在这里插入图片描述

  • 创建一个普通的Java项目。在这里插入图片描述

  • 为Java项目添加依赖。点击后选择Tomcat。在这里插入图片描述

  • 为Java项目添加framework support。在这里要注意版本的匹配问题,4.0版本可能不一定适用。在这里插入图片描述

  • 将index.jsp文件替换为index.html文件。在这里插入图片描述

  • 处理配置文件,在工程下建立一个resources目录,用于存放配置文件。都放在src目录下也可以,但是会很混乱。标记该目录为资源目录,否则该文件不参与编译。在这里插入图片描述

  • 在web目录的WEB-INF目录下建立lib目录,用于存放项目所需要的jar包依赖,并将lib目录添加为项目的依赖,环境级别选择module级别,降低对其他项目的影响。后续可以使用maven统一解决。在这里插入图片描述
    在这里插入图片描述

2.6.3 IDEA部署和运行web项目

  • 可以通过查看web目录有无特殊标记确定IDEA是否识别该项目为web项目,以及artifacts下,有没有对应的_war_exploded,如果没有,就点加号添加。在这里插入图片描述
    在这里插入图片描述
  • 在菜单栏的run选项下找到edit configuration,并点击加号添加本地Tomcat服务器。在这里插入图片描述
  • 然后在弹出页面的deployment选项中,通过加号添加要部署到Tomcat中的artifacts。application context就是应用上下文路径,也就是在url中需要填写的路径,这里可以和工程名不一样,也可以不写,但是要保留 ‘/’。在这里插入图片描述
  • after launch选项是指项目启动成功后,是否自动打开浏览器,并输入URL中的地址。点击apply完成设置。在这里插入图片描述
  • 运行项目。在这里插入图片描述

2.6.4 IDEA部署运行项目的原理

  • IDEA并没有将编译好的项目直接放入Tomcat的webapps目录下,而是根据关联的tomcat,创建了一个tomcat副本,然后将项目部署到了这个副本中。
  • IDEA的tomcat副本在用户文件夹下的AppData\Local\JetBrains\IntelliJIdea2023.2\tomcat中。在这里插入图片描述
  • IDEA的tomcat副本并不是一个完整的tomcat,副本里只准备了和当前项目相关的配置文件。
  • IDEA启动tomcat时,是让本地tomcat按照tomcat副本里的配置文件运行。
  • IDEA的tomcat副本中的conf\Catalina\localhost\xml文件中配置了项目的上下文路径和磁盘中的路径,所以tomcat是通过该文件获得项目的路径的。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java毕业设计源码—vue+SpringBoot图书借阅管理图书馆管理系统

主要技术 SpringBoot、Mybatis-Plus、MySQL、Vue3、ElementPlus等 主要功能 管理员模块&#xff1a;注册、登录、书籍管理、读者管理、借阅管理、借阅状态、修改个人信息、修改密码 读者模块&#xff1a;注册、登录、查询图书信息、借阅和归还图书、查看个人借阅记录、修改…

第二十一章

网络通信这一章 基本分为三个部分 网络基础概念和TCP,UDP这三个部分主要如下&#xff1a; 计算机网络实现了堕胎计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是再已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xf…

html刷题笔记

1 em 12 pt 16 px 100% source元素为audio、video、picture元素指定多个媒体文件 margin是用来隔开元素与元素的间距&#xff1b;padding是用来隔开元素与内容的间隔。 margin用于布局分开元素使元素与元素互不相干&#xff1b;padding用于元素与内容之间的间隔&#xff0c;…

Swift 中 User Defaults 的读取和写入

文章目录 前言介绍 User Defaults共享 User DefaultsUser Defaults 存储数据类型响应更改监控 User Defaults 更改覆盖User Defaults 设置考虑的替代方案Keychain 用于安全性用于跨平台的 CloudKit 结论 前言 User Defaults 是 Swift 应用程序存储在应用启动之间保持的首选项的…

我在Vscode学OpenCV 图像处理一(阈值处理、形态学操作【连通性,腐蚀和膨胀,开闭运算,礼帽和黑帽,内核】)

图像处理一 一、阈值处理1.1 OpenCV 提供了函数 cv2.threshold()和函数 cv2.adaptiveThreshold()&#xff0c;用于实现阈值处理1.1.1. cv2.threshold()&#xff1a;(1)在函数cv2.threshold()中&#xff0c;参数threshold_type用于指定阈值处理的方式。它有以下几种可选的阈值类…

应用程序中实现用户隐私合规和数据保护合规的处理方案及建议

随着移动互联网的发展&#xff0c;用户隐私合规和数据保护合规已经成为应用开发过程中不可忽视的重要环节。为了帮助开发者实现隐私和数据保护合规&#xff0c;本文将介绍一些处理方案和建议。 图片来源&#xff1a;应用程序中实现用户隐私合规和数据保护合规的处理方案及建议 …

Spring IOC,DI原理保姆级带你了解如,让面试官感到你的魅力

Spring IOC&#xff0c;DI原理保姆级带你了解如&#xff0c;让面试官感到你的魅力 一&#xff0c;什么是IOC 1.开始&#xff1a;Spring IoC容器的创建。 容器初始化&#xff1a;初始化IoC容器&#xff0c;包括加载配置文件、解析配置文件等。 加载XML/Java配置文件&#xff1…

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程 1 JDK安装部署1.1 JDK下载1.2 JDK配置 2 Jmeter安装部署2.1 Jmeter下载2.2 Jmeter安装2.3 Jmeter相关目录配置2.4 Jmeter启动配置2.5 检查并启动 3 Jmeter汉化3.1 临时修改3.2 永久修改 4 准备测…

快照读通过MVCC解决不可重复读当前读通过间隙锁解决幻读

简介 Multi-Version Concurrency Control 多版本并发控制&#xff0c;MVCC 是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff1b;在编程语言中实现事务内存。 *往期知识不做重点 事务具有4个特征,分别是原子性、一致性、隔…

毕设:《基于hive的音乐数据分析系统的设计与实现》

文章目录 环境启动一、爬取数据1.1、歌单信息1.2、每首歌前20条评论1.3、排行榜 二、搭建环境1.1、搭建JAVA1.2、配置hadoop1.3、配置Hadoop环境&#xff1a;YARN1.4、MYSQL1.5、HIVE(数据仓库)1.6、Sqoop&#xff08;关系数据库数据迁移&#xff09; 三、hadoop配置内存四、导…

用 PHP和html做一个简单的注册页面

用 PHP和html做一个简单的注册页面 index.html的设计 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

【Proteus】绘制简单的电路图

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;&#xff08;作者&#xff1a;顾晖等&#xff09;&#xff0c;p111 1.放置元件 以8086为例&#xff1a; 确保处于元件模式&#xff0c;点击对应的按钮&#xff1a; 在元件库中…

【离散数学】——期末刷题题库(等价关系与划分)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

邮政单号查询,邮政快递物流查询,并进行提前签收分析

批量查询邮政快递单号的物流信息&#xff0c;并将提前签收件分析筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&#xff0c…

JAVA全栈开发 MySql详解

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

商家门店小程序怎么做?门店小程序的优势和好处

生活服务类商家在当前数字化时代&#xff0c;越来越认识到门店小程序的重要性。门店小程序不仅为商家提供了一个在线展示的窗口&#xff0c;更为其打造了一个与消费者直接互动的平台。有了门店小程序&#xff0c;商家可以更加便捷地管理商品信息、订单流程&#xff0c;同时还能…

网络机房的功能有哪些?

网络机房的功能主要包括&#xff1a; 信息存储和管理&#xff1a;机房作为信息系统的核心&#xff0c;需要提供可靠的存储和管理能力&#xff0c;包括服务器、存储设备、备份系统等硬件设备&#xff0c;以及数据备份、数据迁移、容灾等管理方法和技术。网络连接和通信&#xf…

北京市经信局局长姜广智带队调研三六零 强调大模型应与行业结合

12月6日&#xff0c;北京市经济和信息化局局长姜广智、副局长王磊带队走访调研三六零集团&#xff0c;就共促城市级数字安全基础设施项目落地&#xff0c;打造引领行业发展标杆项目&#xff0c;推动大模型落地应用赋能产业、行业发展等话题进行交流。360集团创始人周鸿祎接待来…

【数据结构】二叉树---C语言版

二叉树 一、树的概念及结构1.树的概念2.树的相关概念3.树的表示4.树在实际中的应用 二、二叉树的概念及结构1.二叉树的概念2.满二叉树3.完全二叉树4.二叉树的性质5.二叉树的储存结构 三、二叉树的遍历1.前序遍历2.中序遍历3.后序遍历4.层序遍历 四、手撕二叉树&#xff08;务必…

Linux-代码实现通过system v共享内存实现的进程间的通信

一.makefile编写 .PHONY:all all:processa processbprocessa : processa.ccg -o $ $^ -g -stdc11 processb : processb.ccg -o $ $^ -g -stdc11.PHONY:clean clean:rm -rf processa processb 二.创建system v共享内存 1.系统调用接口 key&#xff1a;a.key是一个数值…