Jsp 学习笔记[一](2002版《Jsp Web 编程指南》)
1、如何从表单获取参数值?
request.getParameter("pname");
如何从表单获取多个值?
request.getParameterValus("pname");
request 是J2EE Web容器提供的隐含变量,request 对象的类型是HTTPServletRequest。
2、java.io.Serializable 是做什么用的?
3、 每个JavaBean 或类在修改后,都要重新执行编译才能使用,目前知道的方法是重新启动服务器,不知道还有没有其它方法;
4、JavaBean 与 EJB 有很大的不同,JavaBean 可以理解为单个类来使用,它可以在服务器端(<%%>)使用,也可以在客户端(使用标签:jsp:userBean)使用;而EJB 是具有事务处理,数据库连接池、安全等功能的服务器组件,EJB 很复杂。
要把一个类作为JavaBean 使用,其构造函数必须为空。
5、标签库:
标签库处理程序类、标签库描述符(TLD)、标签库指示这三部分是使用标签库的最重要的概念。
6、Java 中的类的概念
抽象类与接口的区别:
a、抽象类可以实现一部分方法,而接口所有的方法都没有实现;b、子类只可以从一个超类继承,但可以实现多个接口
方法的重载:
类中的同名方法,如果参数不同,则为方法的重载;
如果类实现了父类的方法,也为重载。
main() 方法:每个JAVA应用程序都有一个main() 方法,这个方法是应用程序的入口点,它的定义为:
public static void main(String[] args)
7、集(Collection)的概念,集框架提供了一组设计好的接口,把集分成三类:
集合(java.util.Set)
列表(java.util.List)
映射(java.util.Map)
集合(Sets)是一组无序的对象;
列表(Lists)是一组有序的对象;
映射(Maps)是一组成对保存的对象;
在java.util 中,有9种集类用来操作上述三种接口的集;列表如下:
接口 集类
Set HashSet , TreeSet
List Vector , Stack , ArrayList , LinkedList
Map HashTable , TreeMap , HashMap , WeakHashMap
最常用的三个集类是:ArrayList , Stack , HashMap
8、ArrayList 的容量:capacity ,是指可存放的对象的多少;
ArrayList 的大小:Size ,是指当前存放的对象的多少;
9、集的循环接口 Iterator
引入类:java.util.Iterator
然后对集类调用iterator()方法,得到一个循环子 iterator,该类具有三个方法:next() , hasNext() , remove()
import java.util.Iterator;
Iterator userIter=userList.iterator();
while(userIter.hasNext()){
User usr=(User) userIter.next();
out.println(usr.getUserName());
}
10、ArrayList 的排序
ArrayList 可以排序,这个功能是由集框架的一个静态方法提供的,引入:java.util.Collections
举例:
ArrayList names=new ArrayList();
names.add("aaaa");
names.add("cccc");
names.add("bbbb");
此时,如果用循环子输出,得到的结果同上;
Collections.sort(names);
此时再用循环子输出,得到的是aaaa,bbbb,cccc
但,要对自定义的类进行排序,就需要在类中实现java.lang.Comparable 接口。
11、栈集,Stack,先进后出
类:java.util.Stack
基本操作:
push() ,向栈中放入一个项
pop(),从栈顶删除一个项
----
peek(),从栈顶返回一个项,但不删除
empty(),栈是否为空
search(),在栈中查找某个对象,,找到后返回离栈顶的偏移;否则,返回-1
12、HashMap 集
类:java.util.HashMap
基本操作:
put(),放入一对值;
get(),根据键获取关联值;
----
remove(),从映射中删除指定键的值,并返回该值
size(),返回键值对的数量
putAll(),将某个“键--值对”对象传递给另一个“键-值对”
13、Date类和Time类
日期的比较:
Date myDate=new Date();
Date currentDate=new Date();
myDate.compareTo(currentDate);
如果相等返回0,如果调用方法的值晚,则返回正数;如果调用方法的值早,则返回负数;
日历类:
java.util.Calendar,其中包含了多种日历类;
罗马日历类:GregorianCalendar
格式化日期:
java.text.SimpleDateFormat,允许我们自定义格式化模式;
14、错误处理
错误有两种,一种是Error,叫错误,代码中不能处理;一种是Exception ,叫异常,代码中可处理;
抛出异常用 throw 语句。如:throw new Exception("Bad things just happened");
处理异常的方式:
内部方式:在try块中可以捕获抛出的异常,可以在catch 块中处理;
外部方式:抛出异常的方法声明了该异常可以处理,如下:
public void validateUser(pageContext page) throws Exception
实例:
public void validateUser() throws Exception(){
if(!userpwd.equals("wuxs")){
Exception trouble=new Exception("密码不正确。");
throw trouble;
}
}
14、JSP中的错误处理页
错误处理页和其它JSP页面页一样,但增加了隐含的对象用于跟踪错误。
创建一个错误处理页有4步:
A)、让JSP页面知道一旦出错要用哪个错误处理页。<%@ page errorPage="error.jsp" %>
B)、构建错误处理页面;
C)、在错误处理页,设置page指示的isErrorPage 属性为真。这个属性告诉JSP容器为错误处理页面去创建一个exception 隐含对象。<% page isErrorPage="true" %>
D)、在错误处理页面中,exception 隐含对象指向一个在原始JSP页面中出现的异常,可以通过代码进行处理。
request.getParameter("pname");
如何从表单获取多个值?
request.getParameterValus("pname");
request 是J2EE Web容器提供的隐含变量,request 对象的类型是HTTPServletRequest。
2、java.io.Serializable 是做什么用的?
3、 每个JavaBean 或类在修改后,都要重新执行编译才能使用,目前知道的方法是重新启动服务器,不知道还有没有其它方法;
4、JavaBean 与 EJB 有很大的不同,JavaBean 可以理解为单个类来使用,它可以在服务器端(<%%>)使用,也可以在客户端(使用标签:jsp:userBean)使用;而EJB 是具有事务处理,数据库连接池、安全等功能的服务器组件,EJB 很复杂。
要把一个类作为JavaBean 使用,其构造函数必须为空。
5、标签库:
标签库处理程序类、标签库描述符(TLD)、标签库指示这三部分是使用标签库的最重要的概念。
6、Java 中的类的概念
抽象类与接口的区别:
a、抽象类可以实现一部分方法,而接口所有的方法都没有实现;b、子类只可以从一个超类继承,但可以实现多个接口
方法的重载:
类中的同名方法,如果参数不同,则为方法的重载;
如果类实现了父类的方法,也为重载。
main() 方法:每个JAVA应用程序都有一个main() 方法,这个方法是应用程序的入口点,它的定义为:
public static void main(String[] args)
7、集(Collection)的概念,集框架提供了一组设计好的接口,把集分成三类:
集合(java.util.Set)
列表(java.util.List)
映射(java.util.Map)
集合(Sets)是一组无序的对象;
列表(Lists)是一组有序的对象;
映射(Maps)是一组成对保存的对象;
在java.util 中,有9种集类用来操作上述三种接口的集;列表如下:
接口 集类
Set HashSet , TreeSet
List Vector , Stack , ArrayList , LinkedList
Map HashTable , TreeMap , HashMap , WeakHashMap
最常用的三个集类是:ArrayList , Stack , HashMap
8、ArrayList 的容量:capacity ,是指可存放的对象的多少;
ArrayList 的大小:Size ,是指当前存放的对象的多少;
9、集的循环接口 Iterator
引入类:java.util.Iterator
然后对集类调用iterator()方法,得到一个循环子 iterator,该类具有三个方法:next() , hasNext() , remove()
import java.util.Iterator;
Iterator userIter=userList.iterator();
while(userIter.hasNext()){
User usr=(User) userIter.next();
out.println(usr.getUserName());
}
10、ArrayList 的排序
ArrayList 可以排序,这个功能是由集框架的一个静态方法提供的,引入:java.util.Collections
举例:
ArrayList names=new ArrayList();
names.add("aaaa");
names.add("cccc");
names.add("bbbb");
此时,如果用循环子输出,得到的结果同上;
Collections.sort(names);
此时再用循环子输出,得到的是aaaa,bbbb,cccc
但,要对自定义的类进行排序,就需要在类中实现java.lang.Comparable 接口。
11、栈集,Stack,先进后出
类:java.util.Stack
基本操作:
push() ,向栈中放入一个项
pop(),从栈顶删除一个项
----
peek(),从栈顶返回一个项,但不删除
empty(),栈是否为空
search(),在栈中查找某个对象,,找到后返回离栈顶的偏移;否则,返回-1
12、HashMap 集
类:java.util.HashMap
基本操作:
put(),放入一对值;
get(),根据键获取关联值;
----
remove(),从映射中删除指定键的值,并返回该值
size(),返回键值对的数量
putAll(),将某个“键--值对”对象传递给另一个“键-值对”
13、Date类和Time类
日期的比较:
Date myDate=new Date();
Date currentDate=new Date();
myDate.compareTo(currentDate);
如果相等返回0,如果调用方法的值晚,则返回正数;如果调用方法的值早,则返回负数;
日历类:
java.util.Calendar,其中包含了多种日历类;
罗马日历类:GregorianCalendar
格式化日期:
java.text.SimpleDateFormat,允许我们自定义格式化模式;
14、错误处理
错误有两种,一种是Error,叫错误,代码中不能处理;一种是Exception ,叫异常,代码中可处理;
抛出异常用 throw 语句。如:throw new Exception("Bad things just happened");
处理异常的方式:
内部方式:在try块中可以捕获抛出的异常,可以在catch 块中处理;
外部方式:抛出异常的方法声明了该异常可以处理,如下:
public void validateUser(pageContext page) throws Exception
实例:
public void validateUser() throws Exception(){
if(!userpwd.equals("wuxs")){
Exception trouble=new Exception("密码不正确。");
throw trouble;
}
}
14、JSP中的错误处理页
错误处理页和其它JSP页面页一样,但增加了隐含的对象用于跟踪错误。
创建一个错误处理页有4步:
A)、让JSP页面知道一旦出错要用哪个错误处理页。<%@ page errorPage="error.jsp" %>
B)、构建错误处理页面;
C)、在错误处理页,设置page指示的isErrorPage 属性为真。这个属性告诉JSP容器为错误处理页面去创建一个exception 隐含对象。<% page isErrorPage="true" %>
D)、在错误处理页面中,exception 隐含对象指向一个在原始JSP页面中出现的异常,可以通过代码进行处理。