今年刚接触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初学指南》

JSP、Servlet和Spring MVC相关推荐

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

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

  2. Servlet 3 + Spring MVC零配置:去除所有xml

    在一些基于Spring/Spring MVC的Java Web项目中,总是会有一些xml配置文件,如web.xml.applicationContext.xml等,本文的目标即消灭这些xml配置文件, ...

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

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

  4. [技术分享]-Servlet/tomcat/spring mvc之间关系

    首先,什么是Servlet?狭义的说,Servlet是JAVA提供的Servlet接口,我们可以看一眼Servlet接口的定义: [java] view plain copy A servlet is ...

  5. 【每日一篇】Servlet/tomcat/spring mvc之间关系

    首先,什么是Servlet?狭义的说,Servlet是JAVA提供的Servlet接口,我们可以看一眼Servlet接口的定义: A servlet is a small Java program t ...

  6. 初步认识spring mvc

    spring mvc 01 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求 ...

  7. Spring MVC JSP 表单标签教程

    在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...

  8. Spring MVC与JAX-RS比较与分析

    http://www.infoq.com/cn/articles/springmvc_jsx-rs 过去几年,REST逐渐成为影响Web框架.Web协议与Web应用设计的重要概念.如果你还不了解RES ...

  9. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

最新文章

  1. 盘点 Github 上的高仿 app 项目
  2. D - Fliptile POJ - 3279(翻转问题)
  3. SAP QM Batch to Batch的转移过账事务中的Vendor Batch
  4. 随机洗牌:哪一种算法是正确的?
  5. boost::geometry::correct_closure用法的测试程序
  6. flowable工作流 流程变量_Activiti工作流的应用示例
  7. iOS 富文本风格NSMutableParagraphStyle、定制UITextView插入图片和定制复制
  8. Java多线程(4)--线程的同步解决线程安全问题
  9. IPhone之NSXMLParser的使用
  10. GreenDao的学习和使用
  11. Python案例实操1-网络爬虫
  12. DDD领域驱动(四)——之领域建模
  13. VS2010 中文版MSDN下载
  14. 获取取本月一号、本月月末 日期
  15. 做得好 vs 做得快?
  16. C++弹幕游戏自制分享
  17. 【虚幻引擎UE】UE4/UE5 GIS辅助类插件推荐及使用介绍
  18. 中国设计在重庆丨5G+VR直播直击秋冬风尚大秀
  19. 使用ffmpeg合并音频视频并实现背景音乐循环播放
  20. Python密码库Cryptography探究学习

热门文章

  1. GITHUB设置代理——解决git clone下载过慢的问题
  2. 建立Windows AD对Kerberos的单向信任(允许使用域账号登录Kerberos集群)
  3. android重签名闪退,360加固保加固完之后重新签名的包运行闪退,求大神帮忙解答...
  4. 基于微信小程序的多功能记事本软件开发 报告+前后台(java)项目源码+数据库
  5. 读论文,第一天:TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors
  6. 百度收购YY,其实挺值得
  7. 社群思维:如何打破边界
  8. TYPE-C 6P 引脚接线(快速通关)
  9. L2-012 关于堆的判断 - 小顶堆(详解)
  10. [转载]说说大型高并发高负载网站的系统架构