论坛网站前置审批,彩视网站建设策划,建设银行环县支行网站,网站开发app开发培训文章目录前言一、回忆什么是 MVC 模式#xff1f;1.1、Model、View、Controller 组件介绍1.2、明确 View 与 Controller 组件区别二、什么是 Servlet#xff1f;2.1、Servlet 的组件定义2.2、Servlet 组件处于 Controller 层#xff1f;三、老师说 Servlet 是 View 层的1.1、Model、View、Controller 组件介绍1.2、明确 View 与 Controller 组件区别二、什么是 Servlet2.1、Servlet 的组件定义2.2、Servlet 组件处于 Controller 层三、老师说 Servlet 是 View 层的四、什么是 JSP4.1、Servlet 是 JSP 的变式五、Servlet 的角色根据应用场景定义5.1、开发中的 MVC 设计框架5.1、完整 MVC 设计框架中不同组件的角色5.2、老师说 Servlet 是 View 层的5.3、纯 JSP 项目中 Servlet 的角色总结前言 今天课下偶然听到有几个同学在讨论这么一个问题Servlet 到底属于 MVC 模式的哪一层谈到这个问题就考察你对于 MVC 模式的熟悉程度了。本篇我们就分别从 MVC 模式、Servlet 和 JSP 的原理来探讨一下Servlet 到底属于哪一层 一、回忆什么是 MVC 模式
首先我们先回忆一下这个经典的软件设计框架——MVC 模式。
这里请注意软件设计模式与软件设计框架的区别软件设计模式是指那经典的 23 个设计模式创建型、行为型、结构型软件设计框架就是 MVC、SSH、SSM 等。 MVCModel VIew Controller是模型、视图、控制器的缩写是一种经典的软件设计框架同时提供了对 HTML、CSS、JavaScript 的支持。 1.1、Model、View、Controller 组件介绍
经典的 MVC 模式整体组件类型的关系和功能如下图所示我们分别来介绍组件类型以及关系 Model模型是应用程序中用于处理数据逻辑的部分即业务模型。用来表示应用程序的核心比如数据库记录字段负责在数据库中存取数据。View视图是应用程序中处理数据显示的部分即用户界面通常视图是依赖模型的数据来创建的模型发生改变视图必须同步更新。Controller控制器是应用程序中处理用户交互的部分。负责从视图中读取数据控制用户的输入并向模型发送数据。
1.2、明确 View 与 Controller 组件区别
现在从 MVC 模式的介绍我们可以明确 View 和 Controller 的区别View 负责数据显示Controller 负责数据和用户的交互。
二、什么是 Servlet
介绍完 MVC 模式那么什么是 Servlet 呢Servlet 又是怎么样的一个组件呢它扮演怎么一个角色呢
2.1、Servlet 的组件定义 Servlet 是用 Java 语言编写的服务器端程序是由服务器端调用执行按照 Servlet 自身规范编写的 Java 类。Servlet 可以处理客户端传来的 HTTP 请求并返回响应。 2.2、Servlet 组件处于 Controller 层
说得通俗点Servlet 就是一个 Java 类里面定义了接收用户请求调用业务类发送响应视图的方法。现在你是不是觉得 Servlet 好像是属于 Controller 层的
三、老师说 Servlet 是 View 层的 Q这个时候可能有人反问为什么我们老师说过说 Servlet 是 View 层的你这说的不对 或者说为什么我们老师说过说 JSP 是 Controller 层的你这说的不对 A别急嘛我们接着往下走再来剖析一下 JSP 的原理。这俩问题我们放在最后面作为总结。 四、什么是 JSP
要分析 Servlet 的角色我们就不得不说一下 JSP什么是 JSP关于 JSP 的基础定义大家早已耳熟能详我就不再赘述。
4.1、Servlet 是 JSP 的变式
JSP 将 Java 代码和特定变动的内容嵌入到静态页面中实现以静态页面为模板动态生成其他部分。JSP 文件在运行的时候编译器会将内嵌的 Java 代码编译成 Java 写的 Servlet 代码JSP 指令通过 JSP 的编译器来控制如何生成 Servlet然后 Java 代码编译为 .class 结尾的中间字节码文件最后转化为二进制的机器码。我们通过 JSP 的内置指令来取代 Java 中即 Servlet中使用out.write();的输出节约大量的代码又能实现页面交互。
更详细的 JSP 编译原理部分建议大家看我之前的博文——JSP 编译原理JSP 是 Servlet如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件
由此我们得出下一个结论JSP 就是 Servlet反过来也可以说 Servlet 就是 JSP。你又要有问题了 Q你这给我搞糊涂了Servlet 到底是什么角色 五、Servlet 的角色根据应用场景定义
我们在项目开发中完整的一个 MVC 设计框架可能会包含很多组件或者同时结合其他的组件我们分别从不同的需求场景来一一介绍。
5.1、开发中的 MVC 设计框架
项目中经常使用的 MVC 模式组件结构以及其功能如下图所示 上图在我们经典的 MVC 结构中进一步进行了细分
View 层负责数据的显示。包括我们看得到的使用 JSP 和 HTML 实现的界面。Cotroller 层负责控制数据和用户的交互。包括我们上面提到的 Servlet。Model 层负责对数据逻辑的处理。包括实体类 POJO封装对象数据、业务层 Service处理数据逻辑信息、持久层 Dao进行数据的 CRUD等组件。
注意在开发中一定要遵循开发规范、框架规范通过 Servlet 来实现交互通过业务层 Service 进行逻辑处理通过持久层 Dao 来执行数据查询。不要把每个组件的顺序和功能搞混否则使用框架也就没有意义了。
5.1、完整 MVC 设计框架中不同组件的角色
在如上图所示的完整的 MVC 设计框架中严格来说Servlet 是属于Controller 层的负责和用户的交互而我们常见的业务层 Service、持久层 Dao、实体类 JavaBean 都是属于Model层的。
5.2、老师说 Servlet 是 View 层的 A好了我们来回答这个问题。 现在你需要返回去看一下上面 4.1 的内容了——JSP 的本质就是 Servlet就是 Java 类Servlet 也就是 JSP说 Servlet 处于 View 层也没大错。但是严格来说 JSP 的主要功能是实现数据信息的显示很少的一部分功能用于实现数据信息的交互处理所以我们通常按照代码规范将 Serlet 作为 Java 代码归为 Controller 层。明白 5.3、纯 JSP 项目中 Servlet 的角色
如果你看的是纯 JSP 的教程可能会直接使用 JSP 硬连数据库而不添加其他的组件那么这个时候就可以说Servlet 是属于 View 层组件。因为仅仅就是使用 JSP 就可以实现简单的增删改查也没有建立 Java 类文件。 总结 本文带领大家回顾了经典的 MVC 软件设计框架辨析了 JSP 与 Servlet 的组件定位明确 Servlet 在 MVC 中是处于 Controller 层在非严格 MVC 模式中也可处于 View 层。通过对于组件角色的定位更深一步了解和掌握 Servlet 与 JSP 的原理掌握 MVC 这个经典的设计框架。我们在之后的框架学习中一切的原理都是围绕这个基础展开的框架仅仅只是为我们提供一个方便的工具基础还是要打牢的。 我是白鹿一个不懈奋斗的程序猿。望本文能对你有所裨益欢迎大家的一键三连若有其他问题、建议或者补充可以留言在文章下方感谢大家的支持