一尘不染

如何从jsp请求对象获取基本URL?

jsp

如何从jsp请求对象获取基本URL? http:// localhost:8080 / SOMETHING /
index.jsp
,但是我想要直到index.jsp的那部分,在jsp中怎么可能?


阅读 261

收藏
2020-06-08

共1个答案

一尘不染

因此,您想要 基本URL 吗?您可以在servlet中获得它,如下所示:

String url = request.getRequestURL().toString();
String baseURL = url.substring(0, url.length() - request.getRequestURI().length()) + request.getContextPath() + "/";
// ...

或在JSP中,如<base>,在JSTL的帮助下:

<%@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}" />
...
<head>
    <base href="${fn:substring(url, 0, fn:length(url) - fn:length(uri))}${req.contextPath}/" />
</head>

请注意,当它已经是默认端口号(例如80)时,该端口号将不包括java.net.URL在内。

2020-06-08