资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JavaWebJavaWeb开发技术开发技术计算机科学技术系计算机科学技术系JavaBean和和MVC设计模式设计模式理解理解JavaBeanJavaBean的基本形式,掌的基本形式,掌握握JavaBeanJavaBean的的概念概念掌握掌握JSPJSP中中JavaBeanJavaBean的使用,即会的使用,即会使用使用JSPJSP标准动作标准动作掌握掌握JavaBeanJavaBean在在JSPJSP中的四种范围中的四种范围JavaBean学习目标2理解理解MVCMVC的优势的优势掌握掌握MVCMVC的应用开发的应用开发在在MVCMVC中会使用中会使用Servlet Servlet 进行程序控制进行程序控制MVC学习目标什么是设计模式?什么是设计模式?如何理解如何理解MVCMVC设计模式?设计模式?为什么需要为什么需要MVCMVC设计模式?设计模式?3组件开发JavaEEJavaEE是基于组件开发是基于组件开发 请求请求ServletJavaBeanJSP页面页面执行执行调用调用转向转向响应响应JSTL使用使用访问访问返回数据返回数据数数数数 据据据据 库库库库客户端客户端4组件开发小孩的积木小孩的积木 积木块积木块组装组装成品成品JavaEE组件组件组件间协作组件间协作应用程序应用程序5利用JavaBean增强JSP1.1.什么是什么是JavaBeanJavaBean?其实就是一个Java类为了提高代码的复用性,完善分布式系统体系为了提高代码的复用性,完善分布式系统体系其实就是为了提高其实就是为了提高Java Java 程序的可复用性,而提出的基程序的可复用性,而提出的基于于JavaJava的软件组织模型的软件组织模型可以利用可以利用JavaBeanJavaBean封装事务逻辑,进行数据库的操作封装事务逻辑,进行数据库的操作等,可以很好地实现业务逻辑和前台程序等,可以很好地实现业务逻辑和前台程序(JSP(JSP文件文件) )的的分离分离62. JavaBean的优点提高代码的可复用性提高代码的可复用性对于通用的事务处理逻辑、数据库操作等都可以封装到JavaBean中,通过调用JavaBean的属性和方法可快速进行程序设计程序易于开发维护程序易于开发维护实现逻辑的封装,使业务处理和显示互不干扰支持分布式运用支持分布式运用多用JavaBean,尽量减少Java代码和HTML的混编7JavaBean介绍 接触过的接触过的JavaBeanJavaBean新闻发布中新闻的一级、二级标题JavaBeanJavaBean的来源的来源Bean:豆子JavaBean是应用程序的组成部分JavaBeanJavaBean的分类的分类封装数据封装业务方法public class SecondLevelTitle public SecondLevelTitle() private int id; private String titleName; private int parentTitleId; private String creator; public int getId() return this.id; public void setId(int id) this.id=id; /其它其它setter、getter方法方法83.开发JavaBean编写编写BeanBean(没有(没有mainmain方法的应用程序)方法的应用程序)默认情况下,编译保存到默认情况下,编译保存到WEB-INFclassesWEB-INFclasses路径下,路径下,JSPJSP文件中即可使用文件中即可使用JavaBeanJavaBean的作用域:的作用域:pagepage、requestrequest、sessionsession、 applicationapplication9如何编写JavaBean?编写编写JavaBeanJavaBean必须满足以下几点必须满足以下几点所有的JavaBean必须放在一个包中JavaBean必须声明为public class类型文件名与类名一致所有的属性必须封装成private类型可以通过setter和getter方法设置属性和取得属性,且类型为public使用JSP标签去调用JavaBean时必须有一个无参构造方法10封装数据的JavaBeanPackage cn.edu.bzu.jw.bean.entitypublic class User private String name;/ 用户名用户名 private String password;/ 密码密码 private String email; / 电子邮件电子邮件 private int id; / IDpublic User() public void setName(String name) this. name = name; public String getName() return name; /其它属性的其它属性的setter、getter方法方法JavaBean - User.java将属性声明为私有属性将属性声明为私有属性无参的公有构造方法无参的公有构造方法公有的设置属性值方法公有的设置属性值方法setXxx( )公有的获取属性值方法公有的获取属性值方法getXxx( )11封装业务的JavaBean业务类业务类 - UserOperation.javapublic class UserOperation public int saveUser(User user) int result = 0; try Connection con = ConnectionManager.getConnction(); String strSql = insert into users(name, password,email) values(?,?,?); PreparedStatement pStatement = con.prepareStatement(strSql); pStatement.setString(1,user.getName(); /设置其它的参数值设置其它的参数值 result = pStatement.executeUpdate(); catch (SQLException sqlE) sqlE.printStackTrace(); finally ConnectionManager.close(pStatement);./关闭资源关闭资源 return result; 把封装好数据的对象作为参数把封装好数据的对象作为参数从对象中取数据从对象中取数据12JavaBean与JSP广义讲广义讲, ,符合规范的符合规范的JavaJava类都类都是是JavaJavaBeanBeanJavaBeanJavaBean的作用的作用封装数据处理业务逻辑JSPJSP与与JavaBeanJavaBean如何结合使用呢?如何结合使用呢?JSP标准动作13为什么需要JSP标准动作通过通过Java Java 脚本使用后台脚本使用后台JavaBeanJavaBean美工难以维护使用使用JSPJSP标准动作标准动作JSP标准动作包括:JSP 标准动作标准动作14JSP中引用JavaBean的语法 /% page %类类名名 实实例化例化对对象名象名 = = newnew 类类名名();();在在JSP中的等价代码中的等价代码15useBean 动作. scope=request/.useBeanuseBean动作创建或者获得一个对象动作创建或者获得一个对象JavaBean JavaBean 的的scopescope设置设置 :创建对象的名称创建对象的名称创建对象的类型创建对象的类型指定对象的范围指定对象的范围范围说明p pageageBean Bean 对象只能在当前页面使用,对象只能在当前页面使用,当加当加载载新新页页面面时时就会被就会被销销毁毁r requestequestBeanBean对象在一个请求过程中存在对象在一个请求过程中存在s sessionessionBeanBean对象在一个会话中存在,直至会话其终止或被删除为止对象在一个会话中存在,直至会话其终止或被删除为止a applicationpplicationBeanBean对象对象在整个应用程序中均可使用在整个应用程序中均可使用16JSP中设置和取得JavaBean属性的语法基本格式:基本格式: /setPropertysetProperty动作设置动作设置JavaBeanJavaBean属性属性在在useBean动作中定义的动作中定义的id,必选,必选设置设置JavaBean的哪个属性,必选的哪个属性,必选指定哪个请求参数或值作为指定哪个请求参数或值作为JavaBean的属性值,可选的属性值,可选getPropertygetProperty动作取得动作取得JavaBeanJavaBean属性属性基本格式:基本格式: /在在useBean动作中定义的动作中定义的id,必选,必选取得取得JavaBean的哪个属性,必选的哪个属性,必选17setProperty和getProperty动作. cope=request/ /.value设置设置 JavaBean 的该属性值的该属性值property指定指定 JavaBean 的属性名称的属性名称 设置设置JavaBeanJavaBean的属性值的属性值 获取获取JavaBeanJavaBean中属性的值中属性的值. / / /.name 属性指定对属性指定对 JavaBean 类类的引用,与的引用,与useBean中的中的id一致一致property指定指定 JavaBean 的属性名称的属性名称name 属性指定对属性指定对 JavaBean 类的引用类的引用18自动匹配设置属性propertyproperty:如果其:如果其值为值为“*”“*”,则则表示所有名字和表示所有名字和beanbean属性名属性名字匹配的字匹配的请请求参数都被求参数都被传递给传递给相相应应的属性的的属性的settersetter方法方法利用了利用了JavaJava的反射机制,根据的反射机制,根据传递传递参数的名称,找到参数的名称,找到JavaBeanJavaBean中的同名属性,自中的同名属性,自动调动调用相用相应应的的settersetter方法方法 /19指定属性名设置属性propertyproperty:可以根据自己的需要:可以根据自己的需要设设置特定属性置特定属性利用了利用了JavaJava的反射机制,根据的反射机制,根据传递传递参数的名称,找到参数的名称,找到JavaBeanJavaBean中的同名属性,自中的同名属性,自动调动调用相用相应应的的settersetter方法方法 /20param的使用 /paramparam:可以指定哪个:可以指定哪个请请求参数作求参数作为为JavaBeanJavaBean的属性的属性值值此种形式比前两种形式灵活,可以根据自己的需要任意此种形式比前两种形式灵活,可以根据自己的需要任意选择选择传递传递的参数的参数21value的使用 /valuevalue:可以根据用:可以根据用户户需要,自己指定需要,自己指定JavaBeanJavaBean的属性的属性值值22JSP标准动作示例使用使用JSP标准标准动作完成用户登录注册功能动作完成用户登录注册功能23showUserLogin.jsp 调用业务调用业务bean中的方法实现用户登录验证中的方法实现用户登录验证获得用户提交数据,并为属性赋值获得用户提交数据,并为属性赋值根据返回结果,进行跳转根据返回结果,进行跳转创创建建JavaBean实例化对象实例化对象24saveUserRegister.jsp 0) % 调用业务调用业务bean中的方法实现用户注册中的方法实现用户注册获得用户提交数据,并为属性赋值获得用户提交数据,并为属性赋值根据返回结果,进行跳转根据返回结果,进行跳转JSP标准动作,转发到标准动作,转发到page属性指定的页面,等价属性指定的页面,等价与与RequestDispatcher对象对象的的forward(request,response)方法方法创创建建JavaBean实例化对象实例化对象25Model I介绍Model IModel I设计模式设计模式JSP+JavaBean(View + Model)Model IModel I和和Model IIModel II的对比的对比Model II即MVC设计模式Model I缺少控制器(Controller),不易维护和扩展Model I适用于开发中、小型项目26设计模式的定义什么是设计模式什么是设计模式是一套被反复使用、多数人知晓的、代码设计经验的总结模式必须是典型问题(不是个别问题)的解决方案设计模式的作用设计模式的作用解决一类问题的成功经验是为了可重用代码、让代码更容易被他人理解、保证代码可靠性27MVC设计模式MVCMVC设计模式设计模式模型 - Model视图 - View控制器 - ControllerMVC 模式模式控制器控制器模型模型视图视图JavaBeanJSPServlet2种流行的编程方式:种流行的编程方式:JSP+JavaBeanJSP+Servlet+JavaBean28MVC设计模式模型:代表应用程序状态和业务逻辑模型:代表应用程序状态和业务逻辑 控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户 视图:提供可交互的客户界面,向客户显示模型数据视图:提供可交互的客户界面,向客户显示模型数据 MVC设计模式的模块组成设计模式的模块组成29MVC的优点 MVC设计模式的优点设计模式的优点各司其职、互不干涉各司其职、互不干涉代码的重用性代码的重用性有利于开发的分工有利于开发的分工MVC 的优点的优点30Web程序的MVC WebWeb容器处理请求过程容器处理请求过程请求请求ServletJavaBeanJSP页面页面执行执行调用调用转向转向响应响应访问访问返回数据返回数据数数数数 据据据据 库库库库客户端客户端JSP视图动视图动态显示数据态显示数据数数数数 据据据据 库库库库Servlet控制器,用控制器,用于接收于接收请求和控制请求和控制应用程序的流程应用程序的流程JavaBean数据数据模型进行业务逻模型进行业务逻辑和访问数据库辑和访问数据库31MVC编程思路 MVCMVC编程思路编程思路执行执行Servlet接收客户端接收客户端请求,并调用业务类请求,并调用业务类的方法进行数据处理的方法进行数据处理Servlet根据数据处理的根据数据处理的结果,控制下一个显示结果,控制下一个显示的的HTML或者或者JSP页面页面ServletJSP页面页面转向转向JavaBean调用调用32
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号