目录
2. 使用 IDEA 创建一个 JavaWEB 工程 在 WEB 工程中开发代码
4. 使用 IDEA 将构建好的 App 部署到 Tomcat 中,启动运行
WEB 服务器
Web 服务器通常由硬件和软件共同构成
我们通过 Java 代码写的工程,需要构建成 APP,APP 需要放在服务器中,才可以运行,服务器存放在对应的操作系统中~
Tomcat 就是一款服务器软件,专门运行 WEB 应用软件
常见的 JavaWeb 服务器:
Tomcat(Apache):当前应用最广的 JavaWeb 服务器
Jetty:轻量级,灵活的 servlet 容器
JBoss(Redhat 红帽):支持JavaEE 应用比较广
GlassFish(Oracle):Oracle 开发的 JavaWeb服务器
Resin(Caucho):支持 JavaEE,应用越来越广
Weblogic(Oracle):支持 JavaEE,适合大型项目
Websphere(IBM):支持 JavaEE,适合大型项目
Tomcat 服务器
Tomcat 是 Apache 软件基金会的 Jakarta 项目中的一个核心项目~
最新的 Servlet 和 JSP 规范,总能在 Tomcat 中得到体现,Tomcat 技术先进,性能稳定,而且免费,成为目前比较流行的 Web 应用服务器
安装
版本号对应如下:
下载
Tomcat 官方网站:Apache Tomcat® - Welcome!
我们这里选择 Tomcat10 下载
这里我们下载的就是 tomcat 的程序包的压缩包(下面的 Souce Code Distributions 是源码包~)
下载了压缩包后,注意先不要解压~
配置 JAVA_HOME
因为 tomcat 安装后,会自动匹配我们的 JAVA_HOME,所以我们要提前将 JAVA_HOME 变量配置完毕~
先找到我们下载的 jdk 的位置,我的 jdk 是在默认路径下的,不同程序员的 jdk 具体位置就因人而异了~
打开我的电脑的属性,找到环境变量
如果之前没有配置过,就新建一个,然后变量名,严格写成 JAVA_HOME,变量值就填 jdk 的地址即可~(注意,这里没有 bin)
然后还需要在 PATH 中手动引入 bin
这样,我们的 JAVA_HOME 的环境变量就配置成功了,我们可以在命令控制台验证一下~
输入 java -version 回车,如果能正常跳出 jdk 的版本,我们就成功啦~
如果还是未成功的话,以我经验,可能是下载了多个 jdk 的版本,好像 jdk 后面的版本,会默认在用户变量中创建一个环境变量,造成污染~~(我们这里使用 jdk17 的版本~)
解压
然后就可以把刚刚的压缩包进行解压了~
注意:解压的位置,千万不要乱解压,要找一个自己找的到的位置解压!而且,解压的路径不要有中文,空格,特殊符号等等...
这是我解压在我的电脑上的 Tomcat:
设置
我们可以点进 bin 文件夹中找到 startup.bat 启动 Tomcat(startup 是启动 Tomcat,shutdown 是关闭 Tomcat)
跳转出这些日志之后,不要关闭该日志框,打开浏览器,输入:http://localhost:8080
此时就代表我们的 Tomcat 正式安装成功啦~
关闭 Tomcat,可以直接关闭刚刚的日志窗口,或者运行 shutdown 来关闭~
有些程序员可能按照步骤做,刚刚弹出的日志窗口是乱码,这个是因为编码的原因,我们来解决:
打开 conf/logging.properties(打开方式选用记事本)
打开后,我们刚刚是控制台显示乱码,就找到控制台对应的英文 Console 位置处~
把后面的 UTF-8 改成 GBK,然后保存退出
此时重新再 startup 打开,就不会显示乱码啦~
补充:
我们上面的方式是找到具体的 Tomcat 文件夹,然后startup 打开的,我们也可以在命令台直接输入 startup.bat 打开 Tomcat,不过,此时就仍需要配置环境变量了
方法与前面配置 Java 的 jdk 相同,如下图所示。
当然,上面这个配不配置都可以,仅作为补充~
Tomcat 目录及测试
我们刚刚手动设置的 Tomcat 的解压路径,在我的电脑上是:E:\apache-tomcat-10.1.39-windows-x64\apache-tomcat-10.1.39。这个目录下面直接包含 Tomcat 的 bin 目录,conf 目录等等,我们就称这个为 Tomcat 的安装目录或根目录。
bin
该目录下面存放的是二进制可执行文件。解压版本的 Tomcat,那么有 startup.bat 和 shutdown.bat文件,startup.bat 用来启动 Tomcat,但需要先 JAVA_HOME 环境才能启动,shutdown.bat用来 停止 Tomcat;
conf
这是一个非常重要的目录,里面有四个最为重要的文件:
1. server.xml:配置整个服务器信息。例如可以修改端口号。默认的 HTTP 请求的端口号是 8080
2. tomcat-users.xml:存储 tomcat 用户的文件,这里保存的是 tomcat 的用户名及密码,以及用户的角色信息。我们可以按照文件中的注释信息,来添加一个 tomcat 用户。
用记事本打开,然后自己手动添加我红框中的内容:
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username = "admin"
password = "admin"
roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"
/>
保存后,关闭 Tomcat,然后重新打开,就可以在 Tomcat 主页中进入 Tomcat Manager 页面了(即,在浏览器输入:http://localhost:8080/manager)会让你输入用户名和密码,我们设置的都是 admin 然后就可以进入这个管理页面啦~
3. web.xml:部署描述符文件,这个文件中,主要是一些我们部署在 Tomcat 上的项目的公共配置~
4. context.xml:对所有应用的统一配置,通常我们不会再进行修改。
lib
Tomcat 的类库,里面都是 jar 文件。如果我们需要添加 Tomcat 依赖的 jar 文件,就可以把他放到这个目录中
log
这个目录都是一些日志文件,记录了 Tomcat 启动和关闭的信息
temp
存放的都是 Tomcat 的临时文件,这个目录下的东西,可以在停止 Tomcat 后删除掉
webapps
存放 web 项目的目录,其中的每一个文件夹就是一个项目。如果这个目录中已经存在了目录,是 Tomcat 自带的项目。其中我们刚刚已经尝试了 manager 目录中的页面。还有就算,ROOT 是一个特殊的目录,当我们在浏览器输入:http://127.0.0.1:8080,即没有给出项目目录的时候,对应的就是 ROOT 项目
输入 http://localhost:8080/examples,就进入了 Tomcat 自带的示例项目中。其中 example 就是项目名,即文件夹的名字。
work
运行时生成的文件,最终运行的文件都在这里。通过 webapps 中的项目生成的!当客户端访问一个 JSP 文件,Tomcat 会通过 JSP 生成 Java 文件,然后再编译 Java 文件成 class 文件,生成的 java 和 class 文件都会存放在这个目录下
LICENSE
许可证
NOTICE
说明文件
WEB 项目的标准结构
我们可以观察 webapps 文件夹中 Tomcat 自带的项目 example,发现一个 WEB 项目的标准结构如下:
如上图,我们就可以构建一个基本的项目结构了~
补充:url 的组成部分和项目中资源的对应关系:
注意的是,项目的上下文访问路径,可以和部署目录不同,但需要一些配置文件,我们目前先保持一致
WEB 项目部署的方式
方式一:直接将编译好的项目,放在 tomcat 的 webapps 目录下面,就像上面一样~
方式二:将编译好的项目,打包称 war 包放在 webapps 目录,tomcat 启动后会自动解压 war 包(其实和方式一差不多,后面是通过 maven 完成)
方式三:可以把项目放在非 webapps 的其他目录下面,在 tomcat 中通过配置文件指向 app 的实际磁盘路径
1. 我们可以在磁盘中的任意地方准备一个 app
2. 在 tomcat 的 conf 中的 Catalina 的 localhost 位置中,准备一个 app-test.xml 文件(这个 xml 文件和 我们项目的名字可以不一致,但就需要更多的配置了,此处我们先不更多配置,直接命名一致)
3. 启动 tomcat 正常进行访问,测试成功
在 IDEA 中开发并部署运行 WEB 项目
1. 建立 Tomcat 与 IDEA 的关联
2. 使用 IDEA 创建一个 JavaWEB 工程 在 WEB 工程中开发代码
3. 使用 IDEA 将工程构建成一个可以发布的 App
4. 使用 IDEA 将构建好的 App 部署到 Tomcat 中,启动运行~
1. 建立 Tomcat 与 IDEA 的关联
打开 IDEA,找到 settings 设置
填我们 Tomcat 的安装目录,注意是 bin 的上一层目录
会自动为 WEB 项目导入两个 jar 包,在我们开发 WEB 组件时候需要
Apply 和 OK 即可~
2. 使用 IDEA 创建一个 JavaWEB 工程 在 WEB 工程中开发代码
我们可以先在磁盘中,自定义一个文件夹,web-all,然后在这个空项目下,同时存在多个 modules,不用后续来回切换之前的项目~
在项目设置中,设置 jdk 17 语言等级也改为 17,在下面的 output 中检查一下,路径是否有 out 如果没有,需要手动补充
Apply 和 OK 即可
然后就可以创建一个 JavaWEB 项目了
首先,我们要先创建一个普通的 Java 项目:
我们首先要在 web-all 里面创建一个 Module,这个 Module 是子模块的意思,我们这里当子项目用,就是在 web-all 里面的各个子项目~
创建完毕后,我们还要为项目添加组件
但添加的时候,发现版本号是 4.0,比较低,最起码是 5,所有我们先不添加项目组件。
先要为当前项目增加一个 Tomcat 依赖,作为开发的组件。
Apply 和 OK 后,此时再添加组件
这时的版本就是 5.0 了~ 注意勾选 Create web.xml
然后我们的 web01 里面就会出现 web 文件夹,我们可以把 index.jsp 删除,jsp 的内容我们现在不使用了~
现在,这就是 一个 JavaWEB 工程啦~
我们可以在里面放一些东西啦:
处理配置文件:
我们可以在工程下,创建 resources 目录,专门用于存放配置相关的文件(都放在 src 下也可以,但,单独存放可以更有效的管理文件~)
但是,resources 中的内容,并不会直接与 src 共同编译的, 需要我们将其标记为资源目录
标记完成后,显示效果如下:
处理依赖 jar 包的问题:
1. 在 WEB-INF 下创建 lib 目录
2. 必须在 WEB-INF 下,且目录名字必须叫 lib
3. 复制 jar 文件进入 lib 目录
4. 将 lib 目录添加为当前项目的依赖
注意:这里环境级别推荐选为 Module 级别,降低对其他项目的影响,name 可以空着不写~
到此,我们的 WEB 工程,就构建的差不多了~
3. 使用 IDEA 将工程构建成一个可以发布的 App
在构建成一个可以发布的 APP 之前,我们还是要提前检查一下,我们的 JavaWEB 工程,是否符合了我们前面所提到的,必备结构~
然后,就可以进行构建了:
构建完成后,就会出现一个 out 文件夹
我们的 web01 中的内容,就都是我们 JavaWEB 的工程,在out/artifacts 中的 web01_war_wxploded 就是我们要发布的 APP了~
其中,在 out/artifacts 中的 web01_war_exploded 是 IDEA 自动为我们补充的名字
4. 使用 IDEA 将构建好的 App 部署到 Tomcat 中,启动运行
在运行配置界面点击 + :
添加本地 Tomcat 服务器
注意是 Tomcat Server 下的 Local 还有一个是 Tomcat EE 的 Local 注意区分~
选择 Deployment 通过 + 添加要部署到 Tomcat 中的 artifact
Application context 中是默认的项目上下文路径,也就输 url 中需要输入的路径,这里我们就可以自定义了,但是要保留 /
这里我改成了 /web01
Server 中的 URL 也发生了变化:
Apply 和 OK 即可~
然后,点击绿色箭头,正常运行模式即可~ (小虫子是 debug 模式~)
可以查看日志
因为我们没有设置默认打开的页面 index.html,所以打开的页面是 404
但我们可以手动在 url 后面补充我们的两个 html 页面,回车就可以正常打开啦~
补充:
如果在查看日志的时候,仍然出现了乱码,我们还是可以回到 tomcat 的文件夹下的 conf 目录下的 logging.properties 文件 改成 GBK 即可~
IDEA 部署并且运行项目的原理:
我们刚刚在 IDEA 成功部署运行了一个项目。
但是,我们前面讲了两种 Tomcat 部署项目的方法,检查两种方法的目录,都没有找到我们刚刚成功部署过的那个项目,但我们又实实际际的运行成功了,这是为什么呢?
IDEA 用 tomcat 本体,用副本的配置文件来运行,既不会污染 tomcat 软件,产生的副本容量也较小~
这个地址 就算 Tomcat 副本的地址,Tomcat 副本,仅仅存放 和部署项目有关的配置文件 仅 400KB Tomcat 本体 20MB
总结: