客户端使用 url 对象连续向 servlet 发送两条消息
我的 servlet 在收到来自客户端的第一个请求时:
//1.
ObjectInputStream in=new ObjectInputStream(req.getInputStream());
String r=(String) in.readObject();
in.close();
ObjectOutputStream writer = new ObjectOutputStream(resp.getOutputStream());
writer.writeObject(pk);
writer.close();
//ON receiving second request:
//2.
ObjectInputStream in1=new ObjectInputStream(req.getInputStream());
String s=(String) in1.readObject();
in1.close();
OutputStreamWriter writer1 = new OutputStreamWriter(resp.getOutputStream());
writer1.write(reverseStr);
writer1.close();
但在两个请求中,只有 1. 正在执行。为什么?
My servlet on receiving first request from client:
//1.
ObjectInputStream in=new ObjectInputStream(req.getInputStream());
String r=(String) in.readObject();
in.close();
ObjectOutputStream writer = new ObjectOutputStream(resp.getOutputStream());
writer.writeObject(pk);
writer.close();
//ON receiving second request:
//2.
ObjectInputStream in1=new ObjectInputStream(req.getInputStream());
String s=(String) in1.readObject();
in1.close();
OutputStreamWriter writer1 = new OutputStreamWriter(resp.getOutputStream());
writer1.write(reverseStr);
writer1.close();
But on both request only 1. is getting executed. why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

我问这个问题并没有真正研究servlet。每次向 servlet 发出请求时都会调用 servlet 的方法(doPost()、doGet() 等)。只有 init() 方法被初始化或只执行一次。
因此,每次调用上述 servlet 时,它都会从 #line1 开始执行。
I asked this question without actually studying servlets. A servlet's method(doPost(),doGet() etc) are each called time a request is made to the servlet. Only the init() method is initialized or executed only once.
So each time a call is made to the above servlet, it starts executing from #line1.