




已阅读5页,还剩311页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA开发工程师第3阶段 Java动态网站编程加中合教育 编著加中合教育(北京)二四年十月一日内部编号:J3_E版本号:V1.0书名:JAVA开发(三)编辑单位:加中合教育(北京)Email:R声明:本书为内部资料,仅供加中合教育(北京)授权许可单位使用,未经许可任何单位和个人不得擅自摘抄、复制本书任何内容前 言本书是Java开发系列教程第3阶段的教学用书。全书分为25章,从JDBC的数据库编程入手,阐述了JDBC、SWING等内容,重点讲解了JSP语言,另外还讲到了JavaBean、JBuilder。本书结构清晰,内容丰富,讲述由浅入深,层层递进。技术与实例相结合,紧贴教师课堂讲解。在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。JSP 的发展是很迅速的,本书以实际工作为出发点,结合教师多年的Java工作和教学经验,是一本既好看懂,又具有专业性的案例教程。第1章至第2章讲述了JDBC与数据库的编程技术,讲解JDBC对数据库的访问。第3章至第5章讲述了SWING结构以及SWING组件(JFrame、Icon、JButton、JPopupMenu、JCheckBox、JRadioButton、JComboBox、JTabbedPane)第6章讲述了对象序列化的概念、对象序列化的实现方式以及定制序列化。第7章至第9章学习HTML的基本结构及标记分类、字体属性标记、文件标记等各种标记,还讲述了css的使用方法等。第10章至第13章讲述JavaScript知识,包括JavaScript数据类型、JavaScript常量及变量、JavaScript运算符及表达式、JavaScript函数、JavaScript程序结构、JavaScript事件及事件响应等。第14章至第25章重点讲述JSP的技术和应用,中间穿插讲解了Servlet、JavaBean、JBuilder等。最后,通过项目的开发,加深对所学内容的理解和掌握程度,同时学习JSP程序的开发流程。本书有“”、“”“*”标记,用来界定需要掌握的程度,其中“”表示重点掌握内容,无标记为正常,“”标记为略讲,一带而过,不详细展开,此三部分为必讲内容;“*”表示选讲内容,根据课时灵活安排。本书中可能存在一些疏漏,希望读者给予指正,如果您对本书有任何意见和建议,请Email至,我们将努力为你提供更完善的服务和支持。加中合教育产品部2004年10月目 录目 录第1章JDBC数据库编程11.1数据库应用模型11.2JDBC21.2.1加载驱动程序31.2.2指定数据库31.2.3打开数据库连接41.2.4提交查询41.2.5取得查询结果41.3PreparedStatement91.4CallableStatement10第2章JDBC数据库编程2122.1元数据122.1.1DatabaseMetaData122.1.2ResultSetMetaData142.2批处理152.3可滚动的结果集182.4可更新的结果集20第3章SWING1243.1Java基础类库(JFC)概述243.2组件、框架和标签263.2.1JFrame263.2.2Icon接口283.2.3按钮、助记符和提示293.2.4JPopupMenu323.2.5复选框343.2.6单选框363.2.7JComboBox373.2.8选项卡38第4章SWING2414.1滑杆414.2JScrollPane424.3进度条(JProgressBar)434.4列表框454.5菜单和工具条474.6文件对话框的使用504.7颜色对话框的使用51第5章SWING3545.1JTable545.1.1简单的JTable545.1.2AbstractTableModel555.1.3DefaultTableModel575.2布局管理器635.2.1GridBagConstraints类645.2.2用GridBagLayout设计布局64第6章对象序列化746.1什么是对象序列化?746.2对象序列化的实现方式746.3Serializable接口786.4Externalizable接口806.5序列化的内容83第7章HTML1857.1什么是HTML?857.1.1HTML 基本结构857.1.2第一个HTML文件867.1.3HTML文档的特点867.1.4HTML标记分类877.2字体属性标记877.2.1 标记877.2.2 粗体字标记887.2.3斜体字标记887.2.4加底线标记887.2.5删除线标记897.2.6打字体标记(固定宽度文字)897.2.7上标字标记907.2.8下标字标记907.2.9注解标记917.2.10设定字体大小、颜色、字型标记917.3文件标记的使用937.3.1HTML 基本架构937.3.2 BODY参数设定947.4标示标记的使用977.5区段标记的使用99第8章HTML21038.1链接标记的调用1038.2图像标记的使用1058.3表单标记1068.3.1form容器1068.3.2INPUT的参数设定1068.3.3表单高级应用1118.4表格标记1138.4.1table容器标记1138.4.2CAPTION表格标题1148.4.3TR表格行标记1148.4.4TD表格栏资料1158.4.5TH表格栏标题标记116第9章HTML31179.1常用框架标记1179.2在网页中加入声音1199.3在页面中添加视频动画1209.4其他标记1229.5CSS简介1239.6CSS 文档1239.6.1CSS样式表的格式1249.6.2CSS的定制1249.6.3将样式与HTML 结合1249.7字体的控制1259.8背景的控制1259.9CSS滤镜1279.10CSS鼠标指针130第10章JavaScript113310.1JavaScript语言概况13310.1.1什么是JavaScript?13310.1.2JavaScript的特点13310.1.3JavaScript和Java的区别13410.2JavaScript的运行环境13410.3我的第一个JavaScript程序13410.4JavaScript代码的位置13510.5JavaScript的数据类型13510.6JavaScript中的常量及变量13610.6.1JavaScript中的常量13610.6.2JavaScript中的变量13610.6.3变量的声明和作用域13710.7运算符及表达式13810.8函数13910.9程序结构141第11章JavaScript214911.1JavaScript的事件及事件响应14911.1.1onClick事件15011.1.2OnChange事件15111.1.3其他事件15311.2JavaScript对象15511.3JavaScript常用对象的使用15511.3.1串对象15511.3.2 Math对象15811.3.3Date对象15911.4数组160第12章JavaScript316312.1浏览器内置对象16312.2navigator对象16312.3Window对象16412.4History对象16712.5Location对象16812.6Document对象16912.7Web页面信息的交互17012.7.1Button17112.7.2Text17212.7.3Textarea17312.7.4Select174第13章JavaScript417813.1Form对象(续)17813.1.1Checkbox17813.1.2Radio18013.1.3Submit18513.1.4Password18613.1.5Hidden18713.1.6fileUpload18713.2几个特效18813.2.1自动滚屏18813.2.2页面上显示走动的时间18913.2.3最后访问时间19113.2.4页面停留时间19413.2.5离开时提醒加入收藏夹19613.2.6在状态栏显示的跑马灯196第14章JSP119914.1JSP简介19914.2我的第一个JSP程序19914.3JSP的基本语法20414.4JSP指令20514.4.1JSP脚本标签指令20514.4.2JSP操作指令207第15章JSP221115.1JSP隐含对象21115.2表单与JSP程序的结合21215.2.1文本框21315.2.2下拉框21515.2.3 复选框21815.2.4 单选按钮219第16章JSP322416.1JSP和客户端脚本的结合22416.2实现图片提交按钮22716.3session对象22816.4Cookie230第17章JSP423417.1JSP中的错误处理机制23417.2综合案例237第18章Servlet24518.1Servlet简介24518.2Servlet编程接口24618.3HTML和Servlet的交互24818.4修改web.xml中和Servlet相关的配置信息24918.5JSP和Servlet间的通信250第19章JavaBean125319.1基于组件的软件开发25319.2JavaBean25319.3JSP与JavaBean的结合254第20章JavaBean226220.1投票系统的实现26220.2系统维护的实现263第21章JSP526521.1分页控制的实现265第22章JSP627522.1Java上传组件的使用275第23章JSP728923.1JSP设计模式28923.2经典案例分析:音乐无国界290第24章JSP829924.1Tomcat服务器的配置29924.2CVS30024.2.1CVS特点30024.2.2CVS的服务器安装与配置30024.2.3几款优秀的客户端工具30124.2.412项常用功能301第25章JBuilder的使用30425.1JBuilder的简介30425.2JBuilder的使用305V第1章 JDBC数据库编程第1章JDBC数据库编程学习目标n 掌握JDBC数据库编程n 能够用JDBC访问多种数据库本章内容n 数据库应用模型n JDBC编程步骤n PreparedStatementn CallableStatement1.1数据库应用模型两层结构:图1-1 两层结构三层结构:图1-2 三层结构1.2JDBCJDBCJava DataBase Connectivityn JDBC功能:支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程;提供多样化的数据库连接方式;为各种不同的数据库提供统一的操作界面。图1-3 JDBCn JDBC编程步骤: 生成JDBC驱动的实例或是通过jdbc.drivers系统属性加载向系统注册一个驱动程序 指定数据库 打开数据库连接 提交数据库查询 取得查询结果图1-4 JDBC编程步骤1.2.1加载驱动程序通过调用方法Class.forName()。这将显式地加载驱动程序类。 Class.forName(“oracle.jdbc.driver.OracleDriver”); 1.2.2指定数据库JDBC URL的标准语法如下所示。它由三部分组成,各部分之间用冒号分隔:jdbc:在JDBC URL中应将网络地址作为子名称的一部分包括进去,且必须遵循如下所示的标准URL命名约定:/主机名:端口/子协议 jdbc:oracle:thin:localhost:1521:ora8 jdbc:mysql:/localhost/myDB?useUnicode=true&characterEncoding=gb2312 jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=mydbODBC数据源的建立:打开ODBC数据源管理器(开始程序管理工具数据源(ODBC),添加用户DSN或系统DSN。1.2.3打开数据库连接 Connectioncon=DriverManager. getConnection(url,“user”,“password”); 1.2.4提交查询 Statementstmt=con.createStatement(); ResultSetrs=stmt.executeQuery( “SELECTa,b,cFROMTable1”); 1.2.5取得查询结果查询结果作为一个行的集合存在一个ResultSet对象中;ResultSet对象初始化指向第一行;用next()方法到下一行;用get方法取得某一列的值:方法 返回类型getBooleanbooleangetByte bytegetBytes bytegetDate java.sql.DategetDouble doublegetFloat floatgetInt intgetLong longgetObject ObjectgetShort ShortgetString java.lang.StringgetTime java.sql.TimegetTimestamp java.sql.TimestampJDBC-ODBC桥图1-5 JDBC-ODBC桥n 连接Access数据库案例1-1JDBC程序 目标:练习连接Access数据库代码:/ *范例名称:连接Access数据库举例 * 源文件名称:TestJDBC.java * 要点: *1. JDBC编程步骤 */import java.sql.*;public class TestJDBCpublic static void main(String args) tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection con = DriverManager.getConnection墩( “jdbc:odbc:TESTACCESS”, “”, “”); Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(“select * from table1”);while(rs.next()System.out.print(“t编号:” + rs.getString(1);System.out.print(“t姓名:” + rs.getString(2);System.out.print(“t性别:” + rs.getString(3);System.out.println();con.close();catch(Exception e)e.printStackTrace();案例1-2JDBC程序 目标:往数据库中加入数据代码:/ *范例名称:向Access数据库加入数据举例 *源文件名称:InsertData.java *要点: *1. JDBC编程步骤 *2. SQL语句的写法 */import java.sql.*;public class InsertDatapublic static void main(String args) tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection con = DriverManager.getConnection ( “jdbc:odbc:TESTACCESS” , “”, “”); Statement stmt=con.createStatement();stmt.execute(“insert into table1 values (99999,Liu,m)”);con.close();catch(Exception e)e.printStackTrace();n 连接文本文件案例1-3JDBC程序连接文本文件目标:用JDBC连接文本文件代码:/ * 范例名称:JDBC程序连接文本文件举例 *源文件名称:TestTXT.java *要点: *1. JDBC编程步骤 *2. SQL语句的写法 */import java.sql.*;public class TestTXTpublic static void main(String args) tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection con = DriverManager.getConnection(“jdbc:odbc:TESTTXT”, “”, “”); Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(“select * from test.txt”);while(rs.next()System.out.print(“t编号:” + rs.getString(1);System.out.print(“t姓名:” + rs.getString(2);System.out.print(“t性别:” + rs.getString(3);System.out.println();con.close();catch(Exception e)e.printStackTrace();n 访问Oracle数据库oracle.jdbc.driver.OracleDriver将classes12.zip加入到classpath案例1-4JDBC程序目标:使用JDBC连接Oracle数据库代码:/ *范例名称:JDBC应用举例 *源文件名称:JDBCExample.java *要点: *1. Oracle JDBC Driver的使用 *2. 加载Driver的多种不同方式 */import java.sql.*;public class JDBCExamplepublic static void main(String args)String serverName = “192.168. 0.118”;tryClass.forName(“oracle.jdbc.driver.OracleDriver”);/System.setProperty(“jdbc.drivers”,”oracle.jdbc.driver.OracleDriver”);String url=”jdbc:oracle:thin:”+serverName+”:1521:ora8”;System.out.println(url);Connection conn=DriverManager.getConnection(url,”scott”,”tiger”);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(“select * from dept”);while(rs.next()System.out.print(“DeptNo: “+rs.getInt(1);System.out.print(“tDeptName: “+rs.getString(2);System.out.println(“tLOC: “+rs.getString(3);catch(Exception e)e.printStackTrace(); n 自动提交功能 Transaction: Connection conn = conn.setAutoCommit (true / false);案例1-5自动提交应用举例目标:数据库自动提交功能代码:/ *范例名称:自动提交应用举例 *源文件名称:TestCommit.java *要点: *1. Oracle JDBC Driver的使用 *2. 加载Driver的多种不同方式 */import java.sql.*;public class TestCommitpublic static void main(String args)String serverName = “192.168. 0.118”;tryClass.forName(“oracle.jdbc.driver.OracleDriver”);String url=”jdbc:oracle:thin:”+serverName+”:1521:ora8”;System.out.println(url);Connection conn=DriverManager.getConnection(url,”scott”,”tiger”);/ 这里设置自动提交功能为“禁止”conn.setAutoCommit(false); Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(“select * from dept”);while(rs.next()System.out.print(“DeptNo: “+rs.getInt(1);System.out.print(“tDeptName: “+rs.getString(2);System.out.println(“tLOC: “+rs.getString(3);catch(Exception e)e.printStackTrace(); 1.3PreparedStatement用于执行带或不带输入参数的预编译SQL语句;已预编译过,执行速度要快;当需要多次调用同一条SQL语句时,可以使用PreparedStatement接口;PreparedStatement从Statement继承而来;PreparedStatement接口常用方法:setXXX()executeQuery()executeUpdate()案例1-6PreparedStatement应用举例目标:使用PreparedStatement查询语句代码:/ *范例名称:PreparedStatement应用举例 *源文件名称:PrepStmt.java *要点:PreparedStatement接口的使用 */import java.sql.*;public class PrepStmtpublic static void main(String args)trynew oracle.jdbc.driver.OracleDriver();Connection conn = DriverManager.getConnection (“jdbc:oracle:thin:localhost:1521:ora8” ,”scott” ,”tiger”);PreparedStatement stmt = conn.prepareStatement(“insert into mytable1 values(?,?,?)”);stmt.setInt(1,23);stmt.setString(2,”Kit”);stmt.setInt(3,88);stmt.executeUpdate();catch(SQLException e)System.err.println(e);1.4CallableStatement当不直接使用SQL语句,而是调用数据库中的Store Procedure时,要用到Callable Statement;CallableStatement从PreparedStatement接口继承而来。 CallableStatement cstmt = con.prepareCall(“call reviseTotal(?)”); cstmt.setByte(1, 25); cstmt.registerOutParameter(1, java.sql.Types.TINYINT); cstmt.executeUpdate(); byte x = cstmt.getByte(1); 案例1-7CallabelStatement应用举例目标:使用CallableStatement语句代码:/ *范例名称:CallabelStatement应用举例 *源文件名称:CallStmt.java/myProcedure1.sql *要点:CallableStatement接口用法 */import java.sql.*;public class CallStmtpublic static void main(String args)trynew oracle.jdbc.driver.OracleDriver();Connection conn = DriverManager.getConnection (“jdbc:oracle:thin:24:1521:ora8”, ”scott”, ”tiger”);CallableStatement stmt = conn.prepareCall(“call MyProcedure1(?,?,?)”);stmt.setInt(1,77);stmt.setString(2,”Ruby”);stmt.setInt(3,45);stmt.execute();catch(SQLException e)System.err.println(e); 小结n 学习了JDBC编程步骤n 学习了PreparedStatement语句n 学习了CallableStatement语句作业第1题:分析并运行本章例题。第2题:从oracle数据库students表中取出所有数据,并用PreparedStatement向students中加入一条数据。students表由自己建,包括下列项:学号、姓名、性别、年龄、居住地。11第2章 JDBC数据库编程第2章JDBC数据库编程2学习目标n 掌握元数据的使用n 掌握批处理的作用n 会使用可滚动的结果集n 会使用可更新的结果集本章内容n 元数据n 批处理n 可滚动的结果集n 可更新的结果集2.1元数据元数据(metadata):描述数据库或数据库一部分的数据。分为两种:数据库元数据和结果集元数据。2.1.1DatabaseMetaData getTables(String catalog, String schemaPattern, String tableNamePattern, String types) getColumns(Stringcatalog, String schemaPattern, String tableNamePattern, StringcolumnNamePattern ) getPrimaryKeys(Stringcatalog, Stringschema, Stringtable)案例2-1数据库元数据方法应用举例目标:数据库元数据方法的使用代码:/ *范例名称:数据库元数据方法应用举例 * 源文件名称:DBMetaDataMethods.java *要点: * 1. getTables方法的使用 * 2. getPrimaryKeys方法的使用 */import java.sql.*; public class DBMetaDataMethods public static void main(String args) String url = jdbc:odbc:thinkhi;Connection con;Statement stmt;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException e) System.err.print(ClassNotFoundException: ); System.err.println(e.getMessage();try con = DriverManager.getConnection(url, , );stmt = con.createStatement(); DatabaseMetaData md = con.getMetaData(); ResultSet rs = md.getTables(null, null, null, new String TABLE);while (rs.next() String s = rs.getString(3);System.out.print(s + ); System.out.println(); ResultSet rs1 = md.getPrimaryKeys(null, null, students); while (rs1.next() for (int i=1; i7; i+) String s3=rs1.getString(i);System.out.println(s3); stmt.close();con.close(); catch(SQLException ex) System.err.println(SQLException: + ex.getMessage();2.1.2ResultSetMetaData getColumnCount() getColumnDisplaySize(int column) getColumnLabel(int column) getColumnName(int column)案例2-2结果集元数据方法应用举例目标:掌握结果集元数据方法的使用代码:/ *范例名称:结果集元数据方法应用举例 * 源文件名称:RSMetaDataMethods.java *要点: * 1. 各种方法的使用 */import java.sql.*; public class RSMetaDataMethods public static void main(String args) String url = jdbc:odbc:thinkhi;Connection con;Statement stmt;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException e) System.err.print(ClassNotFoundException: ); System.err.println(e.getMessage();try con = DriverManager.getConnection(url, , );stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select * from students);ResultSetMetaData rsmd = rs.getMetaData();int numberOfColumns = rsmd.getColumnCount();for (int i = 1; i = numberOfColumns; i+) String colName = rsmd.getColumnName(i);String tableName = rsmd.getTableName(i);String name = rsmd.getColumnTypeName(i);boolean caseSen = rsmd.isCaseSensitive(i);boolean writable = rsmd.isWritable(i);System.out.println(Information for column + colName);System.out.println( Column is in table + tableName);System.out.println( DBMS name for type is + name);System.out.println( Is case sensitive: + caseSen);System.out.println( Is possibly writable: + writable);System.out.println();while (rs.next() for (int i = 1; i = numberOfColumns; i+) String s = rs.getString(i);System.out.print(s + );System.out.println();stmt.close();con.close(); catch(SQLException ex) System.err.println(SQLException: + ex.getMessage();2.2批处理 setAutoCommit(false) addBatch(String command) executeBatch() commit()恢复原autoCommit设置;案例2-3批处理应用举例目标:批处理的使用步骤代码:/ *范例名称:批处理应用举例 * 源文件名称:TestBatch.java *要点: * 1. setAutoCommit() * 2. 批处理步骤 */import java.sql.*;public class TestBatch public static void main(String args) throws SQLException ResultSet rs = null;PreparedStatement ps = null;String url = jdbc:odbc:thinkhi;Connection con;Statement stmt;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException e) System.err.print(ClassNotFoundException: );System.err.println(e.getMessage();try con = DriverManager.getConnection(url, , );con.setAutoCommit(false);stmt = con.createStatement
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 禁毒手机知识培训会课件
- 2025年一二单元试题及答案
- 苏幕遮范仲淹课件
- 2025延安延河职业高中招聘考试参考试题及答案解析
- 2025重庆江津区双福第二中学招聘教师2人备考练习题库及答案解析
- 叉车安全管理规定试题(附答案)
- 2025云南昆明市晋宁区上蒜镇中心幼儿园招聘编外工作人员2人备考练习试题及答案解析
- 检验检测机构资质认定评审准则培训考试卷(附答案)
- 2025年湖南常德市第十三中学教师临聘23人备考练习试题及答案解析
- 全国大学生就业创业知识竞赛题库及答案
- 学前儿童家庭教育(高职)全套教学课件
- 小学班主任要有“三心”-浅谈小学班主任的师爱
- 《新能源汽车整车控制技术》教案全套 项目1-5 整车控制系统检测与维修-电动助力系统检测与维修
- 2023年工业固废处理行业市场分析报告及未来发展趋势
- 仓库制度管理
- 三年级语文数学期末试卷
- 建筑装饰工程施工总平面布置图
- 三年级请假条练习
- (完整版)中国古代书法史课件
- 公司员工福利薪酬管理制度
- 智能网联汽车计算平台测试装调完整全套教学课件
评论
0/150
提交评论