新書推薦:
《
透过器物看历史(全6册)
》
售價:HK$
490.6
《
我在台北故宫博物院读名画
》
售價:HK$
109.8
《
尼罗河往事:古埃及文明4000年
》
售價:HK$
76.2
《
一个人·谁也不是·十万人(诺贝尔文学奖得主反思自我的巅峰之作)
》
售價:HK$
54.9
《
重写晚明史(全5册 精装)
》
售價:HK$
781.8
《
汉末晋初之际政治研究
》
售價:HK$
132.2
《
强者破局:资治通鉴成事之道
》
售價:HK$
80.6
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:HK$
121.0
|
編輯推薦: |
? 注重完整的项目体系概念,将知识点分解,由浅入深、循序渐进地呈现地理知识考试系统的实现步骤。? 注重学生在不同学习阶段的理解力差别,组织材料注重先易后难原则,先用简单示例阐述基本原理和基础知识,再完成实际项目部分。每章附有大量习题和深入学习材料,注重应用能力提高。? 书中给出综合项目的完整代码,并针对实例进行深入的解析,便于理解掌握。? 以表示与处理相分离、提高代码重用性为主线,从基础知识讲起,各章节内容以循序渐进的方式编排。? 按照JSP*版本规范编写。
|
內容簡介: |
本书介绍在Eclipse环境下开发JSP应用程序的原理与技术。全书共11章,内容包括JSP原理及开发环境的搭建、JSP语法、JSP内置对象、EL基本用法、数据库访问、JavaBean、Servlet、MVC架构、标准标签库及自定义标签、Spring MVC框架、文件上传下载组件和Excel组件的使用方法等。本书将知识点分解、循序渐进将地理知识测试的设计与实现步骤按照由浅入深的方式拆分到各章,有助于读者掌握JSP的基础知识、编程技巧及加深对完整的开发体系的理解。 本书结构紧凑,深入浅出,贴近实践,便于教学,可作为高等学校计算机及相关专业本科生教材或教学参考书,也可供网站开发人员参考使用。
|
目錄:
|
目录
第1章概述1
1.1Web应用基础1
1.1.1Web模型1
1.1.2配置Tomcat2
1.2JSP页面8
1.2.1创建JSP文件8
1.2.2运行JSP文件10
1.2.3JSP运行机制11
1.3用户数据提交与处理13
1.3.1利用表单提交数据13
1.3.2处理用户提交数据14
1.3.3完善输入界面16
1.3.4设置首页文件19
实验120
习题121
第2章JSP基本语法23
2.1脚本元素23
2.1.1声明23
2.1.2脚本小程序25
2.1.3表达式26
2.2指令元素29
2.2.1page指令29
2.2.2include指令34
2.3动作元素35
2.3.1动作36
2.3.2动作36
2.3.3动作37
2.3.4、动作42
2.4注释43[2][3]JSP程序设计目录[2]实验244
习题244
第3章JSP内置对象47
3.1request对象47
3.1.1request封装的数据47
3.1.2request对象的主要方法49
3.2response对象54
3.2.1response封装的数据54
3.2.2response对象的主要方法55
3.2.3操作Cookie57
3.3session对象60
3.3.1session工作机制61
3.3.2session对象的主要方法62
3.4out对象66
3.5application对象68
3.6其他内置对象70
3.7简单购物车71
实验378
习题380
第4章EL85
4.1EL表达式基础85
4.1.1EL语法85
4.1.2\[\]和.操作符85
4.1.3运算符86
4.2EL内置对象86
实验489
习题490
第5章数据库访问92
5.1创建MySQL数据库92
5.1.1创建数据库92
5.1.2常用DML语句94
5.2JDBC应用概述95
5.2.1载入JDBC驱动程序96
5.2.2定义连接URL97
5.2.3建立连接97
5.2.4创建Statement对象98
5.2.5执行查询或更新98
5.2.6结果处理99
5.2.7关闭连接100
5.2.8数据库连接工具类101
5.3使用预编译语句104
5.4ResultSet对象106
5.4.1读取数据106
5.4.2ResultSet类型106
5.4.3元数据108
实验5112
习题5114
第6章JavaBean120
6.1JavaBean简介120
6.2在JSP中使用JavaBean122
6.3利用表单设置JavaBean属性127
6.4JavaBean的Scope属性133
6.5JavaBean应用实例137
实验6141
习题6142
第7章Servlet148
7.1什么是Servlet148
7.1.1编写第一个Servlet148
7.1.2Servlet工作原理151
7.1.3Servlet生命周期152
7.2Servlet与客户端通信154
7.2.1Servlet生成纯文本154
7.2.2Servlet生成HTML155
7.2.3接收客户提交参数157
7.2.4session对象159
7.2.5Servlet上下文160
7.2.6Servlet的请求转发161
7.3Servlet过滤器162
7.3.1创建简单的过滤器162
7.3.2Filter接口166
7.3.3Filter生命周期167
7.3.4应用过滤器做身份验证168
7.4Servlet应用实例169
实验7175
习题7176
第8章MVC架构182
8.1什么是MVC182
8.2用RequestDispatcher实现MVC183
8.2.1定义JavaBean来表示数据184
8.2.2编写Servlet处理请求184
8.2.3填写JavaBean185
8.2.4结果的存储185
8.2.5转发请求到JSP页面186
8.2.6从JavaBean中提取数据186
8.2.7目的页面中相对URL的解释187
8.2.8控制器示例187
实验8194
习题8196
第9章标签库200
9.1标准标签库200
9.1.1输出标签c:out201
9.1.2迭代标签202
9.1.3条件标签204
9.1.4变量操作标签206
9.1.5URL相关标签207
9.2自定义标签210
9.2.1标签处理类210
9.2.2标签库描述文件211
9.2.3在JSP文件使用自定义标签212
9.2.4标签属性212
9.2.5标签体215
9.2.6定制标签应用示例217
实验9220
习题9220
第10章Spring MVC223
10.1Spring简介223
10.1.1基于POJO223
10.1.2依赖注入224
10.1.3面向切面编程226
10.1.4利用模板消除重复代码226
10.1.5Bean容器226
10.1.6Spring框架230
10.2Spring MVC入门231
10.2.1搭建Spring MVC232
10.2.2Spring MVC示例234
10.3基于注解的控制器238
10.3.1@Controller238
10.3.2@RequestMapping239
10.3.3利用控制器类实现QuestionEdit241
10.3.4利用注解实现依赖注入244
10.4文件上传247
10.4.1客户端编程248
10.4.2接收上传的文件248
实验10253
习题10254
第11章JSP实用组件255
11.1文件上传和下载组件255
11.1.1SmartUpload常用类255
11.1.2使用jspSmartUpload上传257
11.2处理Excel文件组件259
11.2.1jxl对象260
11.2.2基本操作260
11.2.3Excel批量导入数据263
实验11265
习题11266
习题参考答案267
附录AJSP开发环境安装与配置270
附录B常用字符集272
附录CHTTP协议274
附录DHTML、CSS、JavaScript简介277
参考文献287
|
內容試閱:
|
前言 Java是目前最流行的程序开发语言,在服务器程序设计、手机程序设计等方面应用广泛。Java作为一种完全的面向对象语言,吸取了其他语言的优点,设计简洁优美,使用起来方便高效。Java是一个完整的技术平台,在这个平台上不断涌现各种新技术,其中的很多技术是免费的,因此对于中小企业应用来说选择Java具有非常大的吸引力。在Java发展过程中,不断有过时的技术被弃用。只有那些自身具有强大生命力的技术才会存活下来,并且被不断注入新的活力。JSPJava Server Pages就是一种自身具有强大的生命力,一直在快速发展的技术。JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的动态网站。JSP是由Sun公司倡导、许多公司参与一起建立的一种动态页面技术标准。自JSP推出后,很多公司都推出了支持JSP技术的服务器,如IBM、Oracle公司等,所以JSP迅速成为商业应用的服务器端语言。JSP具备Java技术的简单易用、完全的面向对象、具有平台无关性且安全可靠、面向Internet等特点。JSP从诞生至今,内容越来越丰富,页面设计越来越简洁,是Internet上的主流开发工具之一。全书分为11章,内容包括:第1章概述包括Web应用模型介绍、Tomcat的配置、Eclipse开发环境配置、JSP运行原理、利用表单提交数据、在服务器端处理用户数据。第2章JSP的基本语法包括JSP页面的组成、脚本元素,常用的指令和动作的运用。第3章JSP内置对象包括request、response、cookie、session、application、out等对象工作机制及应用,结合一个简单的购物车实例讲解各个内置对象的作用范围。第4章EL包括表达式语言基础语法和表达式语言的内置对象。第5章数据库访问包括创建MySQL数据库、JDBC应用、使用预编译语句和ResultSet对象等内容。第6章JavaBean包括在JSP中使用JavaBean、利用表单设置JavaBean属性、JavaBeans的Scope属性及利用JavaBean实现数据库表分页显示。第7章Servlet包括Servlet基础知识、工作原理、生命周期、Servlet与客户端通信、Servlet过滤器和利用过滤器做身份验证。[2][3]JSP程序设计前言[2]第8章MVC架构包括MVC架构的基本原理、用RequestDispatcher实现MVC、MVC应用实例。第9章标签库包括标准标签库和自定义标签。第10章Spring MVC包括Spring基本特性、Spring框架、Spring MVC入门、基于注解的控制器和文件上传。第11章JSP实用组件包括文件上传和下载组件SmartUpload、处理Excel文件组件JXL。本书面向具有一定静态页面设计基础的读者,如果未学习过静态页面设计,需要预先学习附录所列内容。附录内容包括JSP开发环境安装与配置、常用字符集、HTTP协议、HTML、CSS、JavaScript。本书围绕着一个地理知识测试项目,以教程的形式深入浅出、由易到难地介绍JSP的常用开发技术。为了便于读者阅读和理解,本书对某些特定内容采用专门的字体。新增的代码或关键代码用加粗字体表示,应该删除的代码打上了删除线。例如,在下面的代码里,将原来的out.print方法删除,替换为粗体显示代码。代码清单23修改页面内容显示来源 index.jsp本书各章内容前后联系比较紧密,例如,在前面章节定义的工具类,在后面会直接调用。读者在阅读时需要按照章节顺序阅读和调试程序,建议不要在章节间跳读。对于比较简单的项目,实现时可以采用不同的JSP技术。为了养成良好的编程习惯,希望读者最后能够使用MVC模式设计Web应用程序。为了让初学者有一个由浅入深、渐进的学习过程,不同章节的代码设计规范会存在一定的差异。例如,后面章节尽量避免将大量Java代码嵌入到JSP页面中,而前面的章节并没有遵从这一思想;前几章将JSP页面放在网站根目录下,后面又将JSP页面改为放在WEBINF目录下。这些差异实际上都与JSP程序设计中存在的不同软件设计模式之间存在的差异有关。作为初学者,没有必要也不可能掌握JSP的全部,需要掌握的是软件系统的开发设计思路与语言的核心知识技能。本书在内容选取上没有特别注重知识的完备性。另外,为了突出JSP的核心知识,在页面设计上没有大量引入复杂的样式和JavaScript脚本。由于篇幅有限,地理知识测试项目部分内容未能在本书中详述,读者可在清华大学出版社网站下载相关电子文档及代码。白文秀、侯锟、李淑梅、吕凯参与了本书的编写工作。本书可以作为高等学校计算机及相关专业的JSP程序设计教材,也可以作为JSP爱好者和网站开发人员的参考书。由于作者水平有限,书中难免存在错漏之处,敬请读者批评指正。
作者2016年10月
CHAPTER第5章数据库访问大多数Web应用需要将数据保存在数据库中。本书数据库示例都是在MySQL数据库管理系统下完成的。MySQL是最流行的开源关系数据库管理系统,其社区版虽然是免费的,但是性能卓越,可以满足中小网站的需求。5.1创建MySQL数据库从官方网站http:www.mysql.com下载MySQL社区安装版,在本地安装成功后,MySQL会自动启动。MySQL命令提示行控制台是纯字符命令操作,命令繁多且容易出错。现在有很多开源的图形界面管理工具,如MySQLFront、phpMyAdmin等。本节介绍利用MySQLFront数据库管理工具创建数据库。5.1.1创建数据库1. 创建数据库实例安装好客户端MySQLFront以后,打开客户端时,需要连接到指定的数据库实例。如果第一次访问MySQLFront,则需要创建一个数据库实例,步骤如下。1 打开MySQLFront客户端,在图5.1所示的打开登录信息对话框中单击新建按钮。2 在Host文本框中输入连接的服务器,本机为localhost, 如图5.2所示。端口设图5.1打开登录信息图5.2连接属性[2][3]JSP程序设计第5章数据库访问[2]置为MySQL安装时设置的端口号,默认值为3306。输入用户名和密码,用户必须已经存在且具有足够权限,这里在用户文本框中输入root,在密码文本框中输入123456MySQL安装过程中设置的密码。然后单击数据库文本框右侧的浏览按钮,在选择数据库对话框中选择当前存在的任一数据库实例。此时选择MySQL提供的测试数据库实例test创建数据库后应选择自建数据库,单击确定按钮。2. 创建数据库1 在图5.3所示的窗口左侧列表框中右击连接地址,此处连接的地址是localhost,在弹出菜单中选择新建数据库命令。图5.3MySQLFront窗口图5.4新建数据库2 在打开的新建的数据库对话框中,输入数据库名称geotest,选择数据库的编码方式为utf8,然后单击确定按钮,完成数据库的创建,如图5.4所示。3. 新建数据库表1 在MySQLFront窗口的左侧列表框中右击新建的数据库名geotest,在弹出菜单中选择新建表格命令,打开图5.5所示的添加表格对话框,在名称文本框中输入表名users。2 单击字段选项卡,单击填加字段图标,或者右击字段列表空白区,选择新建命令,进入添加字段对话框,如图5.6所示,按表5.1设置字段,然后单击确定按钮。图5.5添加表格图5.6添加字段表5.1users表结构字段名称类型备注字段名称类型备注userNamevarchar20主键interestvarchar20默认值为nullpassWordvarchar20默认值为nulltestGradeint默认值为0 realNamevarchar20默认值为nulltestTimedatetimepIdvarchar18默认值为nullmemotext默认值为nullsexchar8默认值为null5.1.2常用DML语句DML(Data Manipulation Language,数据操纵语言)命令使用户能够查询数据库以及操作已有数据库中数据,包括查询数据select语句、插入数据insert语句、删除数据delete语句、修改数据update语句等。由于DML 非常复杂,本节只列出后面章节涉及的语句部分。1. select语句select语句主要用于查询数据库操作,包括选择满足特定条件的记录、选择特定列、计算列、设置列的别名、排序、分组等。select语句功能非常强大,语法复杂。例如: select userName, realName,pId from users列出users表用户名、真实姓名、身份证号select from users where userName="u1"查找用户u1 select count from users 统计users表中记录个数select from users limit 20,10列出第20条之后的10条记录select from users where userName="u1" and password="1234" 根据用户名和密码查找select from users where realName like "王%" 查找姓王的用户2. insert语句使用insert into语句可以实现向数据表中增加数据。语法格式如下: insert into \[column1,column2,\] values value1,value2,其中,insert into是关键字,表示向数据库表中插入数据;tablename表示数据库表名称;columnl、column2表示指定的列名,是可选的插入数据列数等数据表总列数时可选,多个列名之间用逗号隔开;values是关键字,表示插入的数据,后面括号中的valuel、value2表示向数据库表插入的数据。例如: insert into userName,passWord,testGrade values "u1","123456",03. update语句如果需要修改数据库表中的数据,可以使用update语句。语法格式如下: update tablenameset column1=value1,column2=value2, where conditionsupdate和set是表示在数据库表中修改数据的关键字;tablename表示表的名称;关键字set后面紧跟的是要修改的列名以及列名对应的值,多个列之间用逗号隔开;where子句用来指定要修改的条件,如果不指定条件,会修改表中指定列的所有值。下面修改表users中的数据,修改用户u1的性别和考试类型,语句如下: update users set sex="female", testGrade=1 where username="u1"4. delete语句使用delete语句可以在数据库表中删除数据。delete语句可以删除数据库表中满足条件的数据,也可以删除子查询指定条件的数据。1 删除满足条件的数据使用delete语句可以在数据库表中删除满足条件的数据记录,语法格式如下:delete from tablename where conditionsdelete from是表示数据库表中删除数据的关键字;tablename表示表名称;where子句后面的condition是指定删除条件。例如,从users表中删除用户名为u1的用户:delete from users where userName="u1"在使用delete语句执行删除操作时,不需要指定数据的列名,因为delete语句执行的操作是删除数据库表中的行记录,不是删除某一单独的列数据。2 删除有外键约束的数据在定义了外键约束的表中删除数据时,删除的数据要满足外键约束条件。例如,假设在答题表tests中存在userName字段,并且将其设置为外键。如果删除users表中的用户u1,tests表中与u1相关的数据将查不到用户u1的其他信息,删除时将出现错误。此时,需要先删除tests表中与u1相关的数据,然后才能删除users表中的用户u1。5.2JDBC应用概述JDBC的全称是Java DataBase Connectivity,即Java数据库连接。JDBC提供一套访问关系型数据库的标准API,可以在Java应用程序中与关系型数据库建立连接,并执行相关操作。目前主流的数据库都支持JDBC。通过JDBC API,可以使用完全相同的Java 语法访问大量各种各样的SQL数据库。利用JDBC查询数据库需要经过如下7个标准步骤:1 载入JDBC驱动程序。如果要载入驱动程序,只需在Class.forName方法中指定数据库驱动程序的类名。这样做就自动创建了驱动程序的实例,并注册到JDBC驱动程序管理器。2 定义连接URLconnection URL。在JDBC中,连接URL指定服务器的主机名、端口以及希望与之建立连接的数据库名。3 建立连接。有了连接URL、用户名和密码,就可以建立到数据库的网络连接。连接建立之后,就可以执行数据库查询,直到连接关闭为止。4 创建Statement对象。创建Statement对象才能向数据库发送查询和命令。5 执行查询或更新。有了Statement对象后,就可以使用execute、executeQuery、executeUpdate或 executeBatch方法发送SQL语句到数据库。6 结果处理。数据库查询执行完毕之后,返回一个查询结果ResultSet对象。ResultSet表示一系列的行和列,可以调用next和各种get方法对查询结果进行处理。7 关闭连接。在执行完查询且处理完结果之后,应该关闭连接,释放与数据库相关联的资源。5.2.1载入JDBC驱动程序各种数据库产品,由于厂商不一样,连接的方式也会有差别。JDBC为不同数据库提供了不同的驱动程序,通过驱动程序,JDBC屏蔽了各种数据库之间的差异。所以,驱动程序是知道如何与实际的数据库服务器进行会话的软件部件。如果要载入驱动程序,只需载入相应的类。驱动程序类自身的一个static代码块自动生成驱动程序的实例,并将其注册到JDBC驱动程序管理器。常见数据库的驱动程序类名如下: Oracle驱动程序类: oracle.jdbc.driver.OracleDriver。 SQLServer驱动程序类: com.microsoft.jdbc.sqlserver.SQLServerDriver。 MySQL驱动程序类: com.mysql.jdbc.Driver。不同版本的MySQL使用的驱动程序并不相同,可以在MySQL的官方网站下载最新版的数据库驱动程序http:www.mysql.com。然后,将mysqlconnectorjava5.1.37bin.jar文件或其他版本的驱动程序复制到Tomcat安装目录的common\\lib目录下,或将其复制到网站的WEBINF\\lib目录中。加载过程是使用Class.forName方法将驱动加载到运行环境中。加载的时候,驱动程序会自动在驱动程序管理器中完成注册。加载过程中,如果未找到驱动程序或驱动程序版本不相应,会产生一个ClassNotFoundException错误,因而必须将Class.forName方法放在trycatch块中。代码清单51加载MySQL驱动程序String driverName="com.mysql.jdbc.Driver";try{Class.forNamedriverName;}catchClassNotFoundException e{e.printStackTrace;}5.2.2定义连接URL指向数据库的URL所使用的协议是JDBC协议,连同服务器主机名、端口和数据库名或引用名一起构成URL。不同类型数据库对应的URL并不相同,常见的访问本机URL如下: MySQL的URL为jdbc:odbc:127.0.0.1:3306geotest。 Oracle的URL为jdbc:oracle:thin:@127.0.0.1:1521:geotest。 SQL Server的URL为jdbc:sqlserver:127.0.0.1:1433;DatabaseName=geotest。 MS Access己建立ODBC数据库连接名geotest的URL为jdbc:odbc:geotest。5.2.3建立连接像使用MySQLFront一样,在操作数据库之前建立连接时需要提供用户名和密码。建立实际的网络连接时,需要将URL、数据库用户名和数据库密码传递给DriverManager类的getConnection方法。如果连接不能建立,getConnection方法会抛出SQLException异常,因此,需要使用trycatch。代码清单52连接MySQL数据库String url="jdbc:mysql:127.0.0.1:3306geotest";String username="root";String password="123456";try{Connection con=DriverManager.getConnectionurl,username,password;}catchSQLException e{e.printStackTrace;}getConnection方法也提供只接收一个参数的连接形式,此时,需要将用户名和密码等参数用连接字符串形式附加在URL后。在建立连接时,JDBC会使用默认的字符编码。在前面建立数据库的过程中,由于选择的是UTF8编码,与默认的字符编码不一致,操作数据库过程中,中文会出现乱码。因此,建立连接时,需要向getConnection方法传递编码方式。代码清单53另一种连接MySQL数据库方式String url="jdbc:mysql:127.0.0.1:3306geotest?user=root&password=123456&characterEncoding=utf-8";try{Connection con=DriverManager.getConnectionurl;}catchSQLException e{e.printStackTrace;}JDBC定义了数据库的连接、SQL语句的执行以及查询结果集的遍历等。这些操作类位于包java.sql下面,如java.sql.Connection、java.sql.Statement、java.sql.ResultSet等,各个数据库提供商在自己的JDBC驱动中实现了这些接口。在JSP页面中使用这些API前需要在page指令中设置import属性:5.2.4创建Statement对象Statement对象用来向数据库发送查询和命令。它由Connection的createStatement方法创建,如下所示。代码清单54创建StatementStatement statement=con.createStatement;5.2.5执行查询或更新有了Statement对象之后,就可以使用它的executeQuery方法发送SQL查询,或者使用executeUpdate方法执行插入、更新等命令。通常使用Statement对象的3个基本方法来执行SQL命令。1. executeQuery方法executeQuery方法主要用来执行查询命令,返回一个ResultSet(结果集)对象。ResultSet可能为空,但不会是null。例如,查询users表的所有数据: String sql="select from users";ResultSet rs=statement.executeQuerysql;2. executeUpdate方法executeUpdate方法主要是用来执行插入、删除及修改记录操作,返回一个int整型值,此整型值是被更新的行数,可以为0。executeUpdate方法也支持create table等命令。例如,向users表中插入一行记录: String sql = "insert into usersuserName,passWord values ''u2'', ''123456'' " ;int n=statement.executeUpdate sql;3. execute方法execute方法主要用来执行一般的SQL命令,包括增删改查以及数据定义,返回一个布尔值,显示了是否返回一个查询结果集ResultSet对象。例如,查询user表中所有数据: String sql="select from users";Boolean value= statement.executesql;如果value变量取真,表明返回一个结果集对象,然后再通过statement.getResultSet方法获取一个ResultSet对象。代码清单55执行查询String sql="select userName,realName,pId,testGrade from users";ResultSet rs=statement.executeQuerysql;5.2.6结果处理ResultSet对象的每条记录结果代表了一个数据表行。处理结果最简单的方式是使用ResultSet的next方法在表中移动,每次一行。在一行内,ResultSet提供各种getXxx方法,它们都以列名或列索引为参数,以各种不同的Java类型返回结果。例如,下面前两行代码都可以取到当前行的userName字段值:String un=rs.getString"userName";String un=rs.getString1; 列索引从1开始遵循SQL的约定int tg=rs.getInt"testGrade";以列索引为参数的get方法代码可读性差,容易出错,不易维护,应尽量避免使用。代码清单56显示查询结果whilers.next{String un=rs.getString"userName";String rn=rs.getString"realName";String pid=rs.getString"pId";int tg=rs.getInt"testGrade";out.println"username=" un "realname=" rn "person id=" pid "testgrade=" tg;}JDBC是使用Java技术来访问数据库数据的,数据库数据类型和Java的数据类型不同,所以使用JDBC技术时,需要Java与数据库的数据类型转化。数据库数据类型和Java数据类型对照如表5.2所示。表5.2数据库数据类型和Java数据类型对照续表数据库数据类型Java数据类型数据库数据类型Java数据类型charStringintegerintvarcharStringbigintlonglongvarcharStringrealfloatnumericbigDecimalfloatfloatdecimalbigDecimaldoubledoublebitbooleanbinarybyte\[\]tinyintbytedateJava.sql.DatesmallintshorttimeJava.sql.Time5.2.7关闭连接关闭连接使用如下语句: con.close;关闭连接还会关闭对应的Statement和ResultSet对象。下面综合上述各步,完成对users表的显示。在GeoTest项目网站根目录下建立userlist.jsp,内容如下。代码清单57显示users表部分字段userlist.jsp用户列表";}rs.close;con.close;}catchSQLException e{e.printStackTrace;}%运行结果如图5.7所示。图5.7显示users表5.2.8数据库连接工具类数据库打开与关闭过程在所有JSP页面中是相同的,为提高代码重用性,将这部分代码抽取来,做成工具类DBConnection.java。右击com.geotest类包,在弹出菜单中选择NewClass命令,在新建Java类窗口中Name处输入DBConnection,保持默认的超类java.lang.Object不变,单击Finish按钮完成新建类。代码清单58数据库工具类DBConnection.javapackage com.geotest;import java.sql.;public class DBConnection {private static String url="jdbc:mysql:localhost:3306geotest?user=
|
|