0
点赞
收藏
分享

微信扫一扫

jsp servlet SpringMVC的发展由来

逸省 2022-03-25 阅读 107
mysqljava

什么是servlet
在这里插入图片描述

称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,

主要功能在于交互式地浏览和生成数据,生成动态Web内容。”

Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

Servlet的生命周期:

Servlet的生命周期指的是 Servlet从被Web服务器加载到它被销毁的整个生命过程
(1)加载和实例化
当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。
(2) 初始化
实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。
(3)服务
初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求, HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
(4)销毁
当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。
其中iinit() 和 destroy() 都是只会调用一次的 但是 service 会在每一次都会被调用的

Servlet工作原理:

先解释Servlet接收和响应客户请求的过程,

首先客户发送个请求,
Servlet容器在启动时自动创建Servlet对象,并且Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,
然后调用Servlet的service()方法, 从ServletRequest对象获得客户请求信息,处理该请求,然后通过ServletResponse对象向客户返回响应信息。

创建Servlet对象的时机:

  1. Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
  2. 在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet对象的service方法。
  3. Servlet
    Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

什么是jsp

JSP(Java Server Pages)是Sun 公司指定的一种服务器端动态页面技术的组件规范,Jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码形式。jsp 文件在容器中会转换成Servlet再执行。
• 程序组成
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容
• 职能分工
jsp更侧重于前端页面显示,servlet更侧重于业务逻辑。
• 本是一家人
Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。

Jsp和servlet的区别

Web服务器加载Servlet:Web服务器启动后,它会根据每个工程的web.xml文件去查找该工程的Servlet,并且找到这些Servlet的Class文件所在的地址,将它们载入到Web容器中,不同的Servlet被Web容器加载的次序不同,通过web.xml文件可以配置每个Servlet载入的次序。一般来说,Servlet在服务器启动时就会被Web服务器加载,而JSP文件只有在用户访问到该页面时才会被动态载入。

扬长弊端提出MVC

JSP 在Html 中加入了大量的、复杂的业务逻辑,如果后期业务逻辑发生改变,修改jsp 就会捉襟见肘; 
Servlet 虽然解决了业务逻辑的问题,但是通过字符串拼接的方式生成动态的Html 页面,也会导致代码臃肿,难以维护; 
MVC(Model-View-Controller)模式就扬长避短,将两者完美结合在一起,它把把软件系统分为三个层次:模型(Model)、视图(View)和控制器(Controller);

SpringMVC的核心在于其请求流程,这是使用SpringMVC框架的基础,SpringMVC是一种基于Servlet的技术,它提供了核心控制器DispatcherServlet和相关的组件,并制定了松散的结构,以适合各种灵活的需求,

在这里插入图片描述

在这里插入图片描述

举报

相关推荐

0 条评论