一文带你了解什么是 Servlet

  发布时间:2025-12-07 20:45:53   作者:玩站小弟   我要评论
介绍Servlet是在服务器端运行的Java程序,可以接收客户端请求并做出响应,是基于 Java 技术的 web 组件,该组件由容器托管,用于生成动态内容。他是用Java编写的服务器端程序。其主要功能 。

介绍

Servlet是文带在服务器端运行的Java程序 ,可以接收客户端请求并做出响应 ,文带是文带基于 Java 技术的 web 组件,该组件由容器托管,用于生成动态内容。他是文带用Java编写的服务器端程序 。其主要功能在于交互式地浏览和修改数据 ,文带生成动态Web内容  。文带

servlet说实在点就是文带个接口 ,浏览器发送请求给Tomcat(服务器),文带若是文带这个请求正好对应了servlet实现类的高防服务器请求路径,Tomcat就会使用它来响应浏览器,文带这也就是文带request(请求) 、response(响应)了。文带

复制public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1,文带 ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); }1.2.3.4.5.6.7.8.9.10.11.

servlet有5个方法 。

执行流程

图片

浏览器发出 http://localhost:8080/web-demo/demo1 请求 ,文带从请求中可以解析出三部分内容,文带分别是localhost:8080 、web-demo 、demo1:

a.根据localhost:8080可以找到要访问的Tomcat Web服务器

b.根据web-demo可以找到部署在Tomcat服务器上的web-demo项目

c.根据demo1可以找到要访问的是项目中的服务器租用哪个Servlet类 ,根据@WebServlet后面的值进行匹配

找到ServletDemo1这个类后,Tomcat Web服务器就会为ServletDemo1这个类创建一个对象,然后调用对象中的service方法ServletDemo1实现了Servlet接口,所以类中必然会重写service方法供Tomcat Web服务器进行调用service方法中有ServletRequest和ServletResponse两个参数 ,ServletRequest封装的是请求数据,ServletResponse封装的是响应数据。

那么Servlet由谁创建?

Servlet方法由谁调用? Servlet由web服务器创建,Servlet方法由web服务器调用。

服务器怎么知道Servlet中一定有service方法?

因为自定义的源码下载Servlet,必须实现Servlet接口并复写其方法,而Servlet接口中有service方法。这就是接口的规范

生命周期

生命周期就是指对象在被创建到销毁的整个过程

Servlet运行在Servlet容器(web服务器)中 ,其生命周期由容器来管理 ,分为4个阶段:

加载和实例化:默认情况下 ,当Servlet第一次被访问时,由容器创建Servlet对象。

a.loadOnstartup的取值有两类情况 :

b.负整数:第一次访问时创建Servlet对象

c.0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高

默认情况,Servlet会在第一次访问被容器创建,模板下载但是如果创建Servlet比较耗时的话,那么第一个访问的人等待的时间就比较长 ,用户的体验就比较差,可以修改loadOnStartup配置 -> @WebServlet(urlPatterns = "/demo1",loadOnStartup = 1)初始化:在Servlet实例化之后 ,容器将调用Servlet的 init() 方法初始化这个对象 ,完成一些如加载配置文件 、创建连接等初始化的工作 。该方法只调用一次 。请求处理  :每次请求Servlet时,源码库Servlet容器都会调用Servlet的 service() 方法对请求进行处理 。 service方法在Servlet被访问的时候调用,每访问1次就调用1次服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的 destroy() 方法完成资源的释放。在destroy()方法调用之后 ,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收 。 destroy() 方法只调用一次。

HttpServlet

前端发送GET和POST请求的时候 ,参数的香港云服务器位置不一致 ,GET请求参数在请求行中  ,POST请求参数在请求体中 ,为了能处理不同的请求方式 ,得在service方法中进行判断,然后写不同的业务处理 。但是每个Servlet类中都将有相似的代码 ,因此就有了HttpServlet ,来简化代码开发 。

编写Servlet类的时候 ,只需要继承MyHttpServlet,重写父类中的doGet和doPost方法 ,就可以用来处理GET和POST请求的业务逻辑 。

和MVC的对比

Spring MVC 和 Servlet 都是 Java Web 开发中常用的技术 ,它们之间的区别在于 :

Spring MVC 是基于 Servlet 的框架 ,它提供了一种 MVC(Model-View-Controller)的架构模式来帮助组织代码,简化开发。而 Servlet 则是 Java Web 应用程序的基础,它允许 Java 开发人员处理 HTTP 请求和响应。Spring MVC 框架提供了更加强大  、灵活的控制器(Controller)层 ,支持不同的数据绑定  、校验等功能,同时也提供了 AOP、IOC 等企业级特性。而 Servlet 只提供了基本的请求处理和转发功能 。Spring MVC 对前端技术支持更加友好 ,如内置 JSP 标签库、支持 RESTful 架构等。

Spring MVC 相比于 Servlet 的优势:

MVC模式 :Spring MVC 提供了基于 MVC 模式的架构 ,可以将应用程序分为模型(Model) 、视图(View)和控制器(Controller) ,使代码更容易组织、维护和测试 。而 Servlet 则需要手动处理请求和响应 ,代码比较混乱。易于扩展:Spring MVC 借助 Spring Framework 强大的 DI(依赖注入)和 AOP(面向切面编程)特性 ,更容易进行扩展和定制。开发人员可以轻松地添加新的拦截器(Interceptors)、过滤器(filters)等功能 。而在Servlet中,需要手动开发这些功能 ,增加了开发难度和工作量。更好的灵活性:Spring MVC 支持多种视图技术,包括 JSP、FreeMarker 、Velocity 、Thymeleaf 等 。并且支持 RESTful 架构, 可以方便地创建 REST 风格的应用程序 。而Servlet通常使用JSP或者HTML进行前端展示  。更好的测试性 :Spring MVC 代码更容易进行单元测试  ,开发人员可以通过模拟请求来测试控制器的行为。而在 Servlet 中 ,由于代码比较混乱 ,测试方法也会比较复杂 。更好的错误处理机制:Spring MVC 提供了更好的异常处理机制 ,可以集中处理应用程序中出现的各种异常 ,而Servlet则需要手动捕捉和处理异常。
  • Tag:

相关文章

  • 导致CSO丢饭碗的九大致命错误

    企业安全主管CSO)们的饭碗正变得越来越脆弱,他们可以正确一百次,但只要一次失误,就足以葬送一切。只需一个愚蠢的决定、一个简单的疏忽或是一次糟糕的沟通,一个错误的假设,或者听信了一个错误的建议,就可能
    2025-12-07
  • 数据备份在数据安全中的重要性

    背景概述随着信息技术的快速发展,数据在我们的生活和工作中扮演着越来越重要的角色。企业、机构和个人都依赖于大量的数字信息来支持各种业务活动。然而,随之而来的是数据丢失和泄露的风险。这种风险不仅对组织的运
    2025-12-07
  • 10年狂砸4个亿,这个计划真的让软件更安全吗?

    整理 | 如烟出品 | 51CTO技术栈微信号:blog51cto)微软的漏洞赏金计划已经推出十个年头。在这十年时间里,微软累计向安全研究人员支付了 6,300 万美元折合人民币约 4.5 亿元)奖金
    2025-12-07
  • 关于计算机安全的九个基本提示

    计算机保存着我们大量的个人和商业数据。如果这些信息落入坏人之手,可能会遭受身份盗窃、欺诈和其他网络恶作剧。务必警惕病毒、恶意软件、网络钓鱼攻击、特洛伊木马和其他在线诈骗。以下回顾了九个基本的计算机安全
    2025-12-07
  • 如何保护物联网设备免受攻击?

    阅读本文,了解如何保护其他创新科技物联网设备免受攻击。科技在我们生活中越来越重要,这使得智能城市和智能家居的创造成为可能。像AI和区块链等颠覆性技术通过其深远的能力彻底改变了行业。另一项重新定义我们生
    2025-12-07
  • 聊聊 SSL 证书过期巡检脚本

    哈喽大家好,我是咸鱼。我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请。如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响。所以说我们要每隔一定时间去检查网站上的 S
    2025-12-07

最新评论