最优雅的方式来获得域名加www在JSP
我目前发送域名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://*.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