什么是Java Servlet?

What is Java Servlet?

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

请简要介绍Java Servlet(用易语言编写)。像什么是servlet?优势是什么?等等。

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


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

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


Servlet在其核心是Java类,它可以处理HTTP请求。通常,通过线路读取HTTP请求和响应的内部细节由Tomcat这样的容器负责。这样做的目的是,作为服务器端开发人员,您可以集中精力处理HTTP请求和响应,而不必费心处理处理处理网络等的代码。容器将处理诸如将整个事件包装到HTTP响应对象中并将其发送到客户机(例如浏览器)的事情。

现在,下一个合乎逻辑的问题是,谁来决定容器应该做什么?答案是:在Java世界中,至少它被指导(注意,我没有使用控制字)的规格。例如,servlet规范(参见参考资料2)规定了servlet必须能够做什么。因此,如果您可以为规范编写一个实现,恭喜您刚刚创建了一个容器(从技术上讲,像Tomcat这样的容器也实现了其他规范,并做一些复杂的事情,比如定制类加载器等,但是您得到了这个想法)。

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

这是一个有趣的练习。创建一个类似于资源3中的简单servlet,并在其构造函数方法(是的,您可以有servlet的构造函数)、in it()、doget()、dopost()方法中编写一些system.out.println()语句,然后在tomcat中运行servlet。请参阅控制台日志和Tomcat日志。

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

资源

  • 看一下这里的HTTP servlet(Tomcat示例)。

  • servlet规范。

  • 简单的servlet示例。

  • 开始在线阅读这本书/pdf它还提供整本书的下载。也许这会有帮助。如果您刚开始使用servlet,那么最好与servlet API一起阅读资料。这是一个缓慢的学习过程,但在理清基础知识方面更有帮助。


  • 除了以上,还要指出明显的出血点…

    对于许多人来说,这是非常明显的,但是对于那些习惯于编写只运行然后结束的应用程序的人来说:servlet大部分时间都无所事事……等待被发送的东西,一个请求,然后对它作出响应。由于这个原因,servlet有一个生命周期:它被初始化,然后等待,响应向它抛出的任何东西,然后被销毁。这意味着它必须由其他东西(框架)创建(稍后销毁),它在自己的线程或进程中运行,并且除非被要求,它什么也不做。而且,通过某种方式或其他方式,必须实现一种机制,使这个"实体"能够"倾听"请求。

    我建议,阅读关于线程、进程和套接字的内容可以让我们了解到这一点:这与一个基本的"hello world"应用程序功能的方式大不相同。

    可以说,术语"服务器"或"servlet"有点过分了。一个更合理、更简单的名字可能是"响应者"。


    如果您是初学者,我认为本教程可能会给出关于servlet是什么的基本概念…

    下面给出了一些有价值的观点。

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

    servlet可以用多种方式描述,这取决于上下文。

    • servlet是一种用于创建Web应用程序的技术。
    • servlet是一个API,它提供许多接口和类,包括文件。
    • servlet是一个必须实现的接口,用于创建servlet。
    • servlet是一个扩展服务器和响应传入的请求。它可以响应任何类型的请求。
    • servlet是部署在服务器上以创建动态网页。参考文献:这里。


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

    servlet的生命周期:

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

    1。已加载servlet类

    2。已创建servlet实例

    三。调用了init()方法

    4。已调用service()方法

    5。已调用destroy()方法

    当客户端(浏览器)发出请求时,Web容器会检查servlet是否正在运行,如果是,则会调用service()方法并对浏览器作出响应。

    当servlet不运行时,Web容器遵循以下步骤。

    1。类加载器加载servlet类

    2。实例化servlet

    三。初始化servlet

    4.调用service()方法

    在为请求Web容器提供服务之后,等待特定的时间,此时如果请求出现,则它只调用service()方法,否则它调用destroy()方法。


    Java Servlet是服务器端Java程序模块,负责客户需求的处理和回答,实现Servlet接口。它有助于提高Web服务器的实用性,而开销、维护和支持都可以忽略不计。

    servlet充当客户和服务器之间的中介。由于servlet模块一直在服务器上运行,因此它们可以对客户的需求作出响应。servlet的需求和反应对象提供了一种处理HTTP请求并将内容信息发送回客户的有用方法。

    由于servlet与Java方言相协调,它还具有所有的Java亮点,例如,高可动性、阶段自治性、安全性和Java数据库可用性。


    什么是servlet?

    • servlet只是一个响应特定类型网络请求的类——最常见的是HTTP请求。
    • 基本上,servlet通常用于实现Web应用程序,但也有各种框架在servlet(例如struts)之上运行,以提供比servlet提供的"这是一个HTTP请求,写入这个HTTP响应"级别更高级别的抽象。
    • servlet运行在处理网络端的servlet容器中(例如,解析HTTP请求、连接处理等)。最著名的开源servlet容器之一是Tomcat。

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

    • 为了服务动态页面,我们需要servlet。
    • servlet只不过是一个Java程序
    • 这个Java程序没有一个主要的方法。它只有一些回调方法。
    • Web服务器如何与servlet通信?通过容器或servlet引擎。
    • servlet在Web容器中生存和死亡。
    • Web容器负责调用servlet中的方法。它知道servlet有什么回调方法。

    请求流量

    • 客户端向Web服务器发送HTTP请求
    • Web服务器将该HTTP请求转发到Web容器。
    • 由于servlet无法理解HTTP,它是Java程序,它只理解对象,因此Web容器将该请求转换为有效请求对象。
    • Web容器为每个请求旋转一个线程
    • 所有业务逻辑都位于servlets内部的doget()或dopost()回调方法中。
    • Servlet构建Java响应对象并将其发送到容器。它再次将其转换为HTTP响应以将其发送到客户端

    容器如何知道哪个servlet客户机已请求?

    • 有一个名为web.xml的文件
    • 这是Web容器的主文件
    • 您在这个文件中有关于servlet的信息-

      • 小服务
        • servlet名称
        • servlet类
      • servlet映射-类似/login或/notifications的路径映射在此处
        • servlet名称
        • 访问路径
      • 等等
    • Web应用程序中的每个servlet都应该在该文件中有一个条目

    • 所以这种查找类似于-url模式->servlet名称->servlet类

    如何"安装"servlet?*好吧,servlet对象是从库-javax.servlet.*继承的。Tomcat和Spring可以用来利用这些对象来适应用例。

    参考-在1.5x上观看-https://www.youtube.com/watch?v=tkfrgdugcse.这是一个很好的解释。


    Servlet是一个Java类,用于响应HTTP请求并产生HTTP响应……当我们使用HTML制作一个页面时,它将是一个静态页面,因此为了使其具有动态性,我们使用servlet简单地说,我们可以理解为了使用servlet,JSP克服了servlet本身的缺点,它使用代码和HTML标记。


    正如本文所描述的,servlet是扩展Java服务器并访问其能力的标准化方式。

    每个servlet可以被看作是一个微小的服务器(因此名称),它可以访问Java代码中所建模的请求和响应,以及其他会话数据,比如会话。

    有了这些,Servlet的Java代码可以与它所需的任何接口进行交互,包括向JSP页面移交以生成HTML视图。


    我认为servlet基本上是一个Java类,它充当HTTP请求和HTTP响应之间的中间方式。servlet也用于使网页动态。例如,假设您想重定向到服务器上的另一个网页,那么您必须使用servlet。另一件重要的事情是servlet可以在本地主机和Web浏览器上运行。


    你刚刚得到了一个正常的servlet的答案。但是,我想和您分享一些关于servlet 3.0的内容

    What is first a Servlet?

    A servlet is a Web component that is managed by a container and
    generates dynamic content. Servlets are Java classes that are compiled
    to byte code that can be loaded dynamically into and run by a Java
    technology-enabled Web server or Servlet container.

    Servlet 3.0 is an update to the existing Servlet 2.5 specification.
    Servlet 3.0 required API of the Java Platform, Enterprise Edition 6.
    Servlet 3.0 is focussed on extensibility and web framework
    pluggability. Servlet 3.0 bring you up some extensions such as Ease of
    Development (EoD), Pluggability, Async Support and Security
    Enhancements

    Ease of Development

    You can declare Servlets, Filter, Listeners, Init Params, and almost
    everything can be configured by using annotations

    Pluggability

    You can create a sub-project or a module with a web-fragment.xml. It
    means that it allows to implement pluggable functional requirements
    independently.

    Async Support

    Servlet 3.0 provides the ability of asynchronous processing, for
    example: Waiting for a resource to become available, Generating
    response asynchronously.

    Security Enhancements

    Support for the authenticate, login and logout servlet security
    methods

    我从JavaServlet教程中找到的