我目前發送域名GA:最優雅的方式來獲得域名加www在JSP
_gaq.push(['_setDomainName', '${esapi:encodeForJavaScript(request.serverName)}']);
此輸出:www.somedomain.com
什麼是JSP中最優雅的解決方案刪除www.
,只剩下somedomain.com
?
我目前發送域名GA:最優雅的方式來獲得域名加www在JSP
_gaq.push(['_setDomainName', '${esapi:encodeForJavaScript(request.serverName)}']);
此輸出:www.somedomain.com
什麼是JSP中最優雅的解決方案刪除www.
,只剩下somedomain.com
?
隨着請求,進行HttpServletRequest
您可以通過調用request.getRequestURI()
在結合使用與Get domain name from given url答案直接訪問URI。
此外,請務必查看HttpServletRequest
上的javadoc以瞭解其他有趣的方法,例如getServerName
。
至於如何可以讓你在JSP中需要什麼,而不是在servlet的/小腳本的問題,你需要使用JSTL fn:replace
功能是這樣的:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:replace(request.serverName, 'www.','')}
請注意像Nginx這樣的反向代理。通常他們不會觸摸服務器名稱,但他們絕對會更改原始IP和協議。你將不得不用特殊的'X-header'解決這個問題。 – 2013-04-30 19:38:07
URI uri = new URI(url);
String domain = uri.getHost();
return domain.startsWith("www.") ? domain.substring(4) : domain;
順便說一下,'url'沒有公開的可見性。而且,事實上,沒有'url' proberty。你引用的方法是'HttpServletRequest#getRequestURL'。 – skuntsel 2013-04-30 16:12:41
謝謝skuntsel。我有這樣的說法,但不確定。只是想給OP一個提醒。還原爲url – 2013-04-30 16:15:20
重複:[獲取域名從給定的網址](http://stackoverflow.com/questions/9607903/get-domain-name-from-given-url)。 – skuntsel 2013-04-30 16:06:28
我已經投票結束了,我相信我的問題是重複的 – Neil 2013-05-01 08:49:50
關於提取servlet中的值,大部分是的,這就是爲什麼我提出了初步評論。儘管如此,你的問題在使用JSTL/EL的過程中並不重複**。看看我的答案找出答案。 – skuntsel 2013-05-01 08:53:42