一.Servlet是什么?
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:
- 性能明显更好。
- Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
- Servlet 是独立于平台的,因为它们是用 Java 编写的。
- 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
- Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
我们平时说的Servlet看上去很神秘,其实本质很简单,就是一个Java接口interface而已。
二.相对于JSP有什么不同
JSP 是一种用于创建动态 HTML 网页和 Web 应用程序的技术。JSP 基本上是在 HTML 文件中嵌入 Java 代码,并且在解析为原始的 HTML 代码之前由 Web 服务器进行执行。JSP 页面通常会采用一个标签库,它提供了一组自定义的标签和特性,这些标签和特性可用于处理表单数据、读取数据库数据、显示服务器数据等。JSP 页面最终被转换为 Servlet 文件,并被编译成 class 文件并放置在 Web 服务器的类路径下。在客户端请求 JSP 页面时,Web 服务器会调用 Servlet 并执行 Java 代码,并将 Java 代码嵌入到 HTML 中。
Servlet 和 JSP 的主要区别在于功能和表示层。Servlet 通过 Java 代码来处理请求并生成响应,它只能生成动态 HTML。而 JSP 通过在 HTML 中嵌入 Java 代码来生成响应,可以在 JSP 页面和标签库中使用 Java 代码以及其他 Java Web 技术来生成动态 HTML 或 XML。
就开发难度和响应速度而言,Servlet 代码比 JSP 更难编写,但 Servlet 的响应速度更快。JSP 代码相对较易编写,并且可以轻松地生成 Web 应用程序的视图层,但是它的响应速度较慢,因为生成响应需要将 JSP 转换为 Servlet 并编译为 class 文件。
综上所述,Servlet 和 JSP 在 Java Web 技术中都有重要的作用,它们可以分别处理请求和视图,实现 Web 应用程序的动态性和高效性。通常情况下,Servlet 和 JSP 会结合使用来实现 Web 应用程序的开发。
三.Tomcat的使用
1.什么是Tomcat?
Tomcat是一个开源、免费、轻量级的[Web服务器] 因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat官网:(Apache Tomcat® - Welcome!)
2.什么是web服务器?
Web服务器是安装在服务端的一款软件,它对HTTP协议的操作进行了封装使得程序员不必直接对协议进行相关操作,让Web开发变得更加便捷。Web服务器的主要功能就是提供网上信息浏览服务,当我们将自己写的Web项目部署道Web服务器上,只要启动Web服务器,就能直接通过浏览器访问我们的Web项目了。
目前比较有名的Web服务器有:Apache、Nginx、ISS。
- 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。
四.Servlet架构
五.Servlet实现过程
最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
• 客户端发送请求至服务器端;
• 服务器将请求信息发送至 Servlet;
• Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
• 服务器将响应返回给客户端。
• Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于 Server 中,它们并不需要一个图形用户界面。从这个角度讲,Servlet 也被称为 FacelessObject。
• 一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。
六.Servlet实现方法
1、实现Servlet接口。
2、继承GenericServlet。
3、继承HttpServlet。
七.Servlet 生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
- Servlet 初始化后调用 init () 方法。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 销毁前调用 destroy() 方法。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。