Servlet和JSP的集成-MVC

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于JAVA的web程序设计 的 基于 程序设计
引入(2-1) 引入( ) 设计方案: 设计方案:
html页面实现登录表单 页面实现登录表单
<html> <head> <title>用户登陆 用户登陆</title> </head> 用户登陆 <body> <h2>用户登录 用户登录</h2> 用户登录 <form name="form1" action="login" method="post" > 用户名: 用户名:<input type="text" name="username"> <br> 口令: 口令:<input type="password" name="userpass"><br> <input type="reset" value="重置 重置"> 重置 <input type="submit" value="提交 提交"><br> 提交 </form> </body> </html>
• 由bean进行数据管理:将结果存储在 进行数据管理: 进行数据管理 将结果存储在bean中 中 • 由普通 由普通Java类实现业务逻辑处理 类实现业务逻辑处理
页面显示最后的结果(视图输出 由JSP页面显示最后的结果 视图输出 页面显示最后的结果 视图输出)
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(2-1) 模型 视图-控制器 简介( ) 视图 控制器 简介 不同JSP构造的应用 不同 构造的应用
简单 • 脚本元素直接调用 脚本元素直接调用servlet代码 代码 应用
• 脚本元素间接调用 脚本元素间接调用servlet代码(通过实用工 代码( 代码 具类) 具类) • bean • servlet/JSP的组合 的组合(MVC) 的组合
bean典型的做法:使用JSP来简化 典型的做法:使用 来简化HTML内容 典型的做法 来简化 内容 的开发与维护
• 简单的动态代码:使用由脚本元素调用servlet代码 简单的动态代码:使用由脚本元素调用 代码 来完成 • 稍微复杂一些的应用:则可使用脚本元素调用定制 稍微复杂一些的应用: 的类来完成 • 比较复杂的应用:则使用 比较复杂的应用:则使用bean和定制标签 和定制标签
模型-视图 控制器(MVC)简介(1-3) 模型 视图-控制器 简介( ) 视图 控制器 简介 MVC的基本架构 的基本架构
MVC是Model-View-Controler的简称(模型 视 是 的简称( 的简称 模型-视 控制器) 图-控制器) 控制器 Model—代表了数据对象 代表了数据对象 View—用来在屏幕上显示数据对象的当前状态, 用来在屏幕上显示数据对象的当前状态, 用来在屏幕上显示数据对象的当前状态 是应用程序的外观 Controller—定义了用户接口对用户输入反应 定义了用户接口对用户输入反应 的方式, 的方式,它处理数据对象
定义bean来表示数据 来表示数据 定义 使用servlet接受用户请求参数 接受用户请求参数 使用
• servlet读取请求参数,检查数据的缺失或异常等 读取请求参数, 读取请求参数
调用业务逻辑完成相应功能, 调用业务逻辑完成相应功能,并把结果存储到 bean中 中
• 该servlet调用业务逻辑(与具体应用相关的代码) 调用业务逻辑( 调用业务逻辑 与具体应用相关的代码) 或数据访问代码得到最终的结果; 或数据访问代码得到最终的结果;得出的结果被放 在第一步中定义的bean中 在第一步中定义的 中
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
引入(1) 引入( ) 问题描述: 问题描述:
简单的用户登录
• 通过用户登录表单输入用户名和密码 • 比较用户名与密码,若两者一致,并且不为空串 比较用户名与密码,若两者一致, 则进入欢迎界面 否则进入错误提示界面
浙江工业大学 软件学院
浙江工业大学 软件学院
<!-- html -->
基于JAVA的web程序设计 的 基于 程序设计
引入(2-2) 引入( ) 设计方案: 设计方案:
JSP或Servlet页面实现对表单数据的处理 或 页面实现对表单数据的处理
/***Servlet***/ String username = request.getParameter("username"); String userpsw = request.getParameter("userpass"); username.equals(userpsw) if( username.equals(userpsw) ){ out.println( "<HTML>\n" + "<HEAD><TITLE>success</TITLE></HEAD>\n"+ "<BODY BGCOLOR=\"#FDF5E6\">\n" + " <H1> " + username + "您好!欢迎登录!</H1>\n" + 您好! 您好 欢迎登录! "</BODY></HTML>"); }else{ …… //输出错误提示界面 } 输出错误提示界面
第一桌 点菜 第二桌 服务员 ……. 第n桌 桌 厨师 服务员 烧菜 上菜 龙井虾仁,老鸭煲, 龙井虾仁,老鸭煲,……. , 黑鱼二吃,香菇青菜, 黑鱼二吃,香菇青菜,……. , ……. 鱼香肉丝,紫菜汤, 鱼香肉丝,紫菜汤,…….
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
必须采用复杂的框架
• 框架有时很有用:Struts、JavaServer Faces (JSF) 框架有时很有用: 、 • 但并非必需:对大多中小型应用来说,使用内建的 但并非必需:对大多中小型应用来说, RequestDispatcher 就能够很好地实现 就能够很好地实现MVC。 。
MVC影响整个系统的设计 影响整个系统的设计
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(2-4) 模型 视图-控制器 简介( ) 视图 控制器 简介 JAVA WEB应用中的 应用中的MVC方案 应用中的 方案
负责任务调度和流向控制: 由servlet负责任务调度和流向控制:处理最初 负责任务调度和流向控制 的请求,查找数据, 的请求,查找数据,转发请求 由Java类构建模型 类构建模型
• 将MVC思想应用于系统设计 思想应用于系统设计 • 可以将它认为是 可以将它认为是MVC方案(而非MVC框架),也被 方案(而非 框架), 方案 框架),也被 称为是模型 模型2方案 称为是模型 方案
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
实现MVC(1-1) 用RequestDispatcher实现 实现 ( ) MVC模式下的系统设计 模式下的系统设计
SERVLET JSP
可以HTML方式编写页 能灵活高效地执行许多 可以 方式编写页 任务(如操作HTTP状态 面,可以通过 可以通过JSP语法 状态 语法 优点 任务(如操作 码和报头、使用cookie、 插入简单 码和报头、使用 、 插入简单JAVA代码 代码 跟踪会话等) 跟踪会话等) 生成HTML十分冗长, 十分冗长, 十分冗长 缺点 生成 并且难以修改 控制WEB应用程序流程 应用程序流程 适用 控制 场合 插入大量JAVA代码十 代码十 插入大量 分复杂, 分复杂,并难以控制 页面显示
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
引入(3-1) 引入( ) 问题描述: 问题描述:
若使用Servlet页面实现对表单数据的处理, 页面实现对表单数据的处理, 若使用 页面实现对表单数据的处理 则很难对动态输出界面进行设计调整 若JSP或Servlet页面实现对表单数据的处理, 或 页面实现对表单数据的处理, 页面实现对表单数据的处理 则不适合实现复杂的判断逻辑 其他问题: 其他问题:
基于JAVA的web程序设计
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
主要内容
1 2 3 4 5
引入 模型-视图 控制器 模型 视图-控制器 视图 控制器(MVC)简介 简介 RequestDispatcher实现 实现MVC 用RequestDispatcher实现MVC MVC实例 实例 数据共享策略
模型-视图 控制器(MVC)简介(2-5) 模型 视图-控制器 简介( ) 视图 控制器 简介 MVC方案( WEB应用程序的分工问题) 方案( 应用程序的分工问题) 方案 应用程序的分工问题
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(3) 模型 视图-控制器 简介( ) 视图 控制器 简介 对MVC的误解 的误解
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(1-4) 模型 视图-控制器 简介( ) 视图 控制器 简介 MVC的历史 的历史
提出时间:1979(1980被用于 被用于Smalltalk-80) 提出时间 被用于 创建人: 创建人 Trygve Reenskaug 所在公司:施乐帕罗奥多研究中心 所在公司 施乐帕罗奥多研究中心(Xerox Palo 施乐帕罗奥多研究中心 Alto Research Center),是许多现代计算机技术 , 的诞生地,例如:个人电脑、激光打印机、 的诞生地,例如:个人电脑、激光打印机、图 形用户界面、 形用户界面、Smalltalk、下拉菜单等。 、下拉菜单等。 意义: 奠定了图形用户接口(Graphical User 意义 奠定了图形用户接口 Interface, GUI)软件设计模式基础 软件设计模式基础
模型-视图 控制器(MVC)简介(1-1) 模型 视图-控制器 简介( ) 视图 控制器 简介 什么是MVC 什么是
MVC构架是是一个著名的用户界面设计架构 构架是是一个著名的用户界面设计架构 MVC模式实现了功能模块和显示模块的分离 模式实现了功能模块和显示模块的分离
• 为不同用户定制 为不同用户定制UI • 同样的信息可以在不同的窗口显示 • 非常容易修改 ,并且其修改不改变内在功能结构 非常容易修改UI,
连同JSP表达式语言 连同 表达式语言 复杂 • MVC连同 应用 • 定制标签
浙江工业大学 软件学院
Biblioteka Baidu
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(2-2) 模型 视图-控制器 简介( ) 视图 控制器 简介 为什么要组合使用Servlet & JSP 为什么要组合使用
• 若输入错误时返回表单页面,并提示错误? 若输入错误时返回表单页面,并提示错误? • 若增加注册页面,并增加注册判断逻辑? 若增加注册页面,并增加注册判断逻辑? • 若只有注册用户才能浏览主要页面? 若只有注册用户才能浏览主要页面? • 若要改变判断逻辑? 若都要改回来 若要改变判断逻辑? 若都要改回来……
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
引入(3-2) 引入( )
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
引入(3-3) 引入( ) Software Life Cycle
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
但这些是不够
• 复杂的处理过程,从JSP开始做起会难以处理 复杂的处理过程, 开始做起会难以处理
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(2-3) 模型 视图-控制器 简介( ) 视图 控制器 简介 Servlet & JSP的优缺点 的
MVC模式提高了应用系统的可维护性、可扩展 模式提高了应用系统的可维护性、 模式提高了应用系统的可维护性 性、可移植性和组件的可复用性
浙江工业大学 软件学院
基于JAVA的web程序设计 的 基于 程序设计
模型-视图 控制器(MVC)简介(1-2) 模型 视图-控制器 简介( ) 视图 控制器 简介 MVC方案(饭店吃饭问题) 方案(饭店吃饭问题) 方案
相关文档
最新文档