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

标签 java jsp tomcat context.xml

我在看一本关于jsp的书(教科书),有一点看不懂。在书中,我们必须执行一个 jsp 页面,为此他们在 tomcat 5.5 的 servlet.xml 中设置了一个上下文:

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

并且该文件夹中的 jsp 可通过 http://localhost:8080/JSPTEST/filename.jsp

访问

我意识到的第一件事是 docBase 实际上是服务器上的一个 web 应用程序,因此无论是否设置此上下文,它仍然会在相同的 url 上运行,这有什么意义呢?

我安装了一个tomcat 7,并在conf/context.xml中添加了一个context

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- 上下文是描述网络容器内的网络应用程序的内容。在那里您可以定义用于访问网络应用程序的路径 path="JSPTEST" ,资源所在的位置(文档库/根目录)docBase = "G:\Tomcat5.5"\webapps\JSPTEST"和其他东西,例如用于访问数据库的 JNDI 资源。

因此您在 Tomcat 5 中所做的配置应按如下方式读取:

当我向服务器询问路径时 JSPTEST (女巫是你的网络应用程序的根目录)他查看了 docBase 中定义的物理目录。对应的上下文元素。一旦到达那里,服务器就会查找资源 filename.jsp流程(由于不是静态内容,需要先编译运行jsps生成html)服务给客户端。

以同样的方式,您可以读取为 Tomcat 7 所做的配置。

2- 能够检索资源 hello.jsp来自 Tomcat 7(或 wahtever 版本)的 url 应该是 http://localhost:8080/serverside/hello.jsp

内容物理存储目录的名称在访问内容的 url 中没有任何作用。是元素之间的组合pathdocbase .

回复2

将上下文元素放在 conf/context.xml 中, 它本身有一个 context作为根的元素是错误的,这就是导致您收到错误的原因(阅读时出现 xml 解析错误 conf/context.xml )。有两种方法可以使用 context.xml 配置 Web 应用程序,请查看 here .请仔细阅读第 1 点和第 2 点!

为了让事情正常进行:

要么

1- 放置一个名为 serverside.xml 的文件内容<Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" ></Context>conf/Catalina/localhost/

或者

2- 在 webapps 中创建一个目录名为 serverside并将您的jsps放入其中。在这种情况下,不需要 serversid/META-INF/context.xml文件,除非您想为网络应用程序定义其他资源,docBasepath元素可能不会出现在其中。

然后调用http://localhost:8080/serverside/hello.jsp

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

关于java - tomcat/conf/context.xml 中的上下文是做什么用的?虚拟主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710981/

相关文章:

security - 在身份验证期间将登录名和密码从客户端传递到服务器的安全方法是什么?

tomcat 8 从 tomcat 6 升级 - 类加载性能问题

java - Firebase数据库,查找现有值

java - 根据从另一个数据表中选择记录的复选框来填充数据表

java - jsp中如何获取报值(value)

java - 如何将下拉值存储到表中以便它显示所选值?

java - 是否可以在收到请求正文之前拦截请求

java - 用于删除 Java 应用程序当前文本字段中的条目的 SQL 命令

java - 为 swing 应用程序创建快捷方式的选项

java - 使用 Maven 修改 tomcat 部署的启动脚本