网站首页 > 技术文章 正文
Scalers点评:这是成长会Java小组第6周学习笔记,Java小组是成长会内部专研Java的小组,目前仅面向成长会成员开放。
Tomcat目录和JavaWeb文件目录解析
Tomcat
版本
linux平台
windows平台
安装版本
绿色解压版(Deployer)
tomcat
的目录结构
/bin
:存放windows或Linux平台上启动和关闭Tomcat的脚本文件/conf
:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml/doc
:存放tomcat文档/server
:包含三个子目录:classes、lib和webapps/server/lib
:存放Tomcat服务器所需的各种JAR文件/server/webapps
:存放Tomcat自带的两个WEB应用admin应用和 manager应用/common/lib
:存放Tomcat服务器以及所有web应用都可以访问的jar文件/shared/lib
:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)/logs
:存放Tomcat执行时的日志文件/src
:存放Tomcat的源代码/webapps
:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录/work
:存放JSP编译后产生的class文件
tomcat
配置管理员账户和密码
打开tomcat-user.xml
(在tomcat
安装目录的conf
文件夹下),添加一个”manager
“的权限,并添加一个登陆名为admin
,登陆密码为admin
的用户,指定其权限为manager.修改后的tomcat-user.xml如下:
<?xmlversion='1.0' encoding='utf-8'?\> <tomcat-users\> <role rolename="tomcat"/\> <role rolename="role1"/\> <role rolename="manager"/\> <role rolename="admin"/\> <user username="tomcat" password="tomcat"roles="tomcat"/\> <user username="both" password="tomcat"roles="tomcat,role1"/\> <user username="role1" password="tomcat"roles="role1"/\> <user username="admin" password="admin"roles="manager"/\> </tomcat-users\>
tomcat
热部署的方法
静态部署
直接将web项目文件件拷贝到webapps目录中
Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如
Eclipse
等。也可以用 cmd 命令:jar -cvf mywar.war mywebwebapps这个默认的应用目录也是可以改变。打开
Tomcat
的conf目录下的server.xml
文件,找到下面内容:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"\>
将appBase修改即可。
在
server.xml
中指定在
Tomcat
的配置文件中,一个Web应用就是一个特定的Context
,可以通过在server.xml
中新建Context
里部署一个JSP应用程序。打开server.xml
文件,在Host标签内建一个Context
,内容如下。在
tomcat
中的conf
目录中,在server.xml
中的,\<Context path="/hello" docBase="D:workspacehelloWebRoot" debug="0"privileged="true"\> </Context\> 或者 <Context path="/myapp"reloadable="true" docBase="D:myapp"workDir="D:myappwork"/\> 或者 <Context path=“/myapp”docBase="D:workspacemyappWebRoot"/\>
说明:
path
是虚拟路径;
docBase
是应用程序的物理路径;
workDir
是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;
debug
则是设定debug level
,0
表示提供最少的信息,9
表示提供最多的信息
privileged
设置为true
的时候,才允许Tomcat
的Web
应用使用容器内的Servlet
reloadable
如果为true
,则tomcat
会自动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat
的情况下改变应用程序,实现热部署.
javaweb应用程序目录
WEB-ROOT : 根目录,一般虚拟目录会直接在此目录中设置
| —- WEB-INF 整个WEB中最安全的目录,无法直接访问,若访问,需要在web.xml中配置
|— classes 保存所有的 .class文件 所有的class都要放在 包中
|— lib 存放第三方的jar文件
|— web.xml WEB的部署描述符,启动一个 WEB 项目的时候, WEB容器会去读取它的配置文件web.xml
|—- css 存放所有的 .css文件
|—- js 存放所有的 *.js文件
|—- jsp 存放所有的jsp文件
|—- index.htm, index.jsp 欢迎页面
web.xml
定义的内容:
站台的名称和说明
针对环境参数(Context)做初始化工作
Servlet的名称和映射
Session的设定
Tag library的对应
.JSP网页设定
Mime Type处理
错误处理
利用JDNI取得站台资源
ScalersTalkID:scalerstalk
本微信公众号作者Scalers,游走在口译世界的IT从业者。微信公众号ScalersTalk,微博@Scalers,网站ScalersTalk.com,口译100小时训练计划群C 456036104
成长会是由Scalers发起的面向成长、实践行动,且凝聚了来自全球各地各行各业从业者的社群。有意入会者请和Scalers直接联系,我和其他会员会和你直接交流关于成长行动等各方面的经验教训。2016年成长会持续招募中,参见做能说会写的持续行动者:ScalersTalk成长会2016年会员计划介绍(2016.3更新)
猜你喜欢
- 2025-09-01 "类加载器"与"双亲委派机制"一网打尽
- 2025-09-01 http学习笔记1_http2基础教程
- 2025-09-01 Maven中常用标签和生命周期总结_maven pom标签
- 2025-09-01 深圳尚学堂:JSP 九大内置对象_jsp的内置对象及方法
- 2025-09-01 ActiveReports报表控件教程之如何使用JSP程序调用it
- 2025-09-01 java中的jar包,war包详解_java -jar war包
- 2025-09-01 tomcat常用的配置以及简单调优_tomcat主要配置
- 2025-09-01 JSP 是否被淘汰_jsp已经过时了吗
- 2025-09-01 java web服务器tomcat介绍_java web 服务器
- 2025-09-01 Struts2.3.32升级到2.5.26详细步骤(无敌版)
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)