当前课程知识点:Web后端开发技术 > 第9章 某高校毕业生信息发布系统开发 > 9.1 技术准备 > 9.1.1技术准备-MVC模式
同学们好
欢迎回来继续学习Web后端开发技术
在这一小节当中
我们将介绍mvc模式
mvc模式它是一种体系结构
包括 model View 和Controller
每个部分都有各自的功能和作用
他们以最少的耦合进行协同的工作
它的目的是提高应用程序的可扩展性
和可维护性
下面我们看一下MVC模式的工作过程
由视图层发起请求
那么这个请求被发送到Controller
Controller会根据请求选择
或者说调用model
然后根据数据处理的结果来选择合适的视图
那么这个视图是要被返回给客户端的
那么在返回之前视图要向model
进行数据的查询
model将数据返回给视图以后
最后将结果响给客户端
那么这就是mvc的工作过程
在mvc模式下面
共计分为三层
第1层是模型层
它是系统的核心
分为数据模型和业务模型
数据模型负责用户数据和
数据库操作后的数据的封装
业务模型负责对业务逻辑的封装
视图层负责应用层的外观
实现与用户的交互
控制层
它控制整个系统的逻辑
介于模型层和视图层之间
进行数据的流程转向和控制
相当于一个调度
那么在java web开发当中
有两大类模式
下面我们逐一介绍一下
第1类是model1模式
在这model1模式下面有两种
第1种是jsp模式
我们看这张图
jsp的工作模式是这样的
当客户端发送请求的时候
那么这个请求被递交到jsp然后由
JSP实现与数据库之间的数据交互
数据
返回给jsp以后
jsp将响应结果直接返回客户端了
那么在这种模式下
jsp它的作用是既包含了
model层
也包含了显示
还包含了控制层
那么这种模式在开发当中
它具有以下的优点
开发的这个时间比较短
小幅度的修改是比较容易的
但是它有很大的缺点
程序的可读性比较差
这个代码可用可重用性比较低
因为在JSP文件当中
混合了Java代码和HTTP代码
所以它具有这样一些缺点
为了改进缺点
在jsp和数据库之间
我们增加了JavaBean
那么这种模式就叫
jsp加JavaBean这种模式
那么在这种模式下
客户端发送的请求被递交到
JSP以后
由JSP通过JavaBean
实现与数据库之间的数据交互
最后还是由JSP将结果返回给
客户端
那么在jsp加JavaBean
这种模式下
javaBean的作用
相当于一个 model
而jsp的作用包含了控制和视图
那么这种模式它有哪些优点呢
第1个优点就是它的程序
可读性提高了
Java代码与页面分离
易于维护
可重用性提高了
它的缺点就是缺少流程控制
为了进一步改进
就有了 model2模式
model2模式
实际上就是 mvc模式
下面我们把model2模式的工作过程
给大家做一个进一步的介绍
浏览器发送请求
那么这个请求被递交到
servlet上面
而不是被递交到JSP上面
然后servlet的会向
JavaBean
进行数据的调用
javaBean进而与数据库之间
实现数据的交互
根据 JavaBean的数据处理结果
Servlet会选择合适的视图
那么这个视图要被返回给客户端
那么在返回客户端之前
视图会向模型层请求数据
最后才将这个结果响应给客户端
那么这就是model2的工作模式
在开发过程当中
我们主要是使用这种 model2模式
也就是MAC模式进行软件开发的
所以这个工作过程希望同学们能够
进一步去理解
在开发当中尝试着去用
那么这种模式它有哪些优点
第1个
开发流程更为明确
页面显示与业务处理是分离的
第2个程序
管控核心化
servlet集中控制每个请求的流程
servlet就是一个controller
它的作用就相当于我们公交公司的
调度一样
第3个优点
是容易维护
缺点
在某种意义上我们把它认为是缺点
是开发周期长
要求开发人员具有较好的系统设计能力
下面我们使用model2来演示一下
用户注册这个功能
那么是用户注册功能所涉及到的几个组件
下面我把这个过程给大家做一下简单的介绍
通过 register
jsp的页面
发起注册的请求
那么这请求对递交到userServlet上面
那么userServlet会创建一个
userBean对象
通过userBean调用DBUtil对象
实现与数据库之间的数据交互
这里面指的就是去查询数据库
数据库当中有没有已经存在的用户名
如果没有那么这是一个成功的数据库的
记录的添加操作
然后就由servlet
响应success.jsp页面
那么JSP页面是要返回给客户端的
那么在返回客户端的时候
jsp界面还会调用userBean
就是 JavaBean
来获取数据
以便在客户端显示一些用户的信息
下面我们看一下相关的代码
这个是servlet的代码
简单的把这个代码
给同学们做一个介绍
首先这里面new了一个userBean
那么userBean就是一个
JavaBean 它里面有用户名
密码和EMAIL
接下来它要作用
做的事情是调userBean的方法
来验证表单它的有效性
比如用户名和密码是否符合某些规则
如果验证失败的话
那么就做一个 forward
同时将相关的信息放在
request域中
以便在试图能够看到
如果验证成功的话
就进行下面的操作
什么操作呢 向数据库添加记录了
那么向数据库添加记录的时候
它也是调用 JavaBean的一个方法
向数据库来添加记录
如果添加记录的时候
数据库已经存在了这样一个用户名
这里面
添加记录就会失败
当添加记录失败的时候
它也做一个forward的动作
然后将错误的信息放在
request域
携带过去
如果添加记录成功
接下来他就要做什么呢
获得一个session
然后向session当中存一个名为这个
值为这样一个属性
接下来它做一个页面的重定向
重定向到success页面上去
那么在success jap界面上面
它会通过一个EL表达式获取属性的
userName的值
在页面上显示
欢迎您某某登录
我们再看一下
register.jsp
在这个文件当中
它上面是用forEach
把错误的信息显示出来
下边就是一个form表单
那么form表单我们看到提交的时候是
提交到刚才我们讲到了userServlet上面去
那么这就是一个使用mvc模式
开发的一个用户注册的功能
希望同学们在以后的开发过程当中
使用这种模式来开发我们的web应用
好
我们这一小节就讲到这里
再见
-1.0 导学
--1.0.1 导学
-1.1 Web应用开发概述
--1.1.3 测试
-1.2 准备Java Web应用开发环境
--1.2.2 测试
-1.3 任务实现:Hello World Web项目
--1.3.2 测试
-1.4 小结
--1.4.1 小结
-本课程所有代码
--课程参考代码
-2.0 导学
--2.0.1 导学
-2.1 Servlet概述
--2.1.3 测试
-2.2 创建Servlet
--2,2,3 作业
-2.3 Servlet应用
--2.3.4 测试
-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)
--2.4.3 测试
-2.5 ServletConfig接口
-2.6 ServletContext接口
-2.7 HttpServletRequest接口
--2.7.5 测验
-2.8 HttpServletResponse接口
--2.8.3 测试
-2.9 任务实现:某高校毕业生信息发布系统-简历添加
--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加
-2.10 小结
-动画演示:Java Web应用服务器处理客户端请求的过程
-3.0 导学
--3.0.1 导学
-3.1 Cookie技术
--3.1.3 测试
-3.2 Session技术
--3.2.2 Session技术-Session技术应用购物车
--3.2.3 测试
-3.3 URL重写与隐藏表单域
--3.3.2 测试
-3.4 任务实现:某高校毕业生信息发布系统-简历修改
--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改
-3.5 小结
--3.5.1 小结
-4.0 导学
-4.1 jsp概述
--4.1.2 测试
-4.2 脚本元素
--4.2.2 测试
-4.3 指令元素
--4.3.2 测试
-4.4 动作元素
--4.4.3 测试
-4.5 内置对象
--4.5.3 测试
-4.6 JavaBean
--4.6.3 测试
-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)
--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)
-4.8 小结
--4.8.1 小结
-5.0 导学
--5.0.2 测试
-5.1 el语法
--5.1.2 测试
-5.2 el隐含对象
--5.2.2 测试
-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.2 测试
-5.4 小结
--5.4.1 小结
-6.0 导学
--6.0.2 测试
-6.1 核心标签库
--6.1.5 测试
-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.2 测试
-6.3 小结
--6.3.1 小结
-7.0 导学
--7.0_导学
-7.1 过滤器
--7.1.3 测试
-7.2 监听器
--7.2.1.1与ServletContext相关的监听器
--7.2.4 测试
-7.3 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.2 测试
-7.4 小结
--7.4.1小结
-8.0 导学
--8.0_导学
-8.1 JDBC API
--8.1.2 测试
-8.2 JDBC API访问MySQL基本步骤
--8.2.2 测试
-8.3 任务实现:某高校毕业生信息发布系统-注册与登录
--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)
--8.3.2 测试
-8.4 小结
--8.4.1小结
-9.0导学
--9.0导学
-9.1 技术准备
--9.1.5 测试.
-9.2 系统设计
-9.3 系统实现
-9.4 小结
--9.4.1小结



