什么是 Java Servlet?

2022-08-31 04:46:11

我读了很多文章来理解Java servlet,但我没有成功。

你能不能简要介绍一下Java servlet(用简单的语言)。什么是 servlet?有哪些优势?

我无法理解服务器端编程语言(PHP,ASP)和servlet之间的区别。


答案 1

servlet 只是一个响应特定类型网络请求的类 - 最常见的是 HTTP 请求。基本上,servlet通常用于实现Web应用程序 - 但是也有各种框架在servlets(例如Struts)之上运行,以提供比servlet提供的“这是一个HTTP请求,写入此HTTP响应”级别更高级别的抽象。

Servlet 在处理网络端的 servlet 容器中运行(例如,解析 HTTP 请求、连接处理等)。最著名的开源 servlet 容器之一是 Tomcat


答案 2

servlet的核心是java类;它可以处理HTTP请求。通常,通过网络读取HTTP请求和响应的内部细节由Tomcat等容器负责。这样做是为了作为服务器端开发人员,您可以专注于如何处理HTTP请求和响应,而不必费心处理处理网络等的代码。容器将负责将整个内容包装在HTTP响应对象中并将其发送到客户端(例如浏览器)之类的事情。

现在要问的下一个合乎逻辑的问题是,谁来决定容器应该做什么?答案是;在Java世界中,至少它是由规范引导的(注意我没有使用“受控”这个词)。例如,Servlet 规范(参见资源 2)规定了 Servlet 必须能够执行的操作。因此,如果你能为规范编写一个实现,恭喜你刚刚创建了一个容器(从技术上讲,像Tomcat这样的容器也实现了其他规范,并做了一些棘手的事情,比如自定义类加载器等,但你明白了)。

假设你有一个容器,你的servlet现在是java类,它们的生命周期将由容器维护,但它们对传入HTTP请求的反应将由你决定。您可以通过在预定义的方法(如 init()、doGet()、doPost() 等中编写您想要执行的操作来做到这一点。查看资源 3。

这是一个有趣的练习给你。创建一个简单的 servlet,就像在 Resource 3 中一样,并在它的构造函数方法(是的,你可以有一个 servlet 的构造函数)、init()、doGet()、doPost() 方法中编写一些 System.out.println() 语句,并在 tomcat 中运行 servlet。请参阅控制台日志和 tomcat 日志。

希望这有帮助,快乐学习。

资源

  1. 看看这里HTTP servlet的样子(Tomcat示例)。

  2. 服务备件规范

  3. 简单的 Servlet 示例

  4. 开始在线阅读书籍/ PDF 它还为您提供整本书的下载。也许这会有所帮助。如果您刚刚开始使用 servlet,那么最好将材料与 servlet API 一起阅读。这是一个较慢的学习过程,但在弄清楚基础知识方面更有帮助。


推荐