java – 根url的servlet

我想从一个servlet中获取我的Web应用程序的根URL。

如果我在“www.mydomain.com”中部署我的应用程序,我想获得像“http://www.mydomain.com”这样的根目录。

同样的事情,如果我部署在本地tomcat服务器与8080端口,它应该给http:// localhost:8080 / myapp

任何人都可以告诉我如何从servlet获取我的Web应用程序的根URL?

public class MyServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String rootURL="";
        //Code to get the URL where this servlet is deployed

    }
}
您确实意识到URL客户端看到(和/或类型到他的浏览器)和您的servlet部署的容器提供的URL可能会有很大的不同吗?

为了获得后者,您可以在HttpServletRequest上提供几种方法:

>您可以调用getScheme(),getServerName(),getServerPort()和getContextPath(),并使用适当的分隔符
>或者你可以调用getRequestURL()并从中删除getServletPath()和getPathInfo()。

翻译自:https://stackoverflow.com/questions/1629102/root-url-of-the-servlet

转载注明原文:java – 根url的servlet