理解以下三点即可:

1、不同之处在哪?

  • Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容
  • JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容

2、各自的特点

  • Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差
  • JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的
3、通过MVC双剑合璧

既然JSP和Servlet都有自身的适用环境,那么能否扬长避短,让它们发挥各自的优势呢?答案是肯定的——MVC(Model-View-Controller)模式非常适合解决这一问题。

MVC模式(Model-View-Controller)是软件工程的一种软件框架,系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller):

  • Controller——负责转发请求,对请求进行处理
  • View——负责界面显示
  • Model——业务功能编写(例如算法实现)、数据库设计以及数据存取操作实现
在JSP/Servlet开发的软件系统中,这三个部分的描述如下所示:
  1. Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)
  2. Controller(Servlet)调用核心业务逻辑——Model部分,获得结果
  3. Controller(Servlet)将逻辑处理结果交给View(JSP),动态输出HTML内容
  4. 动态生成的HTML内容返回到浏览器显示

MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不会通过out.append()动态生成HTML代码;JSP中也不会充斥着大量的业务代码。这大大提高了代码的可读性和可维护性。

转自知乎:

作者:David
链接:https://www.zhihu.com/question/37962386/answer/87758781
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

转载于:https://www.cnblogs.com/yzy-blogs/p/6597319.html

Servlet和JSP的区别与MVC模式相关推荐

  1. jsp学习(六.MVC模式)

    目录 MVC模式 例子 遇到的一小小问题 MVC模式 MVC模式就是一整构架:模型+视图+控制器 模型就是java bean,视图是jsp页面,控制器是servlet 也就是说我们的servlet作为 ...

  2. Servlet与Jsp的区别

    Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet.而Jsp是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的.Servlet与J ...

  3. mvc模式网页购物车

    本学期学习JSP和Servlet后,老师要求使用MVC模式下编写一个网页购物车,以下是一些主要代码及开发心得 这个是包的截图 先是注册页面,编写一个表单,表单方法调用另一个JSP页面(因为我这个页面是 ...

  4. MVC 模式/Servlet/JSP 编译原理剖析:Servlet 组件到底属于 MVC 模式的哪一层?

    文章目录 前言 一.回忆什么是 MVC 模式? 1.1.Model.View.Controller 组件介绍 1.2.明确 View 与 Controller 组件区别 二.什么是 Servlet? ...

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

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

  6. JSP的MVC模式(JavaBean、Servlet、JSP)

    JSP的MVC模式中,Model=JavaBean,View=JSP,Controller=Servlet. 简而言之:JavaBean用于存储数据,JSP用于显示页面,Servlet用于处理数据(脏 ...

  7. Servlet和JSP之间的区别

    JSP和Servlet都是与使用Java构建基于Web的应用程序有关的重要概念. 基本上,Servlet是Java中HTML,而JSP是HTML中的Java. 任何典型的Web开发面试都可能有几个基于 ...

  8. 小汤学编程之JavaEE学习day03——JSP组成结构、JSP原理、JSP生命周期、JSP九大内置对象、四大作用域、JSP的MVC模式

    一.JSP组成结构 二.JSP的原理 1.JSP的运行原理     2.分析JSP所生成的Servlet代码     3.JSP的执行过程 三.JSP生命周期 四.JSP九大内置对象 五.JSP四大作 ...

  9. JSF,Servlet和JSP有什么区别?

    本文翻译自:What is the difference between JSF, Servlet and JSP? How are JSP and Servlet related to each o ...

  10. JSP开发--MVC模式(三)

    MVC(Model-View-Controller)模式,即模型-视图-控制器模式 MVC1和MVC2模式 JSP+JavaBean+Servlet实现MVC 一:MVC(Model-View-Con ...

最新文章

  1. java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?
  2. Phython—实训day5—爬虫相关知识
  3. openshift 部署_OpenShift Express:部署Java EE应用程序(支持AS7)
  4. JavaFX 2 GameTutorial第4部分
  5. 思品课如何使用计算机教学课件,小学思品获奖论文巧用多媒体,优化思品课堂教学...
  6. php 通过array_merge()和array+array合并数组的区别和效率比较
  7. N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
  8. KVM Tracing, perf_events
  9. 【java】深入了解JAVA可变长度的参数
  10. 查看Android设备的分辨率
  11. Linux系统中搭建Docker容器 Portainer可视化界面
  12. 智能制造,从smart到intelligent
  13. Gerry-自定义报表组件
  14. android 源代码分析 绘制,Android源码分析(View的绘制流程)
  15. JDK 1.4 中打印,
  16. 短租APP开发定制快速搭建
  17. [附源码]JSP+ssm计算机毕业设计校园征兵及退役复原管理系统16z67【源码、数据库、LW、部署】
  18. 一线互联网大厂面试真题系统收录!轻松拿下offer
  19. 记录下我磕磕碰碰的三个月找工作经历,不吃透都对不起自己
  20. Linux 环境部署|Anaconda及Tensorflow

热门文章

  1. 【sklearn第六讲】特征提取(下)
  2. Tensorflow实例,拟合二维数据
  3. Leetcode 720. Longest Word in Dictionary
  4. 页面中,通过css设置文本不能被选中
  5. 自动生成构造方法、getter、setter
  6. 《设计模式》读懂UML类图
  7. Spark 学习(三) RDD基本介绍
  8. Anacond win10安装与介绍
  9. 【原】公司P2P平台的功能拆分
  10. Android环境搭建配置问题(ZT)