最优雅的方式来获得域名加www在JSP

最优雅的方式来获得域名加www在JSP

问题描述:

我目前发送域名GA:最优雅的方式来获得域名加www在JSP

_gaq.push(['_setDomainName', '${esapi:encodeForJavaScript(request.serverName)}']);

此输出:www.somedomain.com

什么是JSP中最优雅的解决方案删除www.,只剩下somedomain.com

+0

重复:[获取域名从给定的网址](http://*.com/questions/9607903/get-domain-name-from-given-url)。 – skuntsel 2013-04-30 16:06:28

+0

我已经投票结束了,我相信我的问题是重复的 – Neil 2013-05-01 08:49:50

+0

关于提取servlet中的值,大部分是的,这就是为什么我提出了初步评论。尽管如此,你的问题在使用JSTL/EL的过程中并不重复**。看看我的答案找出答案。 – skuntsel 2013-05-01 08:53:42

随着请求,进行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.','')} 
+0

请注意像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; 
+0

顺便说一下,'url'没有公开的可见性。而且,事实上,没有'url' proberty。你引用的方法是'HttpServletRequest#getRequestURL'。 – skuntsel 2013-04-30 16:12:41

+0

谢谢skuntsel。我有这样的说法,但不确定。只是想给OP一个提醒。还原为url – 2013-04-30 16:15:20