您现在的位置是:电脑教程 >>正文
一文带你了解什么是 Servlet
电脑教程36人已围观
简介介绍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个方法。
执行流程
图片
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则需要手动捕捉和处理异常。Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/html/685d7899236.html
相关文章
实战化攻防演练必备——六款适合蓝队的开源防御工具及特点分析
电脑教程实战化的攻防演习活动一般具有时间短、任务急等特点,作为防守方,蓝队需要在日常安全运维工作的基础上,从攻击者角度出发,了解攻击者的思路与打法,并结合本单位实际网络环境、运营管理情况,制定相应的技术防御和 ...
【电脑教程】
阅读更多电脑系统崩溃一键恢复的技巧(掌握关键技巧,轻松应对电脑系统崩溃)
电脑教程电脑系统崩溃是我们日常使用电脑时常常会遇到的问题之一,但是对于大部分用户来说,面对这个问题却常常无从下手。本文将为大家介绍一种简便快捷的解决方法——电脑系统崩溃一键恢复技巧,帮助大家在系统崩溃时能够迅 ...
【电脑教程】
阅读更多从核心到边缘,开启AI时代的云基础设施新范式
电脑教程AI尤其是生成式AI技术的快速发展,对算力基础设施提出了更高的要求,推动了智算数据中心的迅猛发展。与此同时,作为算力基础设施的一部分,边缘数据中心也进入了高速发展的时代。Akamai与IDC联合发布的 ...
【电脑教程】
阅读更多