我正在尝试生成一个servlet,在将详细信息输入数据库后发送重定向。我想要重定向到的URL位于不同的子域中,我在servlet中使用了response.sendRedirect(String URL)方法。 servlet托管在http://resources.example.com/。
目前,我正在使用它:(这是托管在http://resources.example.com的tomcat上的servlet)
private static String action;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
action = getAction(request.getRequestURI());
if(action.equals("register")){
try {
new User(request.getParameter("name"), request.getParameter("email")).commit();
response.sendRedirect("http://www.example.com/success.html");
} catch (ClassNotFoundException e) {
response.sendRedirect("http://www.example.com/error.html");
} catch (SQLException e) {
response.sendRedirect("http://www.example.com/error.html");
}
}
但不是重定向到http://www.example.com/error.html,而是重定向到http://resources.example.com/error.html。
看到我正在使用完全形成的URL,我希望这种重定向能够正常工作。有没有办法将重定向发送到http://www.example.com/error.html而不是http://resources.example.com。
我应该注意,当我在本地(在localhost)托管servlet并将重定向发送到http://www.example.com时,它似乎正常工作。
我正在使用Jetty,我已经使用Tomcat 7测试过,并且遇到了同样的问题。
感谢您的帮助,
马特