以下index.html调用(below)servet的doPost以查看URL是否在拍卖中可用。一切都很好。但是,我正在寻找在页面重定向之后执行其他类的另外两种方法。我的问题是另外两个额外的方法需要很长时间才能完成,因此我们不能直接在response.sendRedirect之后放置它们,因为它们保留了初始响应。在doPost()中调用方法而不减慢结果页面
如何在发送重定向时立即发送重定向(如下图所示),然后调用其他两个需要在doPost中找到的相同String数据变量来操作的方法?
的index.html
<html>
<head>
<title>URL Auction Search Page</title>
</head>
<body>
<CENTER>
<FORM ACTION="/ResultServlet/Results" METHOD=GET>
<INPUT TYPE=TEXT NAME="st">
<INPUT TYPE=SUBMIT VALUE=Submit>
</FORM>
</CENTER>
</body>
</html>
的Servlet
@WebServlet("/Results")
public class Results extends HttpServlet {
private static final long serialVersionUID = 1L;
public static String str="";
private String businessLogic(String q){
try {
str = new compute.URL.GetAvailURI("https://www.registerdomains.com/auctionAPI/Key:a05u3***1F2r6Z&urlSearch="+q);
/*more boring number crunching */
return str;
}
/*
protected void doGet(HttpServletRequest request, HttpServletResponse response)
}
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Results r = new Results();
String st = request.getParameter("st");
String data = r.businessLogic(st);
response.sendRedirect("results/resultActionURL.html?st="+data);
//IDEALLY I WOULD LIKE TO CALL outsideMethod1(data) and outsideMethodTWO(data) HERE
//BUT IT TAKES TOO LONG. HOW CAN I RUN THEM W/O SLOWING DOWN THE RESPONSE
//(LIKE A ProcessBuilder call to a shell for example where there's almost a handoff)
}
}
客户是否需要outsideMethod1和outsideMethod2的结果,或者你只需要他们要执行doPost操作? –
其他两种方法产生两个其他结果页面,但我可以在客户端获得初始结果页面时处理这些页面。他们不必成为doPost的一部分,但我需要在doPost()中创建的字符串数据() – Chris
为什么不从客户端进行3个调用?最初的调用会返回数据并重定向到另一个页面。该页面将执行2次调用返回的数据来运行其他2个操作? –