0

我对 JSP、Servlet 和 Tomcat 还是很陌生。如果我将多个域指向服务器的 IP 地址,是否可以根据请求的域以编程方式调用相关的 Servlet?

也许我可以在 web.xml 中做些什么?

抱歉我缺乏知识 - 我才刚刚开始:(

4

4 回答 4

2

HTTP 主机标头将告诉您客户端请求的域。

通过 Servlet API 获取它的方法是:

javax.servlet.http.HttpServletRequest.getHeader("host");
于 2012-05-10T13:36:06.800 回答
1

如果您希望同一个 Web 应用程序响应多个域,您可能会考虑使用调度程序 servlet 或调度程序过滤器。像 Struts 2 和 Spring MVC 这样的框架使用这些概念将请求路由到适当的 servlet。使用调度程序 servlet,您可以使用您想要的任何条件(在您的情况下为主机名)路由到适当的 servlet。

如果您希望让单独的 Web 应用程序响应不同的主机名和/或 IP 地址(通常称为虚拟主机),那么您可能需要查看Tomcat 虚拟主机。这通常也可以通过将 Apache 或 IIS 等 Web 服务器放在 Tomcat 前面来处理。

于 2012-05-10T13:08:57.370 回答
1

使用“RequestDispatcher”将请求重定向到正确的 servlet

于 2012-05-11T07:30:17.560 回答
-2

使用类似的东西:

public void doGet(HttpServletRequest req, HttpServletResponse resp)
 throws IOException {

        // Get client's IP address
        String ipAddress = req.getRemoteAddr(); // ip 

        // Get client's hostname
        String hostname = req.getRemoteHost(); // hostname
    } 
于 2012-05-10T12:44:51.360 回答