收藏 分销(赏)

应用开发教程整本书课件电子教案全套课件教学教程.pptx

上传人:精*** 文档编号:8897752 上传时间:2025-03-07 格式:PPTX 页数:329 大小:11.54MB 下载积分:20 金币
下载 相关 举报
应用开发教程整本书课件电子教案全套课件教学教程.pptx_第1页
第1页 / 共329页
应用开发教程整本书课件电子教案全套课件教学教程.pptx_第2页
第2页 / 共329页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,2021/6/4,#,JavaEE,实用教程,第,1,章,Java EE,基础,学习目标,1,理解,JavaEE,技术概念,2,熟悉,Java EE,技术体系,3,理解,JavaEE,开发基本原理,4,掌握,Java EE,的开发环境的安装、配置方法。,本章内容:,1 Java EE,概念,2 Java EE,特点,3 Java EE,的开发环境,4 MyEclipse,使用,1.1Java EE,简介,Java EE,是目前广泛使用的企业级应用开发技术架构,以其稳定的性能,良好的开放性及严格的安全性而著称。对于信息化要求较高的证券,电信,银行等行业中都有广泛的应用。,Java,语言是,Java EE,开发的基础,整个,Java EE,都是构建在,Java,基础之上,掌握好,Java,语言,对于学习,Java EE,是非常有必要的。,Java,技术系列的三个版本,Java,技术系列一共有三个版本,分别是:,1JavaSE,:,Java Standard Edition,,,Java,标准版,适用于,Java,小程序和独立桌面应用程序开发。,2Java EE,:,Java Enterprise Edition,,,Java,企业版,适用于服务器端程序和企业应用软件的开发。,3JavaME,:,Java Micro Edition,:,Java,微型版,适用于小型设备、独立设备、互联网设备、嵌入式设备的程序开发。,Java EE,Java SE,Java ME,JVM,CVM/KVM,1.1.1,什么是,Java EE,什么是,JavaEE?,从技术开发的角度来看,,JavaEE,并不是某一种技术,而是基于,Java,的专为解决企业应用的技术架构,即,Framework,。,Java EE,的核心是一组技术规范与指南,它使开发人员能够开发具有可移植性、安全性和可复用的企业级应用。,Java EE,基于标准的平台框架。,是用于开发、部署和管理,N,层结构、,面向,Web,的,以服务器为中心的企业级应用,。,JavaEE,良好定义和设计的体系结构保证了开发人员更多地将注意力集中于架构设计和业务逻辑上。,2,、学习,Java EE,有较好的前景,从,TIOBE 2016,年,11,月主流开发语言调查结果可知,,Java,仍然是使用率第一的主流开发,程序设计语言,,Java,语言主要应用在,Java EE,和,Android,两个方向,且很多大型网站都采用,Java EE,开发,如淘宝网,,等。,Java EE,也有较好的就业前景,和不错的薪酬待遇,根据权威招聘类网站的,Java,相关职位检索数据为例,仅北京每周都有,1,万多个,且待遇较好。,3,、,Java EE,技术体系,Java EE,可分为重量级和轻量级开发两类,重量级即传统的,EJB(Enterprise JavaBean),技术为代表应用开发,其中包含技术有,EJB,、,JPA,、,JSF,、,RMI,、,JavaIDL,等,应用服务器有:,Websphere,、,Weblogic,、,Glassfish,等,其性能稳定功能全面,结构如图所示,重量级的,Java EE,性能稳定功能全面,但开发成本较高,周期较长,一般只有大型企业才能承担得起。,学习,Java EE,技术路线,(1)JSP,基础,(2)JSP+JavaBean,(3)JSP+JavaBean+Servlet,(4)JSP+Struts+JavaBean,(5)JSP+Struts+Hibernate,(6)Spring+Struts+Hibernate,1.2 Java EE,开发环境配置,Java EE,开发需要安装,Java,运行环境,JDK,,,IDE,工具,和服务器等。首先需要安装的就是,JDK,,,JDK,是开发及运行,Java,程序的基础平台。,1,安装,JDK,,配置,JDK,环境变量,2,安装,Tomcat,3,安装,MyEclipse,1.2.1 JDK,安装,在浏览器中地址栏中输入:,C:Program FilesJavajdk1.8.0_121;”,,变量值由三部分构成,“,”,表示在当前目录下寻找,“,;”,表示不同路径分隔符,,C:Program FilesJava jdk1.8.0_121bin,表示在该目录下寻找。,1.2.2 Tomcat,安装与配置,打开浏览器输入地址:,tomcat.apache.org/download-80.cgi,,进入,Tomcat,页面,如图所示。选择,Windows,操作系统平台,单击,Windows Service Installer,(,pgp,md5,)超级链接下载。,1.2.3,安装,MyEclipse,Eclipse,是,IBM,推出的开放源码的通用开发平台。它支持包括,Java,在内的多种开发语言。,Eclipse,采用插件机制,使一种可扩展的、可配置的集成开发环境(,IDE,)。,MyEclipse,本质上是,Eclipse,插件。其企业级开发平台(,MyEclipse Enterprise Workbench,)是功能强大的,Java EE,集成开发环境,在其上可以进行代码编写、配置、调试、发布等工作,支持,HTML,、,JavaScript,、,CSS,、,JSF,、,Spring,、,Struts,、,Hibernate,等开发。下面对,MyEclipse,的安装配置、使用方法进行概要介绍。,从,MyEclipse,官网(,)下载,MyElipse,企业级开发平台。在列表中选择所用的平台的安装包下载,本书的案例也是在,MyEclipse,实现的,,MyEclipse,从官网下载安装包执行文件,myeclipse-2016-ci-6-offline-installer-windows.exe,,按提示选择安装路径,其余选项可以按默认进行安装。在此过程中会自动搜索,JDK,进行环境配置,或者使用自带的,JDK,。,安装完后,,Windows,下选择【开始】【所有程序】【,MyEclipse,】【,MyEclipse 2016,】【,MyEclipse 2016 CI,】,启动,MyEclipse 2016,环境。,初次启动会要求选择一个工作区(,Workspace,),如图,1.21,所示即用于存放用户项目(所开发程序)的地方,可以选择默认,但还是推荐在其他盘设置文件夹进行存放。,MyEclipse,界面主要可以分成,5,个部分:,(1),菜单栏,窗体顶部是菜单栏,包含主菜单(如,File,)和其所属的菜单项(如,File,New,),菜单项下面还可以有子菜单,如图所示。,(2),工具栏,位于菜单栏下面的是工具栏,如图所示。,(3),视图切换器,位于工具栏最右侧的是,MyEclipse,特有的工作视图切换器,如图,1,图,2,所示,它可以显示多个工作视图以供切换。,(4),视图,视图是显示在主界面中的一个小窗口,可以单独最大化、最小化,调整显示大小、位置或关闭。除了菜单栏、工具栏和状态栏之外,,MyEclipse,的界面就是由这样一个个小窗口组合起来的,像拼图一样构成了,MyEclipse,界面的主体。如图所示为一个大纲视图。,(5),编辑区域,在界面的中央会显示文件编辑器及其中的程序代码。这个编辑器与视图非常相似,也能最大化和最小化,若打开的是,JSP,源文件,还会在编辑器上半部窗口中实时地显示出页面的预览效果,如图所示。,1.3,第一个,Java EE,程序,【例,1-1,】第一个,Java EE,程序,打开,MyEclipse,,选择菜单【,File,】,-,【,New,】,-,【,Web Project,】,新建一个,Web,项目,如图,1,所示,项目名称:,Chap1-1 Demo1,如图,2,所示。,在【,New Web Project,】对话框中输入项目名后单击【,Finish,】按钮,新建项目后在窗口左侧【,Package Exploer,】面板中可看见刚刚建立的,Chap1-1 Demo1,项目结构,如图所示。,一般,MyEclipse,的,Web,项目可以分成,3,部分,即源代码文件夹,src,文件夹,项目所引用的库,和,WebRoot,文件夹部分;其中,src,文件夹用于存放项目中源代码,,WebRoot,文件夹是,Web,应用的顶层目录,用于存放,Web,各类资源,在,WebRoot,下有二个非常重要文件夹:,WEB-INF,和,META-INF,,这俩个文件夹不能随意修改或删除。,其中,WEB-INF,文件夹是,Java,的,WEB,应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录,其目录结构如图,1.31,所示。,WEB-INF,文件夹下通常有,web.xml,文件、,classes,文件夹、,tags,文件夹、,lib,文件夹。,web.xml,文件:,Java EE,项目中非常重要的配置文件。,classes,文件夹:存放,src,目录中编译后的,class,文件。,Tags,文件夹:存放标记库实现类文件,Lib,文件夹:存放项目中调用到的库或,jar,包。,双击,index.jsp,页面,编写如图,1.33,所示代码。如图所示:,在【,Package Exploer,】面板中选中该项目,鼠标右键单击,在右键菜单中选中【,Run As,】【,MyEclipse Server Application,】,或者单击工具栏上【,Run As,】按钮,在弹出的【,Server Selection,】对话框选中,MyEclipse Tomcat 7,,如图所示。,WEB-INF,lib,classes,tags,存放,Web.xml,及,JSP,网页文件,存放项目中调用到,Jar,库文件,存放项目中编译后,class,文件,存放项目中调用到,tag,标签库,Java Web,项目结构,第2章 Java EE基础,本章内容,1 JSP,页面构成,2 JSP,实现原理,3 JSP,常用指令,4 JSP,内置对象,2.1 JSP页面介绍,JSP,是,JavaEE,中实现,Web,页面的基础技术,也是掌握,JavaEE,使用的最基本技术,,JSP,(,Java Server Page,)是由,Sun Microsystems,公司倡导、许多公司参与一起建立的一种动态技术标准(,SUN,公司已在,2009,年,4,月被甲骨文公司收购)。,JSP,是一种实现普通静态,HTML,和动态,HTML,混合编码的技术。,JSP,页面文件通常以,.jsp,为扩展名,而且可以安装到任何能够存放普通,Web,页面的地方。虽然从代码编写来看,,JSP,页面更像普通,Web,页面而不像,Servlet,,但实际上,,JSP,页面第一次被访问时,会由,JSP,引擎自动编译成,Servlet,,然后开始执行,以后每次调用时,都是直接执行编译好的,Servlet,而不需要重新编译。,JSP页面原理,嵌入,执行,JSP,应用,服务器,客户端,1,2,4,返回页面信息,Java,脚本,JSP,页面,JSP页面构成,输出当前日期,你好,今天是,2.2 JSP基本语法,1,脚本代码,JSP,脚本代码是嵌入到,JSP,页面中的,Java,代码,简称,JSP,脚本,在客户端浏览器中不可见。它们被服务器执行,然后由服务器将执行结果与,HTML,标记一起发送给客户端进行显示。通过执行,JSP,脚本,可以在该页面生成动态的内容。,例:计算,1,到,10,的和。,1,到,10,求和,%int sum=0;,for(int i=1;i,2表达式,JSP,表达式主要用于数据的输出。它可以向页面输出内容以显示给用户,还可以用来动态地指定,HTML,标记中属性的值。,格式:,【例,2.1,】:表达式的使用,新建一,JSP,网页,输入如下代码:,表达式的值,:,3声明,声明语句可以在,JSP,页中定义方法或变量,这些方法和变量可被同一页面的其他代码访问。,JSP,语法格式如下:,2.2.2 JSP指令,1,page,指令,page,指令即页面指令,可以定义在整个,JSP,页面范围内有效的属性,其使用格式如下:,2,Include,指令,Include,指令用来向当前,JSP,页面静态插入一个文件,这个静态文件可以是,html,文件、,jsp,文件或其他文本文件或者只是一段,java,代码。,Include,指令在,JSP,页面转换阶段完成包含,,JSP,编译器在碰到,include,指令时,就会读入包含的文件,插入,include,位置,相当于多个文件共同组成一个,jsp,页面。,3,taglib,指令,taglib,指令声明此,JSP,文件使用了自定义标签库,同时引用标签库,并且指定了它们的标签前缀。语法格式:,taglib,指令会在第章进行详细介绍。,JSP中的page指令,通过设置内部的多个属性定义整个页面的属性,常用属性,45,/53,语法,属性,描述,默认值,language,指定,JSP,页面使用的脚本语言,java,import,通过该属性来引用脚本语言中使用到的类文件,无,contentType,用来指定,JSP,页面所采用的编码方式,text/html,ISO-8859-1,计算求和,两个数的求和结果为:,2.3 JSP内置对象,为了,Web,应用程序开发的方便,在,JSP,页面中内置了一些默认的对象,这些对象不需要预先声明就可以在脚本代码和表达式中随意使用。,JSP,提供的内置对象共有,9,个,这些内置对象从功能上可以分为,4,类,分别是:,1,输出输入对象:,request,对象、,response,对象、,out,对象,2,与属性作用域相关对象:,pageContext,对象、,session,对象、,application,对象,3Servlet,相关对象:,page,对象、,config,对象,4,错误处理对象:,exception,对象,常用的JSP内置对象,application,out,session,response,request,常用的,JSP,内置对象,2.3.1 out对象,out,对象是,javax.servlet.jsp.jspWriter,类的实例,,out,对象与,Java,中的,System.out,功能基本相同,,out,对象主要有两方面的功能。,1,向客户端输出各类型数据的内容。,2,对服务器上输出缓冲区进行管理。,out对象常用方法,方,法,说,明,clear(),清空缓冲区,clearBuffer(),清空当前区的内容,close(),先刷新流,然后关闭流,flush(),刷新流,getBufferSize(),以字节为单位返回缓冲区的大小,getRemaining(),返回缓冲区中没有使用的字符的数量,isAutoFlush(),返回布尔值,自动刷新还是在缓冲区溢出时抛出,IOException,异常,request对象,request,对象是,JSP,编程中最常用的对象,,request,对象用来读取客户端请求发送过来的各类数据或流,例如在,FORM,表单中填写的信息等,通过调用,request,对象相应的方法可以获取关于客户请求的信息。,ruquest,对象的数据类型是,javax.servlet.http.HttpServletRequest,。,JSP,页面,request,对象,客户端,请求,请求信息,request对象常用方法,方法名称,说明,String getParameter(String name),根据表单组件名称获取提交数据,String getParameterValues(String name),获取表单组件对应多个值时的请求数据,void setCharacterEncoding(String charset),指定每个请求的编码,RequestDispatcher getRequestDispatcher(String path),返回一个,RequestDispatcher,对象,该对象的,forward(),方法用于转发请求,新建一个,JSP,网页,名为,index.jsp,,输入如下图,2.27,所示代码。,图,2.27 index.jsp,页面代码,【例2.5】用户注册表单的读取,新建,reg_deal.jsp,网页,输入代码。,%,String uname=toChinese(request.getParameter(uname);,String password=request.getParameter(passwd);,String sex,s=request.getParameter(xingbie);,String Email=request.getParameter(email);,String info=request.getParameter(info);,if(s.equals(1),sex=,男,;,else,sex=,女,;,String hobby=request.getParameterValues(hobby);,String aihao=,您的爱好是,:;,for(int i=0;i,运行效果,2.3.3 response对象,response,对象与,request,对象相对应,其主要作用是用于响应客户端请求。,response,对象是,javax.servlet.http.HttpServletResponse,接口类的实例它封装了,JSP,产生的响应,并发送到客户端以响应客户端的请求。,response,对象功能主要有三个方面:,(,1,)重定向;,(,2,)设定,HTTP,响应头部;,(,3,)向客户端浏览器输出二进制流,实现下载功能。,response对象常用方法,方,法,说,明,sendError(int number),使用指定的状态码向客户发送错误响应,sendError(int number,String msg),使用指定的状态码和描述性消息向客户发送错误响应,sendRedirect(String location),使用指定的重定向位置,URL,想客户发送重定向响应,可以使用相对,URL,2.3.4 session对象,HTTP,协议是一种无状态协议,当完成用户的一次请求和响应后就会断开连接,此时服务器端不会保留此次连接的有关信息,当用户进行下一次连接时,服务器无法判断这一次连接和以前的连接是否属于同一用户。为解决这一问题,,JSP,提供了一个,session,对象,让服务器和客户端之间一直保持连接,直到客户端主动关闭或超时(一般为,30,分钟)无反应才会取消这次会话。,使用,session,的这一特性,可以在,session,中保存用户名、用户权限、订单信息等需要持续存在的内容,实现同一用户在访问,Web,站点时在多个页面间共享信息。,【例2.9】用户登录,打开,MyEclipse,新建一个,WebProject,项目,建立一个名为,login.jsp,网页,在该网页中制作一个如图,2.43,所示用户登录表单。,新建,login_deal.jsp,网页,输入如图所示代码。,新建,index.jsp,网页,输入如图所示代码。,2.3.6 application对象,application,对象用于保存应用程序在服务器上的全局数据。,当服务器启动时就会创建一个,application,对象,只要没有关闭服务器,该对象就一直存在。,application,对象与,session,对象有所区别,,session,对象和用户会话相关,不同用户的,session,是完全不同的对象,而用户的,application,对象都是相同的一个对象,即共享这个内置的,application,对象。,【例,2.10】,留言板,打开,MyEclipse,新建一个,WebProject,项目,建立一个名为,index.jsp,网页,在网页中制作如图,2.47,所示表单,表单中有,2,个文本框,,name,属性值分别是:,name,、,conten,。,表单的,action,属性:,deal.jsp,;,method,属性:,post,,并在表单前插入如图所示代码。,新建一个网页名为,deal.jsp,,在其中输入如图所示代码。,第3章 JDBC基础,本章内容,JDBC,原理,JDBC,常用接口,JDBC,访问数据库,数据库的查询、添加、修改、删除,其他数据库访问,3.1 JDBC概述,无论是企业级应用系统,还是信息类管理系统,其开发的核心都是围绕数据库进行的,数据库访问技术是计算机软件开发中的一个重要技术,在,JavaEE,体系中有多种数据库访问技术,其中最为简单、基础的就是,JDBC,数据库访问技术。,JDBC,架构,JDBC,由两层构成,一层是,JDBC API,,负责在,Java,应用程序与,JDBC,驱动程序管理器之间进行通信,负责发送程序中的,SQL,语句。其下一层是,JDBC,驱动程序,API,,与实际连接数据库的第三方驱动程序进行通信,返回查询信息或者执行规定的操作,如图所示。图中显示了数据库驱动程序与,JDBC,驱动管理程序,及,JDBC,系统的,API,库与,Java,应用程序的位置及调用关系。,3.2 JDBC基本操作,3.2.1 建立ODBC数据源及访问过程,使用,ODBC,数据源前,首先要配置,ODBC,数据源,将需要访问的数据库的访问路径信息在,ODBC,中进行配置,,ODBC,支持多种数据库,例如,Sql Server,,,Oracle,、,Access,等,在这里我们以最简单的,Access,为例,来讲解,ODBC,的配置,本章的数据库操作都是基于这个数据源的。,(,1,)打开,Access,建立一个名为,user.mdb,的数据库文件,保存在,D,盘根目录下。在其中建立一张,user,表,其字段结构如图所示,数据表如图所示,并在其中输入一些记录。,(,2,)配置,ODBC,数据源,以,Windows7 32Bit,系统为例,打开【控制面板】-【管理工具】找到【数据源,(ODBC)】,,如图所示。,双击打开,点击,ODBC,数据源管理中【用户,DSN】,选项卡,单击选项卡中【添加】按钮,在弹出的【创建数据源】对话框中列表选择,Microsoft Access Driver(*.MDB),,并单击【完成】按钮,注意:在这个对话框中可选择其他类型数据库,这里仅是以,Access,为例。,在弹出来的【ODBC Microsoft Access安装】对话框中输入数据源名称:,DSUser,,单击【选择】按钮,选择,D,盘根目录下存放的,user.mdb,数据库文件。,【例3.1】完整代码如下:,%,try,Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/,第一步,Connection con=DriverManager.getConnection(jdbc:odbc:DSUser);/,Statement smt=con.createStatement();/,第三步,ResultSet rs=smt.executeQuery(select*from user);,int id,,,i=1;,while(rs.next(),out.print(,用户编号,:+rs.getInt(id)+,姓名,:+rs.getString(name)+,性别,:+rs.getString(sex)+Email:+rs.getString(Email);,catch(Exception e),e.printStackTrace();,【例3.2】用户注册,在,MyEclipse,中打开,Ch3ODBUserDemo,项目,新建,reg.jsp,网页,在这个网页中制作如图所示用户注册表单。,表单的,action,属性:,reg_user.jsp,;,method,属性:,post,。如图所示,新建,reg_user.jsp,网页,使用,page,指令导入,java.sql,包,,并输入如图所示代码。,3.3 JDBC优化技术,3.3.1 PreparedStatement接口,PreparedStatement,是一种预编译处理,,java.sql.PreparedStatement,接口继承于,Statement,接口,是,Statement,接口的扩展,用来执行动态的,sql,语句,即包含参数的,SQL,语句。通过,PreparedStatement,实例执行的动态,SQL,语句,将被预编译并保存到,PreparedStatement,实例中,从而可以反复并且高效地执行该,SQL,语句。,方 法 名 称,功 能 描 述,executeQuery(),执行前面包含参数的动态,SELECT,语句,并返回一个永远不能为,null,的,ResultSet,实例,executeUpdate(),执行前面包含参数的动态,INSERT,、,UPDATE,或,DELETE,语句,并返回一个,int,型数值,为同步更新记录的条数,clearParameters(),清除当前所有参数的值,setXxx(),为指定参数设置,Xxx,型值,close(),立即释放,Statement,实例占用的数据库和,JDBC,资源,即关闭,Statement,实例,第4章 JavaBean,本章内容,JavaBean,的种类;,JavaBean,的规范;,JavaBean,在,JSP,中的应用;,JavaBean,属性值的赋值;,JavaBean,属性值的读取;,JavaBean,对,JSP,代码的优化。,4.1 JavaBean概述,在,JavaEE,的初级阶段,整个系统功能由,JSP,网页实现出来,并没有对代码进行逻辑层次划分,例如,上一章案例“用户管理系统”,整个系统所有功能都是由各个,JSP,页面实现,而页面中存在大量重复、烦琐、冗余高的代码,如图所示。,4.2 JavaBean定义及应用,4.2.1 JavaBean,技术规范,JavaBean,在,Java,中可以是一个普通的,Java,类,但编写时要遵循,JavaBean,的代码规范,具体规范如下。,1.,公共的无参构造方法,一个,JavaBean,对象必须拥有一个公共类型、默认的无参构造方法,从而可以通过,new,关键字直接对其进行实例化。,2.,类的声明是非,final,类型,当一个类声明为,final,类型时,它是不可以更改的,所以,,JavaBean,对象的声明应该是非,final,类型的。,3.,实现可序列接口,JavaBean,应该直接或间接实现,java.io.Serializable,接口,以支持序列化机制。,4.,为属性声明访问器,JavaBean,中的属性应该设置为私有(,private,)类型,为了防止外部直接访问,它需要对外提供公共(,public,)的访问方法,也就是说需要为属性提供,getter/setter,方法。,4.2.2 编写一个JavaBean,在,MyEclipse,中编写,JavaBean,,可以先定义好属性,然后再调用【,Source,】菜单中【,Generate Getters and Setters.,】产生属性方法,如果使用,JCreate,等其他工具,也可直接输入属性方法。以上一章“用户管理案例”用户数据为例,其,JavaBean,定义过程如下。,(,1,)在,src,目录下新建,com.bean,包,然后新建,User,类,如图所示。,(,2,)单击【,Source,】菜单中【,Generate Getters and Setters.,】,单击,Select All,按钮,选择所有属性,单击,OK,按钮确认,如图所示。,4.2.3 UseBean标签,在,JSP,中使用,JavaBean,可以使用,UseBean,指令来调用,JavaBean,,,UseBean,指令格式如下。,语法格式,:,例如:,4.2.4 setProperty标签,setProperty,标签用于设置,JavaBean,对象中属性值,语法如下:,例如,:,输出,:,张三,自动填充是将,request,对象中的参数名与,JavaBean,中属性名相同的,自动填入进去,语法如下:,自动填充时,setProperty,标签,prperty,属性值为,*,号。,【例,4.1,】新建一个,jsp,网页,名为,user.jsp,。在网页中制作一个用户注册表单,效果如图所示。,表单的,action,属性:,user_deal.jsp,;,method,属性:,post,。如图所示。,表4-1 user.jsp表单中标签属性,类型,Name,属性,说明,文本框,name,用户名文本框,文本框,password,密码,文本框,repasswd,再输入一次密码框,单选框,sex,性别男单选框,,value,值为,1,单选框,sex,性别女单选框,,value,值为,2,文本框,email,Email,文本框,文本框,info,Info,文本框,多行,新建一个,jsp,网页,名为,user_deal.jsp,。在此页面中声明一个,JavaBean,对象,u3,,将,user.jsp,网页中提交到,request,对象中参数填充进,u3,,并输出演示,关键代码如下:,运行结果,4.3 DAO和VO,在上一章数据库案例“用户管理系统”中,系统中功能都是,JSP,页面中调用,JDBC,实现的,这样造成代码重复冗余高,且十分繁琐,不利于开发。在实际开发应用中,一般是将数据库的各类操作封装到特定类中,而这个类一般叫,DAO,(,Data Access Object,)类或者叫数据访问层。,JSP,一般作为视图层,在视图层中调用,DAO,类提供的方法操作数据库。,数据库中的数据库表,可根据表的结构建立对应的,JavaBean,,通常实现这一类,JavaBean,的类称为,VO(Value Object),类,例如在本章前述案例建立的,User,类就是对应,User,表的,VO,类。,VO,类可以配合,DAO,类来使用,比如在,DAO,中查询某一用户,便可将查询到的用户信息封装成,User,对象,而,JSP,页面中也可直接使用这个,User,对象,从而降低代码的耦合度。,以上一章中案例“用户管理系统”为例,将用户管理所需的功能和数据操作封装成,2,个类,一个数据库类,MyDB,,将数据库对象封装其中;一个,UserDAO,类,将用户管理的操作封装其中,实现如下。,(,1,),MyDB.java,package com.dao,import java.sql.*;,public class MyDB,private Connection con;,private PreparedStatement presmt;,public MyDB(),try,Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);,con=DriverManager.getConnection(jdbc:odbc:JDBCB);,catch(Exception e),public ResultSet query(String sql),try,Statement smt=con.createStatement();,return smt.executeQuery(sql);,catch(Exception e)e.printStackTrace();,return null;,public void update(String sql),try,Statement smt=con.createStatement();,smt.executeUpdate(sql);,catch(Exception e),e.printStackTrace();,public PreparedStatement getPreparedStatement(String sql),try,return con.prepareStatement(sql);,catch(Exception e)e.printStackTrace();,return null;,(,2,),UserDao.java,import java.sql.*;,import java.util.*;,import com.bean.*;,public class UserDao,public boolean Login(User us)/,用户登录,MyDB mdb=new MyDB();,ResultSet rs=mdb.query(select*from user where name=+us.getName()+and password=+us.getPassword()+);,try,if(rs.next(),return true;,catch(Exception e),e.printStackTrace();,return false;,public ArrayList getallUser()/,获取所有用户信息,MyDB mdb=new MyDB();,ArrayList res=new ArrayList();,try,ResultSet rs=mdb.query(select*from user);,while(rs.next(),User user=new User();/,实例化,VO,user.setId(rs.getInt(id);,user.setName(rs.getString(name);,user.setPassword(rs.getString(password);,user.setEmail(rs.getString(email);,user.setInfo(rs.getString(info);,res.add(user);,catch(Exception e)e.printStackTrace();,return res;,public int getcount()/,获取用户数,MyDB mdb=new MyDB();,try,ResultSet rs=mdb.query(select count(*)as t from user);,rs.next();,return rs.getInt(t);,catch(Exception e),e.printStackTrace();,return 0;,public String regUser(User us)/,用户注册,MyDB mdb=new MyDB();,try,PreparedStatement psmt=mdb.getPreparedStatement(insert into user(name,password,sex,Email,info)values(,?,?,?,?,?,);,psmt.setString(1,us.getName();,psmt.setString(2,us.getPassword();,psmt.setString(3,us.getSex();,psmt.setString(4,us.getEmail();,psmt.setString(5,us.getInfo();,psmt.executeUpdate();,return,用户添加成功,;,catch(Exception e),e.printStackTrace();,return,失败,;,【例,4.2,】用户登录,实现上面的,UserDao,类和,MyDB,类后,即可对上一章中用户管理系统进行优化。下面以用户登录为例,打开,login_deal.jsp,,把代码修改成如图所示。,执行流程分析:用户首先在,login.jsp,页面,填
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服