所以,是的,我总结了所有我了解的内容并绘制了一个简单的图表。

如果我没看错,则servlet是CGI(通用网关接口),因为servelet是您可以访问服务器上资源的唯一方式。简而言之,这就是通用网关。

与Apache Tomcat一样,该容器负责捕获用户发送的请求并将其发送到servlet。

用户所感知的是一个称为Web应用程序的动态网页。

这是我到目前为止所学到的。

我学得对吗?

最佳答案

你说的差不多。以下是使用普通servlet时可以遵循的典型工作流程:

Servlet呈现页面

  • Servlet容器查找与请求URL
  • 匹配的servlet
  • 取决于请求的HTTP方法调用doGet()doPost()
  • Servlet进行一些处理
  • 响应(HTML,XML,JSON,图像...)直接在servlet中生成,并使用getOutputStream()getWriter()发送给客户端
    PrintWriter out = response.getWriter();
    out.println("Hello World");
    

  • JSP处理请求
  • Servlet容器找到JSP匹配请求。您必须了解,每个JSP之下都转换为一些内部servlet
  • 解释了此JSP。原始文本直接发送,scriptlet中的Java代码执行
  • JSP结束,请求已完成

  • Servlet转发到JSP
  • 与第一种情况下的1-3一起
  • Servlet选择JSP文件并将其转发到该JSP
  • 然后评估
  • JSP文件,它可以访问servlet传递的某些上下文(请求属性,会话)。
    RequestDispatcher dispatcher = getServletContext()
     .getRequestDispatcher("foo.jsp");
    dispatcher.forward(request, response);
    

  • 最后一种方案被认为是最佳方案,因为它没有将业务逻辑(Servlet)和表示(JSP)混合在一起。

    07-28 04:17
    查看更多