Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据条件更改HttpServlet的服务器/主机_Java_Spring_Http - Fatal编程技术网

Java 如何根据条件更改HttpServlet的服务器/主机

Java 如何根据条件更改HttpServlet的服务器/主机,java,spring,http,Java,Spring,Http,通过使用HttpServlet request.getServerName(),我获得了当前服务器。是否有任何方法可以更改该服务器/主机。我的spring视图是一个jsp文件。 假设我的域名是 www.mydomain.com 我的spring视图是一些jsp文件。 现在,当我使用ModeAndView返回视图文件名时,如下所示: return new ModelAndView("somefile.jsp",responseJSON); 它使用我的somefile.jsp视图(即 www.m

通过使用HttpServlet request.getServerName(),我获得了当前服务器。是否有任何方法可以更改该服务器/主机。我的spring视图是一个jsp文件。 假设我的域名是

www.mydomain.com
我的spring视图是一些jsp文件。 现在,当我使用ModeAndView返回视图文件名时,如下所示:

return new ModelAndView("somefile.jsp",responseJSON);
它使用我的somefile.jsp视图(即

www.mydomain.com/some_results
但是我想根据某些条件更改服务器/主机。就像某些条件满足一样,我希望它在其他域/服务器中使用相同的somefile.jsp视图打开,即

www.someOtherDomain.com/some_results

基本上我想要的是在不重定向的情况下更改服务器。是否有办法或某种方法来更改服务器。我对网络方面的东西很陌生。

我想首先说,我认为你想要达到的目标通常是这样做的:。这种方法将在一台应用服务器上运行两个应用程序。应用服务器(例如Tomcat)将请求路由到适当的应用程序

尽管如此,我相信您想问的是,如何让一台服务器和一个应用程序响应两个域,并动态定制某些资源响应。如果这确实是你正在努力做的,那么你就有了正确的开始;现在,您只需要添加一些逻辑,使用您从请求中了解的信息来切换发送哪个响应

public String whereAmI(ServletRequest request) {

    String response;
    String theServer = request.getServerName();

    if (theServer.equalsIgnoreCase("localhost")) {
        response = "You are on your dev system";
    } else {
        response = "You are not on the dev system.";
    }

    return response;
}

注意:在JDK 7+中,如果需要的话,您也可以使用。首先,我想说,我认为您试图实现的目标通常是这样做的:。这种方法将在一台应用服务器上运行两个应用程序。应用服务器(例如Tomcat)将请求路由到适当的应用程序

尽管如此,我相信您想问的是,如何让一台服务器和一个应用程序响应两个域,并动态定制某些资源响应。如果这确实是你正在努力做的,那么你就有了正确的开始;现在,您只需要添加一些逻辑,使用您从请求中了解的信息来切换发送哪个响应

public String whereAmI(ServletRequest request) {

    String response;
    String theServer = request.getServerName();

    if (theServer.equalsIgnoreCase("localhost")) {
        response = "You are on your dev system";
    } else {
        response = "You are not on the dev system.";
    }

    return response;
}
注意:在JDK 7+中,如果需要,您也可以使用。

什么是“更改服务器而不重定向”?显示的域由浏览器要求的内容决定。如果浏览器请求某个域,您的响应可以在该域中给它一个页面,或者告诉它在另一个域中查找(重定向)。如果不是重定向语句,则响应不包含域名。您说的“不重定向更改服务器”是什么意思?显示的域由浏览器要求的内容决定。如果浏览器请求某个域,您的响应可以在该域中给它一个页面,或者告诉它在另一个域中查找(重定向)。如果不是重定向语句,则响应不包含域名。