Servlets doGet()或doPost()是否需要完全执行才能发送响应,还是在writer.print()上立即发送响应?
我已经为正在使用的web服务编写了回调。该服务向我的web应用发送请求,并要求我在3秒内发送响应 我从doPost()方法内部调用了两个方法。 我想做的是在其中一个方法执行后返回响应,然后执行第二个方法 这是我尝试做的一个例子-Servlets doGet()或doPost()是否需要完全执行才能发送响应,还是在writer.print()上立即发送响应?,servlets,httpresponse,Servlets,Httpresponse,我已经为正在使用的web服务编写了回调。该服务向我的web应用发送请求,并要求我在3秒内发送响应 我从doPost()方法内部调用了两个方法。 我想做的是在其中一个方法执行后返回响应,然后执行第二个方法 这是我尝试做的一个例子- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter writer = response.getWriter();
try {
this.doSomething();
writer.print("200 - OK");
writer.flush();
writer.close();
} catch (Exception e) {
writer.print("400 - Bad Request");
writer.flush();
writer.close();
}
this.doSomeThingElse();
}
允许这样做吗?还是在doPost()方法完全执行后发送响应
另外,servlet生成以处理请求的线程在什么情况下被阻塞?(即,它不会返回到线程池)允许调用
doSomethingElse()
。但是,由于您调用了writer.close()
,因此无法使用此方法(或更高版本)将某些数据发送到客户端,谢谢您的研究!您能告诉我servlet生成的用于处理请求的线程在什么情况下被阻塞吗?(即,它不会返回到线程池)对不起,我对servlet线程不是很熟悉。也许你能帮上忙。