Servlet处理请求的流程(包括二次请求)

Servlet处理请求的流程:

    1) 客户端在浏览器的地址栏中输入一个请求的URL,按回车后就向服务器端发起一个http request(由浏览器生成)。

    2) 服务器端的Web Server首先接受到请求,并将请求转交给容器,容器会根据请求的URL去调用客户端要访问的Servlet。

    3) 容器会根据web.xml中对Servlet的描述去查找要访问的Servlet,若找到,将此Servlet

装载进虚拟机并实例化(第一次访问),然后调用Servlet实例中的service方法处理请求,并分配一个线程去执行。

注: 当第二次去访问同一个Servlet时,若容器判断到该Servlet已经被装载并实例化,

那么容器就不会再去创建一个新的Servlet实例,直接调用原来那个Servlet实例中的service方法

来处理请求。

    4) 若没有查找到,直接返回一个404的错误代码到客户端,表示访问的资源不存在。

转载于:https://www.cnblogs.com/jianmang/articles/4923659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在一个 `HttpServletRequest` 中多次发送请求数据,您需要保通过每个请求的输入流将数据发送到服务器,并在每个请求之间适当地处理和清理资源。下面是一个示例代码,演示了如何在 `HttpServletRequest` 中多次发送请求数据: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // 获取输入流 BufferedReader reader = request.getReader(); // 读取请求数据 StringBuilder requestData = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { requestData.append(line); } // 关闭输入流 reader.close(); // 处理第一次请求的数据 String firstRequestData = requestData.toString(); System.out.println("First request data: " + firstRequestData); // 在这里执行第一次请求处理逻辑 // 清理第一次请求的资源 // 构造第二次请求的数据 String secondRequestData = "Second request data"; // 设置响应数据 response.setContentType("text/plain"); response.getWriter().write("Response data"); // 获取输出流 OutputStream outputStream = response.getOutputStream(); // 发送第二次请求的数据 outputStream.write(secondRequestData.getBytes()); outputStream.flush(); outputStream.close(); // 在这里执行第二次请求处理逻辑 // 清理第二次请求的资源 } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们在 `doPost()` 方法处理每个请求。我们首先获取输入流,并使用 `BufferedReader` 逐行读取请求数据。然后,我们处理第一次请求的数据,执行相应的逻辑,并清理第一次请求的资源。 接下来,我们构造第二次请求的数据,并设置响应数据。我们获取输出流,并通过它发送第二次请求的数据。然后,我们执行第二次请求处理逻辑,并清理第二次请求的资源。 请根据您的实际需求修改示例代码,并根据您的业务逻辑来处理请求数据和资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值