JSP总结复习T38班毛少军小组第一章第一章动态网站开发基础第二章用集合存储对象第三章访问数据库第四章JSP简介第五章JSP指令和脚本元素第六章JSP处理客户端请求第七章JSP业面的访问控制第一章开发JSP动态网站的步骤如下:创建一个Web项目.设计Web项目的目录结构.编写Web项目的代码.部署Web项目.运行Web项目.第一章做Web程序开发时,要避免如下一些常犯的操作错误:未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务.未部署Web应用,就试图运行Web程序.运行时,URL输入错误.存放文件的目录无法对外引用.如文件放入了WEB-INF,META,INF等文件夹中.主要目的:掌握Java集合框架的常用接口掌握常用集合类:ArrayList、LinkedList、HashMap第二章List接口和ArrayList类ArrayList实现了可变大小的数组,使用它的优点就是遍历元素和随机访问元素效率较高。使用方法:List对象名=newArrayList();ArrayList的常用方法返回类型方法说明booleanadd(objecto)将指定的元素追加到此列表的尾部。intsize()返回此列表中的元素数。objectget(intindex)返回此列表中指定位置上的元素。(使用前需强制转换)voidadd(intindex,objecto)将指定的元素插入此列表中的指定位置。booleancontains(objecto)如果此列表中包含指定的元素,则返回true。booleanremove(objecto)从此列表中移除指定元素的单个实例List接口和LinkedList类publicclassCatTest{publicstaticvoidmain(String[]args){//创建一个ArrayList,向其中添加几个Cat对象;ArrayListlist=newArrayList();list.add(newCat(mimi));list.add(newCat(qiqi));list.add(newCat(ding))//遍历该集合,并且对每个Cat对象调用show()方法。for(inti=0;ilist.size();i++){Catc=(Cat)list.get(i);c.show();}}}List接口和LinkedList类LinkedList类和ArrayList类相比,在插入或删除元素时,LinkedList提供更好的性能。插入首个元素或插入最后元素,删除首个元素或删除最后元素使用LinkedList。用法:List对象名=newLinkedList();LinkedList常用方法返回类型方法说明voidaddFirst(objecto)将给定元素插入此列表的开头。voidaddLast(objecto)将给定元素追加到此列表的结尾。objectgetFirst()返回此列表的第一个元素。objectgetLast()返回此列表的最后一个元素。objectremoveFirst()移除并返回此列表的第一个元素。objectremoveLast()移除并返回此列表的最后一个元素。LinkedList对象名=newLinkedList();//使用List接口没有的方法时List接口和LinkedList类packages2jsp.sg.ch02.exercise;importjava.util.*;publicclassStack{privateLinkedListlist=newLinkedList();publicvoidadd(Objectobj){list.addLast(obj);}publicObjectget(){returnlist.removeLast();}publicstaticvoidmain(String[]args){Stackstack=newStack();stack.add(1);stack.add(2);System.out.println(stack.get());}}Map接口和HashMap类Map接口和HashMap类HashMap是Map接口的实现类,实现键到值的映射的哈希表。通过键来查找相对应的值。一个映射不能包含重复的键;每个键最多只能映射一个值。并允许使用null值和null键用法:Map对象名=newHashMap();HashMap的常用方法返回类型方法说明objectput(objectkey,objectvalue)映射中关联指定键和指定值,值可以重复,插入重复键会替换原先的值SetkeySet()返回键的集合Collectionvalues()返回值的集合booleancontatinsKey(objectkey)如果此映射包含对于指定的键的映射关系,则返回true。objectget(objectkey)根据键返回关联的值,如不存在指定的键则返回nullobjectremove(objectkey)如果此映射中存在该键的映射关系,则将其删除。Map接口和HashMap类packages2jsp.sg.ch02.exercise;importjava.util.*;classBook{privateStringtitle;publicBook(Stringtitle){this.title=title;}publicStringtoString(){returntitle;}}Map接口和HashMap类publicclassBookTest{publicstaticvoidmain(String[]args){//使用HashMap进行存储,键为Book对象的编号,值为Book对象HashMapmap=newHashMap();map.put(1,newBook(面向对象编程));map.put(2,newBook(Java入门));map.put(3,newBook(Java实用手册));//通过某一个编号获取Book对象,并打印该Book对象的标题。if(map.containsKey(2)){Bookbook=(Book)map.get(2);System.out.println(book);}}}总结Collection是最基本的集合接口.List接口继承自Collection接口.List是序集合,允许有相同的元素.Map提供键到值的映射.ArrayList是List接口的一个实现类.它实现了可变大小的数组,在进行随机访问和遍历元素时,它提供更好的性能.LinkedList是List接口的一个实现类,它提供了额外的addFirst(),addlast(),removeFirst(),removeLast()等方法,可以在LinkedList的首部或尾部进行插入或者删除操作.而且,相较于ArrayList,在插入或者删除元素时,LinkedList提供更好的性能.HashMap是Map接口的实现类,实现了一个键到值映射的哈希表.第三章本章目的:掌握JDBC的工作原理掌握如何获取数据库连接掌握如何对数据进行增、删、改、查JDBC的使用JDBC是java数据库的连接技术,提供连接各种常用数据库的能力。有了JDBC访问各种数据库就很容易了。JDBCAPI是java程序与各种数据库交互标准接口.可以用来对数据库进行操作.JDBCDriverManager:它能够管理各种不同的JDBC驱动.JDBC驱动:就是加载数据库所需的,例如mssql数据库连接就需要对应的驱动。JAVAAPI工作原理:与数据连接、发送SQL语句、处理结果。以下是4个重要环节。DriverManager:依据数据库的不同,管理JDBC驱动Connection:负责连接数据库并担任传送数据的任务Statement:由Connection产生、负责执行SQL语句ResultSet:负责保存Statement执行后所产生的查询结果JDBC的使用JDBC-ODBC桥连:适用于个人的开发与测试。运行这个ODBC桥连接,不需要下载额外的JDBC驱动,只需配置ODBC就可以了。Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectioncon=DriverManager.getConnection(jdbc:odbc:bbs,sa,sa);纯java驱动方式:它直接同数据库进行连接,在开发时推荐使用。运行这个纯java驱动来连接,需要下载指定数据库的驱动,例如mysql数据库进行连接就需要下载mysql公司出的mysql的jdbc驱动。StringURL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bbs;Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);Connectioncon=DriverManager.getConnection(URL,sa,sa);PreparedStatement语句使用Statement用于执行静态SQL语句并返回它所生成结果的对象。最常用的几个方法:execute(Stringsql):执行给定的SQL语句,该语句可能返回多个结果。返回类型这boolean类型。executeQuery(Stringsql):执行给定的SQL语句,该语句返回单个ResultSet对象。ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。executeUpdate(Stringsql):可以执行插入、删除、更新等操作,返回类型是int类型,值是所影响的行数。PreparedStatement接口继承Statement接口,但是比Statement更加灵活,更有效率。PreparedStatement表示预编译的SQL语句的对象。SQL语句被预编译并且存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行该语句。PreparedStatementpstmt=con.prepareStatement(select*fromtestwherename=?andpass=?);pstmt.setString(1,accptech);pstmt.setString(2,accp);JDBC程序的工作模板try{Class.forName(JDBC驱动类);}catch(ClassNotFoundExceptione){System.out.println(无法找到驱动类);}try{Connectioncon=DriverManager.getConnection(JDBCURL,数据库用户名,密码);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(SELECTa,b,cFROMTable1);while(rs.next()){intx=rs.getInt(a);Strings=rs.getString(b);floatf=rs.getFloat(c);}con.close();}catch(SQLExceptione){e.printStackTrace();}获得数据库连接发送Sql语句处理结果注册JDBC驱动JDBCURL用来标识数据库必须处理的异常释放资源必须处理的异常使用Statement插入数据使用桥连方式向FirstLevelTitle表中插入一条记录——代码片断——publicstaticvoidmain(String[]args){Connectioncon=null;Statementstatement=null;try{StringstrSql=insertintoFirstLevelTitlevalues(1,'军事','网管',getdate());try{Class.forName(sun.j