tomcat / conf / context.xml中的上下文是什么?虚拟主机?

时间:2012-07-29 16:41:21

标签: java jsp tomcat context.xml

我正在读一本关于jsp的书(学校书),还有一些我无法理解的东西。在本书中我们必须执行一个jsp页面,为此他们在tomcat 5.5中的servlet.xml中设置了一个上下文:

<Context path="JSPTEST" docBase = "G:\Tomcat5.5"\webapps\JSPTEST"></Context>

并在http://localhost:8080/JSPTEST/filename.jsp

访问该文件夹中的jsp

我意识到的第一件事是docBase实际上是服务器上的一个webapp,所以无论是否设置这个上下文,它仍然会在同一个url上运行,那么重点是什么?

我安装了一个tomcat 7并在conf/context.xml

中添加了一个上下文
Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" />

我把hello.jsp放在practical文件夹下,重新启动了tomcat,没有响应。服务器因this in catalina_log而关闭。对我来说,这是设置虚拟主机的另一种方式(我对如何在apache httpd下创建虚拟主机有一个好主意)所以现在有点困惑。

问题1 究竟是什么语境?我已经看过tomcat doc它没有响铃

问题2 如何在tomcat 7上运行“相同”的东西(当然不将文件放在tomcat中)?

1 个答案:

答案 0 :(得分:3)

1-上下文描述了Web容器中的webb-app。在那里,您可以定义用于访问web-app path="JSPTEST"的路径,资源所在的位置(文档库/根目录)docBase = "G:\Tomcat5.5"\webapps\JSPTEST"以及其他内容,例如用于访问数据库的JNDI资源。

所以你在Tomcat 5中做的配置如下:

当我向服务器询问路径JSPTEST(女巫是您的网络应用程序的根目录)时,他会查看相应上下文元素的docBase中定义的物理目录。一旦服务器看起来比资源filename.jsp进程(因为它不是静态内容,jsps首先需要编译并运行以生成html)并将其提供给客户端。

以同样的方式,您可以阅读为Tomcat 7制作的配置。

2-为了能够从Tomcat 7(或wahtever版本)检索资源hello.jsp,网址应为http://localhost:8080/serverside/hello.jsp

物理存储内容的目录名称在访问内容的URL中不起作用。它是元素pathdocbase之间的组合。

回复2

将上下文元素放在conf/context.xml中,它本身有一个context元素作为root是错误的,这就是导致你得到错误的原因(读取时{xml-parsing错误} { 1}})。有两种方法可以使用context.xml配置Web应用程序,看看here。仔细阅读第1点和第2点!

为了让事情顺利进行:

无论

1-在conf/context.xml

中放置名为serverside.xml且内容为<Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" ></Context>的文件

或者

2-在名为conf/Catalina/localhost/的{​​{1}}内创建一个目录,并将你的jsps放在其中。在这种情况下,不需要webapps文件,除非您要为网络应用定义其他资源,serversideserversid/META-INF/context.xml元素可能不会显示在其中。

然后拨打docBase

(1)有利于发展,(2)有利于生产。