




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2讲基于Servlet JavaBean Jsp开发应用的过程 第2讲基于Servlet JavaBean Jsp开发应用的过程 本讲主要介绍主流的javaweb编程技术 设计模式和框架 以及如何利用Eclipese开发Web应用程序 要点 1 JavaWeb编程的主要组件技术 2 MVC设计模式 3 用Eclipse构建一个基于MVC模式的JavaWeb的应用程序 目的 掌握如何用Eclipse构建一个基于MVC模式的JavaWEB的应用程序 2 1javaweb编程的主要组件技术 HtmljspServletJavabeanJdbcXmlTomcatMySQL 2 2MVC设计模式 今天 我们见到的绝大部分应用 都是基于B S 浏览器 服务器 架构的 其中的服务器就是Web服务器 可见 Web应用是目前广泛使用的应用模式 Web程序开发方法的发展 JSP的Model1JSP的Model2MVC 1Model1和Model2 对于Java的动态Web编程技术而言 则经历了Model1和Model2时代 Model1 Model1就是JSP大行其道的时代 在Model1模式下 整个Web应用几乎全部由JSP页面组成 JSP页面接收处理客户端请求 对请求处理后直接做出响应 用少量的JavaBean来处理数据库连接 数据库访问等操作 Model2 Model2下JSP不再承担控制器的责任 它仅仅是表现层角色 仅仅用于将结果呈现给用户 JSP页面的请求与Servlet 控制器 交互 而Servlet负责与后台的JavaBean通信 在Model2模式下 模型 Model 由JavaBean充当 视图 View 由JSP页面充当 而控制器 Controller 则由Servlet充当 Model1的程序流程 特点 由JSP页面组成 JSP页面接收处理客户端请求 对请求处理后直接做出响应 用少量的JavaBean来处理数据库连接 数据库访问等操作 Model2的程序流程 基本上是MVC结构 特点 Model2下JSP不再承担控制器的责任 它仅仅是表现层角色 仅仅用于将结果呈现给用户 JSP页面的请求与Servlet 控制器 交互 而Servlet负责与后台的JavaBean通信 在Model2模式下 模型 Model 由JavaBean充当 视图 View 由JSP页面充当 而控制器 Controller 则由Servlet充当 2Model1和Model2的比较 对于非常小型的Web站点 如果后期的更新 维护工作不是特别大 可以使用Model1的模式来开发应用 而不是使用Model2的模式 虽然Model2提供了更好的可扩展性及可维护性 但增加了前期开发成本 从某种程度上讲 Model2为了降低系统后期维护的复杂度 却导致前期开发的更高复杂度 3MVC思想 MVC并不是Java语言所特有的设计思想 也并不是Web应用所特有的思想 它是所有面向对象程序设计语言都应该遵守的规范 MVC思想将一个应用分成三个基本部分 Model 模型 View 视图 和Controller 控制器 这三个部分以最少的耦合协同工作 从而提高应用的可扩展性及可维护性 MVC MVC M model 是指数据模型 V View 是指用户界面 C Control 则是控制器 使用MVC的目的是将M和V的实现代码分离 从而使同一个程序可以使用不同的表现形式 模型 视图与控制器的分离 使得一个模型可以具有多个显示视图 如果用户通过某个视图的控制器改变了模型的数据 所有其它依赖于这些数据的视图都应反映到这些变化 因此 无论何时发生了何种数据变化 控制器都会将变化通知所有的视图 导致显示的更新 这实际上是一种模型的变化 传播机制 模型 视图 控制器3者之间的关系和各自的主要功能 MVC的组成部分 视图 View 代表用户交互界面 对于Web应用来说就是HTML界面 模型 Model 就是业务流程 状态的处理以及业务规则的制定 控制 Controller 可以理解为一个分发器 他来决定选择什么样的模型 选择什么样的视图 可以完成什么样的用户请求 控制层并不做任何的数据处理 MVC带来的好处 MVC从根本上强制性的将它们分开 最大程度上实现了程序代码与网页的分离 数据和业务规则从表示层分开 所以可以最大化的重用代码 MVC的特点 MVC特点 多个视图可以对应一个模型 按MVC设计模式 一个模型对应多个视图 可以减少代码的复制及代码的维护量 一旦模型发生改变 也易于维护 模型返回的数据与显示逻辑分离 模型数据可以应用任何的显示技术 例如 使用JSP页面 Velocity模板或者直接产生Excel文档等 应用被分隔为三层 降低了各层之间的耦合 提供了应用的可扩展性 控制层的概念也很有效 由于它把不同的模型和不同的视图组合在一起 完成不同的请求 因此 控制层可以说是包含了用户请求权限的概念 MVC更符合软件工程化管理的精神 不同的层各司其职 每一层的组件具有相同的特征 有利于通过工程化和工具化产生管理程序代码 4常用的MVC框架 Struts 包括struts1和struts2两个 JSF JSF是一个标准 目前 JSF是作为JEE5 0的一个组成部分 与JEE5 0一起发布JSF的行为方法在POJO中实现 JSF的ManagedBean无需继承任何特别的类 因此 无需在表单和模型对象之间实现多余的控制器层 JSF中没有控制器对象 控制器行为通过模型对象实现 JSF的事件框架可以细化到表单中每个字段 JSF依然是基于JSP Servlet的 仍然是JSP Servlet架构 因而学习曲线相对简单 2 3用Eclipse构建一个基于MVC模式的JavaWeb应用程序 题目要求 1 技术要求 按照MVC设计模式 利用JSP Servlet及JavaBean构建一个简单的登录系统 2 系统功能要求 当用户在登录页面上填写用户名和密码并提交后 系统检查该用户是否已经注册 若注册 系统进入主页面 否则 进入注册页面 系统的工作流程见下图 2 控制器 1LoginServlet 1 登录页面Login jsp 5 数据组件userdoadb op 6 数据库MySQL 进行验证 不符合格式 返回注册页面 重新注册 并提示出错情况 注册成功 进入登录页面 未注册 登录系统的工作流程 3 提示 登录成功Main jsp 过20秒后再自动进入注册页面 4 进入注册页面Register jsp 7 控制器 2RegisterServlet 8 提示 注册失败Register err jsp 过20秒后再自动进入注册页面 9 注册成功Register succ jsp 过20秒后再自动进入注册页面 已注册 或者 密码错误 10 进入主页面Main2 jsp 构建系统的处理步骤 1 数据库设计 构建数据库表T UserInfo 2 在Eclipse中创建一个项目 Login Proj 3 构建视图组件 登录页面 login jsp 主页面 main jsp 注册页面 register jsp 注册失败 Register err jsp 注册成功 Register succ jsp 4 构建控制层组件 一个servlet LoginServlet java 实现登录的控制一个servlet RegisterServlet Java 实现注册的验证控制 5 构建业务逻辑层组件 模型组件 一个JavaBean user doa db op 6 部署该程序到服务器Tomcat中 然后运行 1 数据库设计 构建数据库表T UserInfo 利用MySQL数据库 创建数据库 user创建表及其结构 T UserInfo 数据表结构T UserInfo 注意 该数据库所存放的位置 2 在Eclipse中创建一个项目 Login Proj 按Eclipse建立工程的提示 建立Web工程 工程的名称为 Login Proj 3 构建视图组件 登录页面 login jsp 选中工程 Login Proj 击右键 选 新建 按Eclipse的提示 建立jsp 名称为 Login 修改默认jsp内容 达到我们所要求的编码 login jsp的代码 登录页面用户名 密 3 构建视图组件 主页面 main jsp 选中工程 Login Proj 击右键 选 新建 按Eclipse的提示 建立jsp 名称为 main jsp 修改默认jsp内容 达到我们所要求的编码 main jsp代码 主页面 你成功登录 20秒后自动进入主页面 类似可以建立其它的页面 系统页面main2 jsp注册页面register jsp注册失败提示页面Register err jsp注册成功提示页面Register succ jsp 构建控制层组件 第4步 建立数据JavaBean 用户 user 建立连接数据库的JavaBean doa 建立实现对用户数据库进行操作的java类 db op java 4 1建立数据JavaBean 用户 user packageJavaBean publicclassuser privateStringusername privateStringpassword publicStringgetUsername returnusername publicvoidsetUsername Stringusername this username username publicStringgetPassword returnpassword publicvoidsetPassword Stringpassword this password password 4 2建立连接数据库的JavaBean doa packageJavaBean publicclassdoa privateStringdb username privateStringdb password privateStringdb driver privateStringdb connection publicStringgetDb username returndb username publicvoidsetDb username Stringdb username this db username db username publicStringgetDb password returndb password publicvoidsetDb password Stringdb password this db password db password publicStringgetDb driver returndb driver publicvoidsetDb driver Stringdb driver this db driver db driver publicStringgetDb connection returndb connection publicvoidsetDb connection Stringdb connection this db connection db connection 4 3在JavaBean doa 的基础上 建立实现对用户数据库进行操作的java类 db op java publicclassdb op publicConnectiondb getConnection Connectionconn null Stringdb username null Stringdb password null Stringdb driver null Stringdb connection null Propertiespro newProperties Filefile newFile H web 15 Login Proj src db properties try pro load newFileInputStream file catch Exceptione e printStackTrace db username pro getProperty db username db password pro getProperty db password db driver pro getProperty db driver db driver db connection pro getProperty db connection db connection try Class forName db driver newInstance conn DriverManager getConnection db connection db username db password returnconn catch Exceptione System out println e returnnull 实现数据库的连接 publicbooleanselect 1 useru 查询用户是否已经注册Connectionconn null ResultSetrs null Statementps null Stringxm u getUsername Stringpass u getPassword conn db getConnection Strings1 select fromT userInfowhereusername xm andpassword pass try ps conn createStatement rs ps executeQuery s1 if rs next rs close ps close conn close returntrue else rs close ps close conn close returnfalse catch SQLExceptione returnfalse publicbooleanselect 2 Stringu 在注册时 查询是否有重名的用户已经注册Connectionconn null ResultSetrs null Statementps null conn db getConnection Strings1 select fromT userInfowhereusername u try ps conn createStatement rs ps executeQuery s1 if rs next rs close ps close conn close returntrue else rs close ps close conn close returnfalse catch SQLExceptione returnfalse publicvoidappend useru 注册时 添加注册用户信息Connectionconn null Statementps null conn db getConnection Stringxm u getUsername Stringpass u getPassword Strings1 insertintoT userInfo username password values xm pass try ps conn createStatement ps executeUpdate s1 ps close conn close catch SQLExceptione System out println e 5 构建控制层组件 第5步 5 1一个servlet LoginServlet java 实现登录的控制5 2一个servlet RegisterServlet Java 实现注册的验证控制5 3web xml配置文件的解读 5 2构建控制层组件 一个servlet registerServlet java publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException Stringxm String request getParameter username Stringmm String request getParameter password Stringmm2 String request getParameter repassword Stringtype err db opb newdb op if b select 2 xm type err xm 该用户已经注册 HttpSessions request getSession true s setAttribute type err type err response sendRedirect Register err jsp elseif mm equals mm2 type err 两次密码不一致错 HttpSessions request getSession true s setAttribute type err type err response sendRedirect Register err jsp else HttpSessions request getSession true s setAttribute username xm s setAttribute password mm useru newuser u setUsername xm u setPassword mm db opd newdb op d append u response sendRedirect Register succ jsp 5 1构建控制层组件 一个servlet LoginServlet java publicvoiddoGet HttpServletRequestrequest HttpServletResponseresponse throwsServletEx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论