English 中文(简体)
servlet的根基
原标题:Root URl of the servlet
  • 时间:2009-10-27 06:52:50
  •  标签:
最佳回答
问题回答

这一职能有助于你从<代码>获取URL的基数。 HttpServletRequest:

  public static String getBaseUrl(HttpServletRequest request) {
    String scheme = request.getScheme() + "://";
    String serverName = request.getServerName();
    String serverPort = (request.getServerPort() == 80) ? "" : ":" + request.getServerPort();
    String contextPath = request.getContextPath();
    return scheme + serverName + serverPort + contextPath;
  }
public static String getBaseUrl(HttpServletRequest request) {
    String scheme = request.getScheme();
    String host = request.getServerName();
    int port = request.getServerPort();
    String contextPath = request.getContextPath();

    String baseUrl = scheme + "://" + host + ((("http".equals(scheme) && port == 80) || ("https".equals(scheme) && port == 443)) ? "" : ":" + port) + contextPath;
    return baseUrl;
}
  1. 在欢迎的档案中撰写文字,以抓住根本道路。 我假设指数.jsp是缺省案。 因此,将以下法典列入其中:

    <% RootContextUtil rootCtx = RootContextUtil.getInstance(); if( rootCtx.getRootURL()==null ){ String url = request.getRequestURL().toString(); String uri = request.getRequestURI(); String root = url.substring( 0, url.indexOf(uri) ); rootCtx.setRootURL( root ); } %>

  2. 在应用中直接使用这一变量,将这一数值称作

<条码> Url = BasicContextUtil.getInstance().getRootURL();

NOTE: 无需担心议定书/港口/排泄物。 希望有助于每个人。





相关问题