问题标签 [contextpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Web 应用程序中处理上下文的任何巧妙方法?
在 Java 中,Web 应用程序被捆绑到 WAR 中。默认情况下,许多 servlet 容器将使用 WAR 名称作为应用程序的上下文名称。
因此 myapp.war 被部署到http://example.com/myapp。
问题是 webapp 认为它的“根”是“根”,或者只是“/”,而 HTML 会认为应用程序的根是“/myapp”。
Servlet API 和 JSP 具有帮助管理这一点的工具。例如,如果在 servlet 中执行:response.sendRedirect("/mypage.jsp"),则容器将添加上下文并创建 url:http ://example.com/myapp/mypage.jsp "。
但是,您不能使用 HTML 中的 IMG 标签来做到这一点。如果你这样做 <img src="/myimage.gif"/> 你可能会得到一个 404,因为你真正想要的是“/myapp/myimage.gif”。
许多框架也具有上下文感知的 JSP 标记,并且有不同的方法可以在 JSP 中生成正确的 URL(没有一种特别优雅)。
对于编码人员来说,跳出何时使用“应用程序相对”网址而不是绝对网址是一个棘手的问题。
最后,还有需要动态创建 URL 和 CSS 中嵌入 URL(用于背景图像等)的 Javascript 代码问题。
我很好奇其他人使用什么技术来缓解和解决这个问题。许多人只是简单地对它进行平底船和硬编码,无论是服务器根目录还是他们碰巧使用的任何上下文。我已经知道那个答案了,这不是我要找的。
你做什么工作?
java - Tomcat 无法识别我的上下文
我有一个 Web 应用程序并在打开的 SUSE 上使用 tomcat-5.5.27、eclipse 3.4。我从 Eclipse 中使用它(部署、运行、调试等)。我必须设置一些 JNDI 资源(数据源),Tomcat 会公开它们。这些资源现在在 \META-INF\context.xml 中定义。这工作正常。
但是,当我在 tomcat-5.5.27/conf/context.xml 或 tomcat-5.5.27/conf/Catalina/localhost/myapp.xml 中移动这个文件(context.xml)时,它不会加载定义在文件。
可能是什么问题?
我的 context.xml:
java - 如何在没有用户交互的情况下运行 servlet
我想执行一个 servlet 以从请求中获取服务器名称、服务器端口和 ContextPath。但我不想通过用户交互来调用 servlet。我想通过 Java 代码执行这个 servlet。我不确定这是否可能。请给我推荐。
java - Java servlet 上下文根
是否允许将多个条目作为 servlet 的上下文根?
例如,所有 Sun 示例都使用单个/catalog
或类似的东西作为上下文根,但它也可以/catalog/furniture
吗?
Servlet 2.4 规范在这里没有具体说明。
上下文路径:与
ServletContext
servlet 所属的路径前缀。如果此上下文是基于 Web 服务器 URL 名称空间的“默认”上下文,则此路径将是一个空字符串。否则,如果上下文不以服务器名称空间的根为根,则路径以“/”字符开头,但不以“/”字符结尾。
html - html 标签有什么建议?
我以前从未见过 在任何地方实际使用过的<base>
HTML 标记。它的使用是否存在陷阱,这意味着我应该避免它?
我从未注意到它在现代生产站点(或任何站点)上的使用这一事实使我对它持怀疑态度,尽管它似乎可能具有用于简化我站点上的链接的有用应用程序。
编辑
在使用基本标签几周后,我确实发现了使用基本标签的一些主要问题,这使得它比最初出现的时候更不受欢迎。本质上,对base 标记href='#topic'
及其下的更改与它们的默认行为非常不兼容,并且这种对默认行为的更改很容易使您无法控制的第三方库非常不可靠href=''
以意想不到的方式,因为它们在逻辑上将取决于默认行为。通常,这些变化是微妙的,并且在处理大型代码库时会导致不立即显而易见的问题。此后,我创建了一个答案,详细说明了我在下面遇到的问题。因此,在您承诺广泛部署 之前,请自行测试链接结果,这<base>
是我的新建议!
tomcat - Tomcat 和上下文路径
我在 Netbeans 中创建了一个 Web 应用程序,并将应用程序打包在一个名为“aa-bb.war”的文件中。当我在 netbeans 中运行项目时,我可以通过“localhost:8080/aa/bb”访问它。这一切都很好。
但是,将 .war 文件移动到标准的 tomcat 安装中会给我带来问题。当我将 .war 放入“webapp”目录时,它会分解为“webapp/aa-bb”,但我真正想要的是“webapp/aa/bb”(注意中间的“-”与“/” “aa”和“bb”)......所以bb应该在“aa”的子目录中。
我对此的理解是因为tomcat使用.war的文件名来创建爆炸的目录,所以由于战争被称为“aa-bb”,它显然使用了连字符。我的“context.xml”文件确实有正确的路径“aa/bb”,但我读过 Tomcat 5+ 将忽略 .war 中指定的上下文路径,而是根据文件名创建一个路径。
如何强制 tomcat 使用子目录(结果 url (“aa-bb”与“aa/bb”)似乎有一个小的差异,但它实际上是一个大问题,因为我不会得到现在进入(只是使事情复杂化)。
jboss - Jboss 中的上下文路径
目前在JBOSS中部署了一场战争。如果我想找出 Jboss 中 WAR 的上下文路径,我应该在哪里查看?服务器.xml?
java - 更改 Tomcat Web 应用程序上下文
我有一个 Web 应用程序,它是在根上下文(“/”)下设计并始终工作的。所以所有css
,js
和链接都以/
(例如/css/style.css
)开头。现在我需要将此 Web 应用程序移动到一些不同的上下文中(比方说/app1
)。使用item可以很容易地更改server.xml
配置文件并在新的上下文中启动 Web 应用程序。但是网页已损坏,因为所有链接现在都不正确。它们指向旧的根上下文而不是新的app1
[Context path=""]
/css/style.css
app1
语境。有没有什么神奇的方法可以解决这个问题,而无需通过前缀一些“上下文”变量来修复每个链接?使用的服务器 - Tomcat 5。应用程序是用 Java 编写的,并使用 JSP、Struts2、Spring 和 UrlRewrite 过滤器。更有趣的是听到与理论辩论的此类问题作斗争的真实经验。谢谢你。
PS 我看不到 UrlRewrite 过滤器如何帮助我,因为它只能在app1
上下文中工作。所以对链接的请求/css/style.css
不会被传递给它。
java - JBoss应用完整路径
有什么方法可以从 java 代码中获取应用程序的 url 地址,我的意思是完整的地址不仅来自 getContextPath() 的值。类似http://localhost:8080/etc
apache - Tomcat 5.5 - 使用相同路径的多个上下文
是否可以使用相同的路径设置多个上下文?例如: