java - 根据url请求调用特定的servlet?

时间:2012-05-10 12:25:47

标签: java jsp tomcat servlets

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

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

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

4 个答案:

答案 0 :(得分:2)

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

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

javax.servlet.http.HttpServletRequest.getHeader("host");

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:-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
    }