希望明天能出太阳
或者如果没有太阳的话
希望我能变得更加阳光一点
—— 24.9.25
一、常见的JavaWeb服务器
Web服务器通常由硬件和软件共同构成
硬件:电脑,提供服务供其他客户电脑访问
软件:电脑上安装的服务器软件,安装后能提供服务给网络中的其他计算机,将本地文件映射成一个虚构的url地址供网路中的其他人访问
二、Tomcat
1.TomCat简介
Tomcat是当前应用最广泛的JavaWeb服务器
Tomcat是Apache软件基金会(Apache Software foundation)的Jakarta项目中的一个核心项目,由Apache、sun 和其他一些公司及个人共同开发而成。最新的serviet和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
TomCat——JavaWeb服务器
2.TomCat下载安装
Tomcat下载官网:http://tomcat.apache.org/
TomCat10与TomCat8、TomCat9代码不能互通
TomCat10需要的JDK版本是jdk11以后的版本
点击starup启动tomcat
启动后在浏览器输入:localhost:8080,显示如下页面:
关闭时点击shutdown文件将其关闭
或将CMD窗口直接关闭,就可以将TomCat关闭
在显示登陆文件时,出现中文乱码问题:应修改TomCat配置文件Conf,修改字符集格式,以解决中文乱码问题
寻找文件中的ConsoleHandler项,修改字符编码
3.TomCat目录及测试
bin目录
该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat10.exe、tomcat10w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA HOME环境变量才能启动,shutdown.bat用来停止Tomcat;
conf目录
是一个非常非常要的目录,这个目录下有四个最为重要的文件:
① server.xml:配置整个服务器信息。例如修改端口、端口号。默认HTTP请求的端口号是:8080
② tomcat-users.xml:管理类型账户的账号密码,存储tomCat用户的文件,这里保存的是tomCat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomCat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;
③ web.xml:部署项目的公共特征,部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的
④ context.xml:对所有应用的统一配置,通常我们不会去配置它。
⑤ logging.properties:控制打印日志行为和打印日志特征(控制乱码问题)
⑤ Catalina:Catalina引擎相关配置,配置项目时放一些配置信息
lib目录
Tomcat的类库,里面是一大堆jar文件。如果需要添加TomCat 依赖的jar文件,可以它到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar包所有项目都可以共享之,但这样你的应用放到其他TomCat下时就不能再共享这个目录下的jar包 了,所以建议只把TomCat需要的jar包放到这个目录下;
logs目录
logs:这个目录中都是文件,记录了Tomcat 启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中,存放日志文件(不经常使用可以手动清除)。
temp目录
temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除
⭐Webapps目录
webapps:存放web项目的目录,其中每个文件夹都是一个项目,如果这个目录下已经存在了目录 ,那么都是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中访问:http://127.0.0. 1.8080,没有给出项目目录时,对应的就是ROOT项目:http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。
启动webapps中TomCat自带的web项目:
① 启动TomCat
② 逐层输入对应项目的url
③ 打开项目
上面地址栏的examples叫做项目的上下文路径,也叫做项目的访问路径
下面的examples叫做项目的部署目录
work目录
work:与JSP技术有关,运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的,可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下,
LICENSE 许可证目录。
NOTICE 说明文件目录。
4.Web项目的标准架构
部署项目的第一种方式
WEB-INF目录下的资源是受保护的资源,是不可以通过浏览器直接访问的资源
将图片、CSS文件、JS文件放在一个static文件夹下
WEB-INF目录:字节码根路径文件classes、项目中的第三方jar包依赖存放路径lib、当前项目的配置文件web.xml
标准的app目录结构
部署项目的第二种方式
将编译好的项目打成war包放在webapps目录下,tomcat启动后会自动解压war包
部署项目的第三种方式
可以将项目放在非webapps的其他目录下,部署conf文件夹中,在tomcat中通过配置文件指向app的实际磁盘路径
默认访问文件夹中的index.html资源
root目录中的资源访问不需要添加上下文
manager文件和host-manager文件访问时需要提供账号和密码,账号和密码在conf文件夹下的tomcat-users下设置
设置后按照用户登录,即可以访问manager文件和host-manager文件
5.IDEA中开发并部署运行WEB项目
① IDEA关联本地TomCat
② 使用idea创建一个JavaWeb工程,在Web工程中开发代码
推荐先创建一个空项目,这样可以在一个空项目下同时存在多个modules,不用后续氺回切换之前的项目,当然也可以忽路此步直接创建web项目
首先在web项目中指定SDK
创建一个web项目模块
添加TomCat10的依赖
在help中点击Find Action 搜索Add Framework Support
版本号不够,提升版本号
给项目添加TomCat10依赖
添加web资源组件,版本号提升
多出一个web资源组件,此时是一个Java Web项目
将index.jsp文件删除
在web文件夹中添加html文件
在html文件中引入js文件和css文件
把lib文件夹中的jar包添加到当前文件夹中的依赖
③ 使用idea将工程构建成一个可以发布的app
APP文件
④ 使用idea将构建好的app部署到tomCat中,启动运行
点击Edit Configurations,将项目部署在TomCat上运行
将项目拖拽上来
修改路径名为web01
设置server配置
启动TomCat打开网页
自启动打开网页
6.idea部署并运行项目的原理
idea有接进将编好的项目入Tomcat的webapps中;
idea根据关联的Tomcat,创建了一个Tomcat副本,将项目部署到了这个副本中;
idea的Tomcat副本在C:\用户\前用户\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中;
idea的Tomcat本不是一个完整的tomcat,副本里只是准备了和当前项目相关的配置文件而已;
idea启动Tomcat时,是副本Tomcat程序按照Tomcat副本的配置文件运行;
idea的Tomcat副本部署项目的模式是通过conf/Catalina/localhost/*.xml配置文件的形式实现项目部署的;