Tomcat
Tomcat
常见的JavaWeb服务器:
- Tomcat(Apache):当前应用最广的JavaWeb服务器
- Jetty:更轻量级、更灵活的servlet容器
- JBoss(Redhat红帽):支持JavaEE,应用比较广 EJB容器 -> SSH轻量级的框架代替
- GlassFish(Orcale):Oracle开发的JavaWeb服务器,应用不是很广
- Resin(Caucho):支持JavaEE,应用的越来越广
- Weblogic(Orcale):要钱的!支持JavaEE,适合大型项目
- Websphere(IBM):要钱的!支持JavaEE,适合大型项目
Tomcat目录结构
- bin: bin为binary的简写,主要放置系统的必备执行文件
- work:work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件
- conf:存放一些tomcat的配置文件
- lib:存放tomcat的主要jar包
- logs:日志文件存放目录
- temp:运行时产生的临时目录
- webapps:存放tomcat的具体项目
Tomcat项目结构*
Tomcat项目存放在webapps文件夹下,文件树结构一般如下
- app项目应用根目录
- 一些.html文件(也可以新建目录page用来存放)
- static:非必要目录,一般在此处放静态资源(css js img)
- css:存放css文件
- js:存放js文件
- img:存放图片
- WEB-INF:此目录下的资源是受保护的资源,不可以通过浏览器直接访问
- classes:字节码根路径,是java文件生成的字节码文件
- lib:项目中第三方jar包存放库,一般不会存放到tomcat的lib下,要做到项目隔离
- web.xml:每个项目都有自己的web.xml配置文件
Tomcat部署项目
除了将项目直接放在webapps文件夹下,还可以将项目放到其他位置,由tomcat中的配置文件指向app的实际磁盘路径
在配置文件中新建xml配置文件
conf -> Catalina -> localhost -> app.xml
<Context path="/app" docBase="D:\mywebapps\app">
这样配置就可以将D盘根目录下mywebapps中的app项目挂载到tomcat运行
Tomcat的管理项目
Tomcat中的manager和host-manager项目需要账户和密码来登录
可以通过tomcat-users.xml配置文件来配置用户名和密码
<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="XIAOBAI" password="XIAOBAI" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
IDEA关联Tomcat
- 建立Tomcat和idea的关联
- 使用idea创建一个Java web工程,在web工程中开发代码
- 使用idea将工程构建成一个可以发布的app
- 使用idea将构建好的app部署到tomcat中,启动运行
在idea设置中,构建、执行、部署 -> 应用程序服务器中添加Tomcat
新建项目后,项目结构 -> 模块 -> 依赖中添加Tomcat
双击shift -> 添加框架支持 -> 添加JavaWeb应用程序
注:如果不依赖添加Tomcat直接添加JavaWeb应用程序时,会直接添加到低版本的JavaWeb
注:使用idea引入js和css文件时,可尝试直接将文件拖入
工程文件
工程文件可以理解为项目在idea里面的样子,其内容大致为
- resources文件夹:用来放一些配置文件要将其标记为Resources根目录**
- src文件夹:通常用来存放java代码
- web文件夹:此文件夹是web项目的文件夹
- static文件夹:存放css,js,img等静态文件
- WEB-INF文件夹:存放web.xml,lib文件夹
- lib文件夹:web项目中的运行依赖要放在这,而不是在其他文件夹
注:在web工程导入jar包时,需要在WEB-INF路径下的lib文件夹内导入,并将lib文件夹添加为库(模块)
应用文件
工程文件在idea中 构建 -> 构建工件 后产生的out -> artifacts文件夹中
artifaces中文释义:工件
src与resources会被编译进classes文件夹中
由idea编译生成的应用文件会有自己的命名规则,但这并不重要,因为:
上下文路径(访问路径)与文件路经可以不相同!!!!!!!!!!
Tomcat运行时部署
添加tomcat本地为运行时部署 -> 在部署中将应用文件作为工件添加 -> 配置上下文路经
idea在运行Tomcat时调用的时Tomcat Catalina 日志,这个日志的默认字符集编码时UTF-8
通过修改配置文件,在idea的控制台中显示中文
tomcat的配置文件夹 -> logging.properties文件 ->修改Catalina的字符集为GBK
IDea实现Tomcat的原理
为了保证Tomcat的纯净,idea不会将文件放在Tomcat中运行,而会创建一个Tomcat的副本
但这个副本并不是Tomcat的完全复制,而是存放和部署项目相关的配置文件,让tomcat本体按照副本的配置文件运行
配置文件中,通过xml文件的配置信息来配置具体的项目地址