版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 13 章,MVC 设计模式,2,回顾,过滤器是向 Web 应用程序的请求和响应添加功能的 Web 服务组件 过滤器是根据用户的请求和 Web 资源的响应配置的 过滤器生命周期包括的各个阶段分别为:实例化、初始化、过滤和销毁 过滤器定义将过滤器名称与特定类关联起来 过滤器映射用于将过滤器映射到 Web 资源 过滤器定义和过滤器映射用于部署描述符中,3,目标,掌握 Model I体系结构 掌握 Model II体系结构 掌握 MVC 应用程序,4,Model I 体系结构 6-1,Model I 体系结构结合使用 JSP 页面和 JavaBean 来开发 Web 应用程序,应用服务器,响应,J
2、SP页面,JavaBean,数据库 服务器,5,Model I 体系结构 6-2,Model I 体系结构用于开发简单的应用程序,Model I 体系结构包括多个用户可与之交互的页面,客户端能够直接访问加载到服务器上的页面,Model I Web 应用程序由复杂的 Web 逻辑组成,并链接至 Web 应用程序的其他页面,6,Model I 体系结构 6-3,本示例演示 Model I 体系结构。客户输入产品ID时,显示相关产品信息,public void setProductname(String prodname) ductname=prodname; public Stri
3、ng getProductname() return productname; public void setProducttype(String prodtype) ducttype=prodtype; public String getProducttype() return producttype; ,这是一个 JavaBean,它为产品名称和类型定义了各种方法,7,Model I 体系结构 6-4,public class ColProduct . private ConnBean cBean = ConnBean.newInstance(); public Colle
4、ction getProduct(String sql) Collection col = new ArrayList(); try con = cBean.getConnDB(); stmt = con.createStatement(); rs = stmt.executeQuery(sql); while (rs.next() ProductBean product = new ProductBean(); product.setProductname(rs.getString(2); product.setProducttype(rs.getString(3); product.set
5、Productprice(rs.getInt(4); product.setBrand(rs.getString(5); product.setDescription(rs.getString(6); col.add(product); .,这个 JavaBean将数据通过ProductBean放入集合ArrayList,8,Model I 体系结构 6-5,public class ConnBean Connection con = null; private static ConnBean me = new ConnBean(); . public static ConnBean newI
6、nstance() return me; public Connection getConnDB() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newInstance(); con = DriverManager.getConnection(jdbc:odbc:accp, , ); . return con; ,这个 JavaBean实现数据库连接,9,ModelI 体系结构 6-6, ,这个 JSP 页面包含各JSP 操作,可以用来访问 JavaBean 组件对象,10,Model II 体系结构 5-1,Model I 体系结构结合使用
7、 JSP 页面和 JavaBean 来开发 Web 应用程序,11,Model II 体系结构 5-2,设计模式为软件设计问题提供标准的解决方案,Model II 是一种设计模式,MVC 将交互式应用程序组织成三个独立的模块:,应用程序模块,用于表示数据和业务逻辑,数据表示,控制器,用于发送请求和控制应用程序的流程,12,Model II 体系结构 5-3,Model II 体系结构的优点:,可以很灵活地设计 和实现模型对象,使用同一模型处理多个请求,增加新客户端更容易,MVC 的优点,13,Model II 体系结构 5-4,MVC 体系结构的各种对象包括:,MVC 对象,控制器,模型,视图
8、,14,Model II 体系结构 5-5,模型对象 表示 Web 应用程序的数据元素,用户可与这些数据元素进行交互,控制器对象 充当应用程序视图对象和模型对象之间的中间对象,视图对象 提供模型组件以开发用户界面,Model II 体系结构的各种对象包括:,15,基于 MVC 体系结构的应用程序 6-1,MVC 体系结构遵循分层方式,用户使用该方式可将代码分别写入不同的类和方法中。以一个 简单论坛系统的部分功能为例,加以理解,. 标题 . .,这个 JSP提供图形界面用于客户发新贴,16,演示:示例 2,基于 MVC 体系结构的应用程序 6-2,. public class newtopics
9、ervlet extends HttpServlet . public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException . request.setCharacterEncoding(GBK); String title = request.getParameter(title); . DataBaseConn dbBean = DataBaseConn.newInstance(); Connection con = dbBean.g
10、etConnDB(); Statement stmt = con.createStatement(); . /* *把视图派发到viewForum.jsp */ javax.servlet.RequestDispatcher dis = request.getRequestDispatcher( viewforum.jsp); dis.forward(request, response); .,这个 Servlet转发视图,17,基于 MVC 体系结构的应用程序 6-3,. . . 首页 )上一页 .,示例3查看论坛的内容,并且进行分页显示,视图对象,18,基于 MVC 体系结构的应用程序 6
11、-4,public class ForumServlet extends HttpServlet . PageBean page1=new PageBean(); PageBean page2=page1.getResult(String)request.getParameter(jumpPage); /把PageBean保存到request对象中。 request.setAttribute(page2,page2); . /* *把视图派发到view.jsp */ javax.servlet.RequestDispatcher dis=request.getRequestDispatcher
12、(view.jsp); dis.forward(request,response); .,控制器对象,19,基于 MVC 体系结构的应用程序 6-5,. public int getMaxPage() return this.maxPage; public void setCurPage(int curPage) this.curPage = curPage; . while (rset.next() if (i (pageNum - 1) * pageBean.rowsPerPage - 1) Object obj = new Object3; obj0 = rset.getString(2
13、); . public void setPageBean() throws Exception /得到总行数 this.setMaxRowCount(this.getAvailableCount(); if (this.maxRowCount % this.rowsPerPage = 0) /根据总行数计算总页数 this.maxPage = this.maxRowCount / this.rowsPerPage; else this.maxPage = this.maxRowCount / this.rowsPerPage + 1; .,模型对象,20,基于 MVC 体系结构的应用程序 6-
14、6,. public class DataBaseConn Connection con = null; private static DataBaseConn me = new DataBaseConn(); public static DataBaseConn newInstance() return me; public Connection getConnDB() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newInstance(); con = DriverManager.getConnection(jdbc:odbc:accp, , ); . public DataBaseConn() ,演示:示例 3,数据库连接,21,总结 2-1,Model I 和 Model II 体系结构用于开发 Web 应用程序 在 Model I 体系结构中,JSP 页面单独负责开发 Web 应用程序 Model I Web 应用程序由复杂的 Web 逻辑和指向 Web 应用程序中其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026住院医师规培-云南-云南住院医师规培(耳鼻咽喉科)历年参考题库含答案详解
- 2026事业单位笔试-青海-青海微生物(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-甘肃-甘肃整形外科(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-浙江-浙江中西医结合内科(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-宁夏-宁夏针灸推拿(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-内蒙古-内蒙古药物制剂(医疗招聘)历年参考题库含答案详解
- 2026事业单位工勤技能-青海-青海收银员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-陕西-陕西工程测量员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-重庆-重庆园林绿化工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-辽宁-辽宁动物检疫员五级(初级工)历年参考题库含答案详解
- 《老年防烫伤专科护理|安全防护 + 全套护理措施》
- 全国2025年税务师《涉税服务相关法律》考试真题及答案
- 《传感器与检测技术》课件 第六章 磁电感应式和磁敏传感器
- 2025年贵州省检察机关行政检察业务竞赛真题及答案
- 2026年工商联工作选调生试题及答案
- 水电站安全事故应急预案
- 肝病科工作制度
- 新能源汽车电气系统检修 课件 项目一新能源汽车电气系统的认知
- GB/T 36073-2025数据管理能力成熟度评估模型
- 2026甘肃公路交通建设集团校招面试题及答案
- 商务局遴选笔试真题及答案
评论
0/150
提交评论