什么是Java Servlet?

我读了很多文章来理解java servlet但是我没有成功 .

能否请您简单介绍一下java servlet(用简单的语言) . 喜欢什么是servlet?有什么好处?所有这一切 .

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

回答(11)

3 years ago

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

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

3 years ago

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

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

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

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

希望这会有所帮助,快乐学习 .

Resources

  • 看看HTTP servlet看起来如何here(Tomcat示例) .

  • Servlet Specification .

  • Simple Servlet example .

  • 开始阅读book online / PDF它还为您提供了整本书的下载 . 可能这会有所帮助 . 如果你刚刚开始使用servlet可能是一个较慢的学习过程,但在更清楚地了解基础知识方面会更有帮助 .

3 years ago

除了以上所述,只是指出了流血的明显......

对于许多人来说这是非常明显的,但对于曾经编写过只运行然后结束的应用程序的人来说:servlet花费大部分时间闲逛无所事事......等待发送内容,请求,然后回复它 . 出于这个原因,servlet有一个生命周期:它被初始化然后等待,响应抛出的任何东西,然后被破坏 . 这意味着它必须由其他东西(一个框架)创建(后来被销毁),它在自己的线程或进程中运行,除非被要求,否则它什么都不做 . 而且,通过某种方式或其他方式,必须实现一种机制,由此该“实体”可以“监听”请求 .

我建议阅读线程,进程和套接字会对此有所启发:它与基本的“hello world”应用程序的运行方式完全不同 .

可以说,“服务器”或“servlet”这个词有点过分 . 更合理,更简单的名称可能是“响应者” .

3 years ago

如果您是初学者,我认为本教程可能会提供有关 What Servlet is ... 的基本概念

一些有 Value 的观点来自给定的链接 .

Servlet技术用于创建驻留在服务器端的Web应用程序并生成动态Web页面 .

Servlet can be described in many ways, depending on the context.

  • Servlet是一种技术,即用于创建Web应用程序 .

  • Servlet是一种API,它提供许多接口和类,包括文档 .

  • Servlet是必须实现的用于创建任何servlet的接口 .

  • Servlet是一个扩展服务器功能并响应传入请求的类 . 它可以响应任何类型的请求 .

  • Servlet是一个Web组件,部署在服务器上以创建动态Web页面 . 参考:Here .

3 years ago

Servlet是服务器端技术用于在Web应用程序中创建 dynamic web page . 实际上,servlet是一个api,它由一组类和接口组成,它们具有一些功能 . 当我们使用Servlet API时,我们可以使用servlet类和接口的预定义功能 .

Lifecycle of Servlet:

Web容器维护servlet实例的生命周期 .

1 . Servlet class loaded

2 . Servlet instance created

3 . init() method is invoked

4 . service() method invoked

5 . destroy() method invoked

当客户端(浏览器)提出请求时,web容器检查servlet是否正在运行,如果是,则调用service()方法并将响应提供给浏览器 .

当servlet没有运行时,web容器遵循以下步骤 .

1. classloader load the servlet class

2. Instantiates the servlet

3. Initializes the servlet

4.invoke the service() method

在服务请求web-container等待特定时间之后,在这个时候如果请求到来那么它只调用service()方法,否则它调用destroy()方法..

3 years ago

Java Servlet是服务器端Java程序模块,用于处理和响应客户需求并实现servlet接口 . 它有助于提高Web服务器的实用性,可忽略不计的开销,维护和支持 .

servlet作为客户和服务器之间的中介 . 随着servlet模块在服务器上运行,它们可以获得并响应客户的需求 . servlet的需求和反应对象提供了一种有用的方法来处理HTTP请求并将内容信息发送回客户 .

由于servlet与Java方言协调,因此它还具有所有Java重点,例如,高可移动性,阶段自治,安全性和Java数据库可用性 .

3 years ago

Servlet是一个响应HTTP请求并生成HTTP响应的java类......当我们使用HTML创建一个页面时,它将是一个静态页面,所以为了使它成为动态我们使用SERVLET {简单的话一个人可以理解}使用servlet克服了它使用代码和HTML标签本身 .

3 years ago

What is a Servlet?

  • servlet只是一个响应特定类型网络请求的类 - 最常见的是HTTP请求 .

  • 基本上,servlet通常用于实现Web应用程序 - 但是也有各种框架在servlet(例如Struts)之上运行,以提供比servlet提供的更高级别的抽象,而不是"here's an HTTP request, write to this HTTP response"级别 .

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

  • 在请求/响应范例中,Web服务器只能为客户端提供静态页面

  • 要提供动态页面,我们需要Servlets .

  • Servlet只不过是一个Java程序

  • 这个Java程序没有main方法 . 它只有一些回调方法 .

  • Web服务器如何与servlet通信?通过容器或Servlet引擎 .

  • Servlet在Web容器中生存和死亡 .

  • Web容器负责调用servlet中的方法 . 它知道Servlet有哪些回调方法 .

Flow of Request

  • 客户端向Web服务器发送HTTP请求

  • Web服务器将该HTTP请求转发给Web容器 .

  • 由于Servlet无法理解HTTP,它是一个Java程序,它只能理解对象,因此Web容器将该请求转换为有效的请求对象

  • Web容器为每个请求旋转一个线程

  • 所有业务逻辑都在servlet内部的doGet()或doPost()回调方法中

  • Servlet构建Java响应对象并将其发送到容器 . 它再次将其转换为HTTP响应以将其发送到客户端

How does the Container know which Servlet client has requested for?

  • 有一个名为web.xml的文件

  • 这是Web容器的主文件

  • 您在此文件中有关于servlet的信息 -

  • servlets

  • Servlet-name

  • Servlet类

  • servlet-mappings - 此处映射/ Login或/ Notifications之类的路径

  • Servlet-name

  • url-pattern

  • 等等

  • Web应用程序中的每个servlet都应该包含此文件的条目

  • 所以这个查找就像-url-pattern - > servlet-name - > servlet-class

How to "install" Servlets? *嗯,servlet对象是从library-javax.servlet继承的 . * . Tomcat和Spring可用于利用这些对象来适应用例 .

参考 - 请注意1.5x- https://www.youtube.com/watch?v=tkFRGdUgCsE . 这有一个很棒的解释 .

3 years ago

正如this article所描述的,Servlet是一种扩展Java服务器并访问其功能的标准化方法 .

每个Servlet都可以看作是一个小型服务器(因此得名),可以访问以Java代码为模型的请求和响应,以及其他上下文数据,如Session .

有了这些,servlet的Java代码可以与呈现响应所需的任何内容进行交互,包括切换到JSP页面以生成HTML视图 .

3 years ago

我认为servlet基本上是一个java类,它充当HTTP请求和HTTP之间的中间路径response.Servlet还用于使您的网页动态化 . 例如,假设您想要重定向到服务器上的另一个网页,那么您必须使用servlet . 另一个重要的事情是servlet可以在localhost和web浏览器上运行 .

3 years ago

你刚刚得到了一个正常servlet的答案 . 但是,我想与大家分享有关Servlet 3.0的一些信息

Servlet首先是什么? servlet是由容器管理并生成动态内容的Web组件 . Servlet是Java类,它们被编译为字节代码,可以动态加载到支持Java技术的Web服务器或Servlet容器中并由其运行 . Servlet 3.0是对现有Servlet 2.5规范的更新 . Servlet 3.0需要Java平台,企业版6的API .Servlet 3.0专注于可扩展性和Web框架可插拔性 . Servlet 3.0带给你一些扩展,如易于开发(EoD),可插拔,异步支持和安全增强易于开发你可以声明Servlet,过滤器,监听器,初始参数,几乎所有东西都可以通过使用注释进行配置可插拔你可以使用web-fragment.xml创建子项目或模块 . 这意味着它允许独立实现可插入的功能要求 . 异步支持Servlet 3.0提供异步处理的能力,例如:等待资源变为可用,异步生成响应 . 安全性增强支持authenticate,login和logout servlet安全性方法

我是从Java Servlet Tutorial找到的