感谢原博主!!!https://blog.csdn.net/whut2010hj/article/details/80874008

版权声明:本文为博主原创文章,遵循CC 4.0 BY版权协议,转载请附上原文出处链接和本声明。

今年刚接触JavaWeb的时候碰巧认识了一帮老师做后端的哥们,我俩平时用的最多的也都是Java。

我:“老哥,我想给我那个项目做一个服务器应用程序,怎么搞啊”

老哥:“Spring你知道吗”

我:“听说过”

老哥:“入下门”

我:“好嘞”

那会儿我俩在参加一个活动,也没细聊,有些内容我也记不住了,跟我讲了些前端的基本知识,还有就是我记住了Spring这个词。

JSP、Servlet和Spring MVC的前世今生

Java Servlet技术简称Servlet技术, 是Java开发Web应用的底层技术。

但由于Servlet用起来太复杂了,SUN公司发布了JavaServerPages(JSP)技术,以进一步简化servlet程序开发。

自从Servlet和JSP技术诞生后,涌现出大量的基于Java的Web框架来帮助开发人员快速编写Web应用。这些框架构建于Servlet和JSP之上,帮助开发人员更加关注业务逻辑,无须编写重复性(技术)代码。而Spring MVC 就是当前最流行的可扩展Java Web应用开发框架。

Spring MVC又叫Spring Web MVC,是Spring框架的一个模块,用于快速开发Web应用。 MVC代表Model-View-Controller,是一个广泛应用于GUI开发的设计模式。

Servlet

Servlet是一个Java程序,一个Servlet应用有一个或多个Servlet程序。Servlet也是Java的一个接口,我们在编写servlet时要实现这个接口,按照其规范进行操作。JSP页面会被转换和编译成Servlet程序。

Servlet和Tomcat

我们在学习的时候会知道,写好的JSP代码要部署到Tomcat上才能被访问并运行。

Servlet应用无法独立运行,必须运行在Servlet容器中。Tomcat 是Web应用服务器,就是一个Servlet/JSP容器。Servlet容器将用户的请求传递给Servlet应用,并将结果返回给用户。Web服务器和Web客户端间通过HTTP协议通信,因此Web服务器也叫HTTP服务器。像下图

Servlet/JSP容器是一个可以同时处理Servlet和静态内容的Web容器。过去,由于通常认为HTTP服务器比Servlet/JSP容器更加可靠,因此人们习惯将Servlet/JSP容器作为HTTP服务器如Apache HTTP服务器的一个模块。这种模式下,HTTP服务器用来处理静态资源,而Servlet/JSP容器则负责生成动态内容。如今,Servlet/JSP容器更加成熟可靠,并被广泛地独立部署。Apache Tomcat和Jetty是当前最流行的Servlet/JSP容器。

Spring 和SpringMVC

Spring框架是一个开源的企业应用开发框架,有很多不同的模块,Spring MVC就是其中一个模块。

Java Web应用开发中有两种设计模型:

第一次学习JSP,通常通过链接方式进行JSP页面间的跳转,这就是第一种模式。这种方式非常直接,但在中型和大型应用中,这种方式会带来维护上的问题。修改一个JSP页面的名字,会导致大量页面中的链接需要修正。

第二种模式就是基于模型-视图-控制器的模式(MVC模式),一个实现MVC模式的应用包含模型、视图和控制器3个模块。视图负责应用的展示。模型封装了应用的数据和业务逻辑。Spring MVC 使用一个Servlet作为控制器,大部分都采用JSP页面作为应用的视图,而模型则采用POJO,实践中会采用一个JavaBean来持有模型状态。

参考书籍:《Spring MVC学习指南》《Servlet、JSP和Spring MVC初学指南》


补充:

https://www.cnblogs.com/davidwang456/p/10297476.html

https://www.baidu.com/s?wd=JSP、Servlet和Spring+MVC的前世今生&ie=UTF-8

JSP、Servlet和Spring MVC的更多相关文章

  1. 乐视开放平台技术架构-servlet和spring mvc篇

    在乐视风口浪尖的时候,敢于站出来说我是乐视的而不怕被打脸的,也就是我了.就算我以后不在乐视了,提起来在乐视工作过,我也还是挺骄傲的.因为这是一个有理想,敢拼敢干的公司.想起复仇者联盟里Fury指挥官的 ...

  2. web框架的前生今世--从servlet到spring mvc到spring boot

    背景 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式随之火爆发展起来.最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html.css等.  但是可 ...

  3. (jsp+servlet+javabean )MVC架构

    MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...

  4. spring +servlet 与 spring MVC

    spring serlvetSpring框架中context-param与servlet中init-param的contextConfigLocation的区别https://blog.csdn.ne ...

  5. Jsp+Servlet+JavaBean经典MVC模式理解

    MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...

  6. 基于jsp+servlet+javabean的MVC模式简单应用

    原先写在CSDN的一篇,我直接扒过来吧.之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种.所以很长一段时间我也没写什么. 一.MVC模式 1.M :  javabea ...

  7. spring mvc 快速入门

    ---------- 转自尚学堂 高淇 --------- Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC ...

  8. Spring MVC学习笔记--认识SpringMVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...

  9. Spring MVC框架实例

    Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,能够选择是使用内置的 Spring Web 框架还是 ...

随机推荐

  1. SpringCloud创建Gateway模块

    1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...

  2. exit hook

    之前经常改 malloc_hook , realloc_hook,free_hook 为 one_gadget 来 get shell ,最近看到一种利用是改 exit hook(winmt师傅告诉我 ...

  3. 初识python: 文件下载进度

    (后续待更新...) 使用 request 的 urlretrieve 方法创建"回调函数": 下载进度 详细代码如下: #!/user/bin env python # auth ...

  4. JMeter_用户自定义变量

    在实际测试过程中,我们经常会碰到脚本开发时与测试执行时的服务地址不一样的情况,为了方便,我们会把访问地址参数化,当访问地址变化了,我们只需要把参数对应的值改动一下就可以了. 一.添加用户自定义变量元件 ...

  5. vue 在实现关键字远程搜索时出现数据不准确的原因

    实现通过输入关键字查询项目, 页面搜索规则框部分 js部分 之前通过在data中定义一个变量,然后在methods中filterFn方法获取当时输入的值去后台请求数据,然后把请求的数据存放在state ...

  6. Go语言系列之并发编程

    Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(宏观上并行,微观上并发). 并行:同一时刻执行多个任务(宏观和微观都是并行). Go语言的并发通过goroutine实现.gorout ...

  7. linux获取 GPG 密钥失败

    实质性问题就是自己系统没有yum的GPG密钥 查看自己系统版本 cat /etc/issue 登陆mirrors.163.com 找到自己系统对应的密钥  RPM-GPG-KEY-CentOS-3   ...

  8. Jupyter常用配置

    一  安装 pip install --upgrade jupyterthemes 二 设置主题 #查看主题列表 jt -l #设置主题并打开工具栏 jt -t chesterish -T 三 设置列 ...

  9. python驱动SAP完成数据导出(一)

    写在前面 我们使用Python驱动SAP时,经常会需要导出一些SAP报表数据至本地Excel文件.这个看似简单的问题背后,其实暗藏玄机,今天小爬就带各位同学好好捋捋. 以事务代码FB03(凭证清单)为 ...

  10. 利用EndpointSlices扩展Kubernetes网络,提供更强的可伸缩性和功能

    EndpointSlices是一个令人兴奋的新API,它提供了Endpoints API的可扩展和可扩张的替代方案.EndpointSlice跟踪Pod服务后面的IP地址,端口,准备情况和拓扑信息.在 ...