我正在编写一个servlet(特别是Scalatra).在servlet中,我在每个页面都包含的目录中有许多链接.我希望这些链接与应用程序库相关.如果我使用诸如“/ foo”之类的链接,当从根(localhost:8080 /)提供servlet时,一切正常,但是如果我从Jetty / Tomcat和其他servlet(localhost:8080 / servlet)一起提供它servlet之外的点.
对这个问题有什么好处?
解决方法:
您需要在链接URL前面添加一个域相对路径,包括HttpServletRequest#getContextPath()
获取的上下文路径.我不做Scala,所以我不能给出一个Scala目标的答案,但是这里你是如何做到的JSP使图片声音:
<a href="${pageContext.request.contextpath}/servlet">link</a>
当前上下文路径是/ foo时,上面的结果将以HTML格式结束
<a href="/foo/servlet">link</a>
或者,如果您在servlet类中使用Java以编程方式生成HTML(这实际上是一种不好的做法,但除此之外):
out.println("<a href=\"" + request.getcontextpath() + "/servlet\">link</a>");
另一种方法是设置< base> HTML中的标记,以便所有相对链接都与它相关,另请参阅此答案以获取更多详细信息:Browser can’t access/find relative resources like CSS, images and links when calling a Servlet which forwards to a JSP
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。