SpringBoot与servlet

本文详细介绍了Servlet和Servlet容器的概念,强调了SpringBoot简化了Servlet的使用,尤其是Servlet3.0之后的注解驱动。文章探讨了Servlet组件,包括Servlet、Filter、监听器等,并详细阐述了它们的生命周期和注册方式。此外,还提到了SpringBoot如何通过ServletRegistrationBean和FilterRegistrationBean来注册Servlet和Filter。最后,文章讨论了SpringBoot与传统Servlet的区别,以及在前后端分离项目中的应用场景。
摘要由CSDN通过智能技术生成

一、servlet,servlet容器

Servlet 是一种基于 Java 技术的 Web 组件,用于生成动态内容,由容器管理。类似于其他 Java 技术组件,Servlet 是平台无关的 Java 类组成,并且由 Java Web 服务器加载执行。在以前的servlet规范中,必须放在相应的目录中才可以执行,比如web-inf,而SpringBoot就非常简单,不需要复杂的步骤。
Servlet容器,有时也称为Servlet引擎,作为Web服务器或应用服务器的一部分,通过请求和响应对话,提供Web客户端与Servlet交互的能力。容器管理Servlet实例以及他们的生命周期。
Servlet3.0以后,也就是tomcat8.0以后采用注解驱动。用注解或API的方式代替了XML,不需要XML就可以启动容器了。也就是说用jar包的方式就可以启动,不 需要用war包去启动了。SpringBoot用了嵌入式引擎,嵌入式引擎必须由嵌入式容器启动,tomcat之所以能做到嵌入式容器,是因为servlet做了改革。SpringBoot除了自动装配以外,还有一个最大的亮点是异步IO,异步上下文。Servlet3.1和websocket有紧密的关联。

二、servlet组件

1997年六月,Servlet 1.0 版本发行,当时还不属于J2EE规范,最新版本 Servlet 4.0 处于研发状态。下面说的都是servlet3.1规范,支持Tomcat8。Servlet 3.0 前时代,几乎都是注解驱动或API编程的方式。Annotation用于申明,真正的注册在于调用它 的API,通过API的方式动态的进行注册,之前只能通过XML配置,比较固态化。

常见服务组件
javax.servlet.Servlet

public interface Servlet {
    void init(ServletConfig var1) throws ServletException;

    ServletConfig getServletConfig();

    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;

    String getServletInfo();

    void destroy();
}

javax.servlet.Filter(since Servlet 2.3)
Filter是在servlet之前执行的。

public interface Filter {
    void init(FilterConfig var1) throws ServletException;

    void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;

    void destroy();
}

上下文组件
javax.servlet.ServletContext
一个servlet容器是允许多个应用上下文的,SpringBoot里面至少有一个,实际上可以有两个应用上下文,一个是服务端,一个是管理端,一个应用上下文就是一个应用,一个Web容器里面可以支持多个应用的部署。
javax.servlet.http.HttpSession,

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值