HttpServletrequest#getContextPath()(因此不能
getServletPath()像以前建议的那样使用)。您可以通过在JSP中通过检索
${pageContext.request.contextPath}。
<p>The context path is: ${pageContext.request.contextPath}.</p>
如果您打算将其用于JSP页面中的所有相对路径(这会使这个问题更有意义),那么可以使用HTML
<base>标记:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><c:set var="req" value="${pageContext.request}" /><c:set var="url">${req.requestURL}</c:set><c:set var="uri" value="${req.requestURI}" /><!doctype html><html lang="en"> <head> <title>SO question 2204870</title> <base href="${fn:substring(url, 0, fn:length(url) - fn:length(uri))}${req.contextPath}/"> <script src="js/global.js"></script> <link rel="stylesheet" href="css/global.css"> </head> <body> <ul> <li><a href="home.jsp">Home</a></li> <li><a href="faq.jsp">FAQ</a></li> <li><a href="contact.jsp">Contact</a></li> </ul> </body></html>
页面中的所有链接将自动相对于,
<base>因此您无需在所有位置复制粘贴上下文路径。请注意,当相对链接以开头时
/,它们将不再相对于相对
<base>,而是相对于域根。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)