繁体   English   中英

Java Servlet上下文根

[英]Java servlet context root

允许有多个条目作为servlet的上下文根吗?

例如,所有Sun示例都使用单个/catalog或类似的上下文根,但是也可以是/catalog/furniture吗?

Servlet 2.4规范在这里不是特定的。

Context Path :与该Servlet所属的ServletContext关联的路径前缀。 如果此上下文是植根于Web服务器URL名称空间基础的“默认”上下文,则此路径将为空字符串。 否则,如果上下文不是基于服务器名称空间的根,则路径以'/'字符开头,但不以'/'字符结尾。

我们不能将多个上下文根赋予Servlet。 但是我们可以在server.xml使用不同的名称动态更改为

<web-uri>Project.war</web-uri>
<context-root>myproj</context-root>

我们可以使用不同的名称配置项目上下文根,但是它应该是一个名称。

默认情况下,如果您使用请求对象作为req.getContextPath();来调用contextPath req.getContextPath(); 默认情况下,它将以slash(/)作为/myproj

有关将上下文根从静态更改为动态的更多信息, 请在此处进行检查

是。 这只是一个前缀。 它必须以“ /”开头,并且不能以“ /”结尾,除非它是“ /”。 允许使用内部斜线。

例如,所有Sun示例都使用单个“ / catalog”或类似名称作为上下文根,但是它也可以是“ / catalog / furniture”吗?

在您的web.xml中,是否建议将“ catalog / ”和“ catalog / furniture / ”映射到同一servlet? 重点是什么? 我认为servlet引擎会将这两个请求都路由到同一servlet。

如果您建议您有两个WAR文件,一个命名为catalog.war,另一个命名为别的东西,并且都需要将所有请求都路由到同一个servlet,那么您必须为此拥有.class文件。这两个WAR文件中的servlet或其他上下文的根servlet都必须编写,以便将所有请求重定向到catalog.war根servlet。

您能确切地知道自己的想法吗? 我认为您想要完成的工作有点令人困惑。

不可以。上下文根路径中不能包含斜线。

但是,使用上下文根可以实现与“ / catalog”相同的效果。 只需将所有静态和JSP文件放在WAR中的“ / furniture”下,并相应地映射Servlet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM