分类:JavaEE技术原创文章
作者: Stephen
Servlet底层实现过程:
1.客户端(基于B/S架构的浏览器)先向服务器端(Server)发送请求(request)。
基本上分为三个步骤:
①DNS域名解析,得到服务器的IP地址以及端口号
②建立TCP/IP连接:这是底层实现,创建TCP/IP连接,进行通信
③通过HTTP/HTTPS协议进行组包,发送请求到特定的Servlet下的url进行通信。
2.第二部分就是服务器端响应(response)给客户端。
那么在此部分中重要的就是Servlet的操作。对于建立在不同操作系统上的服务器操作系统,叫做servlet容器。在servlet容器上有许多的web应用程序。
请求和响应完成后,就能够搭建起一次客户端与服务器端的交互。
Jsp文件的运行原理:
对于一个JSP文件来说,它本身并不具有执行的能力。
①首先在一个xxx.jsp文件需要执行的时候,由servlet容器将其翻译成为一个xxx_jsp.java文件;
②对于xxx_jsp.java文件来说它其实本质上是一个Servlet;
③Servlet容器在拿到这个.java文件后将会对其进行一次编译,将其编译成为一个xxx_jsp.class字节码文件
④此时生成的文件才能被Servlet容器进行执行操作,对于jsp文件来说,它只需要翻译和编译一次,再次访问的话并不需要再对其进行翻译和编译,只需要直接执行其.class字节码文件就可以。
注意:对于xxx_jsp.java文件来说,因为它继承自HttpJspBase这个类,而这个类又是继承自HttpServlet类,所以说它本质上其实是一个Servlet。
总结:对于jsp文件的运行和去生命周期来说,其实执行的并不是.jsp文件本身,其实执行的是.java程序。