tomcat中手动配置jsp页面的显示

本文介绍了如何在Tomcat服务器中手动配置JSP页面的显示路径。讲解了从Connector到Context的请求处理流程,并强调了Context配置中的docBase和path属性的作用,docBase指定项目物理路径,path定义虚拟路径。通过示例展示了如何通过reloadable属性实现运行时自动重载Web应用。建议在开发阶段启用reloadable以方便调试,但在部署时关闭以提高性能。注意避免在docBase中使用中文文件名,以免引发错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家都知道tomcat在接收到一个http请求的时候,会按照
Connector
Engine
Host
Context
.......
.......
.......

的顺序处理,我们可以在Sever.xml文件中定义多个context元素,而每一个context元素对应一个web应用,context元素有两个主要属性,path,docBase。path是当Host把http请求交给context时匹配的路径。比方说当host定义为localhost时:当我们在浏览器里输入 http://localhost/webapp时,
host会在context中寻找path为webapp的应用,如果找不到就交给默认的context去处理。而docBase是我们web应用的物理路径。
再说一下tomcat启动时,加载web应用的过程,首先tomcat扫描在server.xml中定义的host元素中的appBase路径下的所有物理目录,假如物理目录中含有WEB_INF文件夹或者web.xml文件,tomcat会认为这是一个web应用,然后会在内存里生成一个context元素,pah为这个物理文件夹的名字,docBase为它的物理路径,这时我们无须在server.xml文件中为这个web应用定义context,当我们输入 http://localhost/物理文件夹,就可以自动访问这个应用。扫描完appbase目录后,tomcat还会扫描
安装目录/server/conf/Catalina/你的host下的所有xml文件,若这些xml文件中定义了context,tomcat
也会把它视为一个web应用来加载,所以当你想在tomcat中发布一个web应用时,就有以下两种方法:
1. 把这个web应用(是一个文件夹或一个war文件)拷贝到appbBase下,无需再在任何地方写关于这个web应用的context,访问时按文件夹的名字(或war文件的名字)就可访问。
2. 把这个web应用放在除了appbase文件夹下的任何地方,然后写一个随便什么名字的xml文件(当然还是建议你写一个和应用同名的),放在安装目录/server/conf/Catalina/你的host下,xml文件中要定义这个应用的访问路径path和物理路径docbase,访问时按照path定义的路径来访问。

如果你不幸同时对一个web应用做到了以上两点,那么按任何一种方法都可以访问。

下面介绍一下Context子节点:这相当于配置一个虚拟路径,其中docBase属性指定项目的实际物理存储位置,并映射为上面所述的appbase目录下的一个文件,文件名由path指定。

reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

   在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

给个例子详细解释一下:

<Context path="/x" docBase="D:/myeclipse/workspace/struts2/WebRoot" reloadable="true"/>
项目实际存储在D:/myeclipse/workspace/struts2/WebRoot下,由解释器虚拟在appbase目录下x文件夹,这样的话就可以通过如下方式进行访问:

http://localhost:8080/x/index.jsp

如果index.jsp在WebRoot文件夹下的一个子文件夹(如aa)里,则就应该通过以下方式进行访问

http://localhost:8080/x/aa/index.jsp

另外docBase指定文件夹的位置时尽量避免使用中文名作为文件名,据说这样可以会导致错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值