History for Java Web
History Reference: https://www.cnblogs.com/whx7762/p/7723508.html
1 Generally Speaking
Servlet —— JSP ——框架
2 Servlet
Intro: https://www.runoob.com/servlet/servlet-intro.html
2.1 Servlet 执行以下主要任务
- 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
- 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
- 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
- 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
- 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
由上图可以看到,HTTP server负责监听和接收http请求,然后交给Servlet来处理逻辑部分的内容。通常在java工程中,我们可以使用Tomcat( Web应用服务器 )来做HTTP server。我的理解是,Tomcat相当于封装了一个普通的套接字绑定端口,然后开始监听,接受请求,产生通信socket的部分工作。那么,在它接受请求后是如何调用Servlet代码进行逻辑处理的呢?
2.2 Tomcat —— Web Server
《什么是http,什么是tomcat,什么是Servlet?》
CGI(Common Gatway Interface):外部应用程序(CGI程序)和WEB服务器之间的接口标准, 是在CGI程序和Web服务器之间传递信息的过程 是在CGI程序和Web服务器之间传递信息的过程 。
看了这篇标星的文章我才最终理解到Tomcat的所用功能,①它提供web server用于进行http通信,②面对不同请求,如果请求是静态资源则直接发送回去,如果是其它动态资源,则把请求发给web container进行处理,③web container中可以进行逻辑处理(比如请求数据库等等)
3 JSP
3.1 静态WEB和动态WEB
首先要明确 静态WEB、动态WEB 到底是什么?应该如何做区分呢?
动静态的划分标准与网页是否有动画无关,而与服务器传回的数据是否“因人而异”有关。