一文详解Servlet 看这篇就够了

简介: 首先,对我们编程者来说,Servlet就是我们写出来的Java类,只是我们需要按照Servlet规定的规范写。

Servlet是什么?是做什么的?


  😮 首先,对我们编程者来说,Servlet就是我们写出来的Java类,只是我们需要按照Servlet规定的规范写。


  😁 其次,Servlet也是运行在Web服务器端的Java应用程序


我们可以简化一下运行在Web服务器端的Java应用程序的理解:

我们平常写的Java类,都是需要关键字new来实例化的。

而正是由于Servlet是运行在服务器端,并不需要我们new,不需要导入jar包,只需要在WEB-INF目录里面的web.xml文件里面配置一下就可以运行起来了。


  😄 Servlet是用来处理客户端发来的请求的。


 Servlet是一种Java编程语言的特殊类,用于处理Web应用程序中的HTTP请求和响应。它是Java Servlet技术的一部分,这是Java EE(Java Platform, Enterprise Edition)规范的一部分,用于构建强大的、可扩展的Web应用程序。Servlet的名字可能会让人觉得有点陌生,但它在Web开发中起着至关重要的作用,为开发者提供了一种有效、灵活和可靠的方式来处理网络请求和生成动态内容。


 Web应用程序的基础是HTTP协议,它用于在Web浏览器和Web服务器之间传输数据。当您在浏览器中输入一个URL并按下回车键时,浏览器会向Web服务器发送一个HTTP请求,请求特定的资源,如网页、图像或其他文件。这个请求包含了一些信息,例如请求的URL、HTTP方法(通常是GET或POST)以及一些HTTP头部信息。服务器需要根据这些信息来确定如何响应请求,这就是Servlet发挥作用的地方。


 Servlet是一个Java类,它可以接收这个HTTP请求,处理它,并生成一个HTTP响应返回给浏览器。Servlet通常运行在支持Servlet规范的Web服务器上,例如Apache Tomcat或Jetty。当Web服务器接收到HTTP请求时,它会根据请求的URL将请求路由到适当的Servlet。


 此外,Servlet还具有可扩展性和平台无关性的优势。因为它们是基于Java编写的,所以可以在不同的操作系统和Web服务器上运行,而无需修改源代码。这为跨平台开发提供了便利,使得开发者能够构建一次,并在不同环境中部署和运行。


 Servlet通常与JavaServer Pages(JSP)一起使用,以便将动态生成的内容嵌入到HTML页面中。这种组合使得开发者可以更轻松地创建可维护的Web应用程序,将业务逻辑和用户界面分离开来,提高了代码的可读性和可维护性。


Servlet的运行示例


  😁 主要有2步:(代码就不粘了,网上特别多)


  • 先写个servlet类


  • 然后在web.xml文件里面配置一下


  😮 主要介绍一下web.xml文件里面的配置代码:


<servlet>
  <servlet-name>起个名称</servlet-name>
  <servlet-class>xxx.xxx.xxx.xxx(这是你的Servlet文件路径)</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>起个名称</servlet-name>      
  <url-pattern>/xxx/xxx(这是你回头在浏览器里面访问Servlet文件的路径)</url-pattern>   
</servlet-mapping>


  :这是Servlet配置的开始标签。


  :这是Servlet的名称,您可以为Servlet指定一个唯一的名称,以便在其他地方引用它。


  :这是指定Servlet类的完全限定类名(包括包路径)。它告诉Web容器在需要时实例化哪个Java类来处理HTTP请求。


  :这是Servlet映射配置的开始标签。


  :与上面的 匹配,这告诉Web容器将哪个Servlet与URL模式关联起来。


  :这是URL模式,它指定了客户端浏览器将如何访问Servlet。在浏览器中输入这个URL模式将触发与之关联的Servlet的处理。


Servlet的的生命周期


image.png

  🙋问题:如何让servlet在服务器加载时就执行?


  – 在WEB-INF里,添加标签:(里面数字越低,优先级越高)


<load-on-startUp>2</load-on-startUp>

Servlet 的三种创建方式


  • 实现javax.servlet.Servlet接口


  • 继承javax.servlet.GenericServlet(适配器模式)


   –  需要重写service()函数


  • ⭐继承HttpServlet(模板方法设计模式)

    – 一般只需要重写doGet()、doPost()函数


👨‍🎓解释:第三种方法继承了很多类,使用起来非常方便,是平常使用最多的方法


Servlet 进阶知识


Servlet线程安全:不写全局变量,写局部变量


ServletContext对象,类似于application的概念:

1、域对象,整个应用只有一个ServletContext对象,可以使多个servlet共享数据(数据存储为map集合)

2、获取全局配置信息

3、获取资源路径(根据资源的名称获取其路径)



Servlet请求的转发。可以实现把servlet请求转发给另外一个servlet线程。

相关文章
|
API 容器
JavaWeb第七章课后题 Servlet详解
JavaWeb第七章课后题 Servlet详解
245 0
|
数据可视化 Java
一文详解JavaBean 看这篇就够了
一文详解JavaBean 看这篇就够了
763 0
|
编译器 C#
C#学习(第五篇)
在某些情况下,我们可能需要重复执行某些代码,这时就需要用到 C# 中的循环语句,C# 中支持 for 循环、foreach 循环、while 循环和 do while 循环等循环语句,本节我们主要来介绍一下 C# 中的 for 循环。
C#学习(第五篇)
|
小程序 Java 应用服务中间件
带你吃透Servlet核心编程上篇(完整图文教程)(上)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(上)
|
XML 应用服务中间件 数据格式
带你吃透Servlet核心编程上篇(完整图文教程)(中)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(中)