在浏览器(IE和Firefox)中,如果您有相关链接且您的网址为:http://domain/somepath/lastfolder/
相对链接变为:
http://domain/somepath/lastfolder/linkdocname.html
如果网址为http://domain/somepath/lastdoc,则相对链接变为:
http://domain/somepath/linkdocname.html
http://domain/somepath/lastfolder/变为:
http://domain/somepath/lastfolder/linkdocname.html
有没有办法在不编写特殊函数的情况下使用JSP复制它?
我尝试使用以下网址获取基本网址:
baseURL = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort()+ request.getRequestURI();
但是这让我得到了requst URI的完整路径,并且如果它不以“/”结尾,则不会丢弃最后一位然后如果我尝试:
baseURL = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort() + request.getContextPath();
它为我提供了Web容器文件夹的所有内容,但之后没有任何文件夹。
答案 0 :(得分:0)
在您上次的字符串构建尝试中,即使您指定了“:”
,也会丢失端口号试试这个:
new URL(request.getScheme(), request.getServerName(),
request.getServerPort(), request.getContextPath());
您也可以自己构建字符串,并在需要时删除默认端口:
public String getBaseUrl(HttpServletRequest request) {
if (( request.getServerPort() == 80 ) || ( request.getServerPort() == 443 )) {
return request.getScheme() + "://" + request.getServerName() +
request.getContextPath();
} else {
return request.getScheme() + "://" + request.getServerName() + ":" +
request.getServerPort() + request.getContextPath();
}
}