本章将对servet进行的背景、工作原理、学习servet的建议三个方面进行讲解。
一、servet产生背景
前一章我们说到了CGI存在的不足,其每次请求都需加载和运行一个CGI程序。若使用Java编写CGI程序,需要为每个请求都启动一个系统进程以及JVM,其执行效率大大降低。如果有办法取消这些开销,即只需要启动一个系统进程以及一个JVM映像,基于Java的CGI就能得到很好的改善。
Servlet就基于这种想法产生了,利用Java运行时可动态加载来处理新的请求,只需要启动一次服务器进程,只加载一次JVM,之后这个JVM再动态加载另外的类。其执行效率比传统CGI快得多了。Servlet的优点如下:
- 只需要启动一个系统进程以及加载一个JVM,大大降低系统开销。
- 如果多个请求需要做同样处理的时候,只需要加载一个类,这也大大降低开销。
- 所有动态加载的类可以实现对网络协议以及请求解码的代码共享,大大降低工作量。
- Servlet能够直接和Web服务器交互,而普通的CGI不能。Servlet还能够在各个序之间共享数据,使得数据库连接池之类的功能很容易实现。
- Servlet是与平台无关的,因为它们是用Java编写的。
二、servlet工作原理
servlet工作原理如下图所示:
这图这么清楚,就不用讲了吧,如果不明白的话可以私信我
三、建议
Servlet是一个很重要的java基础,就是CGI的优化,学习好Servlet很重要,JSP代码最终也会转为servlet代码。
Servlet:注重逻辑,在展示方面弱;所以适合逻辑处理,如果要展示可以用JSP
jsp:在展示方面有优势,处理逻辑弱,不建议在JSP中写逻辑代码
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。