a标签下载文件监听事件

在HTML中,通过a标签的download属性可以让用户下载链接所对应的文件。当用户点击下载链接并且下载完成后,可以通过JavaScript来监听下载完成的事件。

1.页面标签

<a href="path/to/your/file" download>下载文件</a>

2.监听事件

const downloadLink = document.querySelector('a[download]'); downloadLink.addEventListener('click', function() {

// 下载开始,做一些操作

});

downloadLink.addEventListener('load', function() {

// 下载完成,做一些操作

});

downloadLink.addEventListener('error', function() {

// 下载出错,做一些操作

});

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>关于java异常处理(讲义)--JSP中文网</TITLE> <META content="text/html; charset=gb2312" http-equiv=Content-Type> <META name=Description content=关于java异常处理(讲义),JSP中文网> <META name=keywords content=关于java异常处理(讲义)><LINK rel=stylesheet type=text/css href="http://www.jspcn.net/css/news.css"><LINK rel=stylesheet type=text/css href="http://www.jspcn.net/css/qq.css"> <META name=GENERATOR content="MSHTML 8.00.7600.16535"></HEAD> <BODY> <DIV id=area> <DIV id=title1> <UL> <LI><A href="http://www.jspcn.net/">JSPCN主页</A> </LI> <LI><A href="http://www.jspcn.net/index.html" target=_blank><B>JSP空间</B></A> </LI> <LI><A href="http://www.jspcn.net/moreNews.html" target=_blank>JSP技术</A> </LI> <LI><A href="http://www.jspcn.net/moreSofts.html" target=_blank>JSP下载</A> </LI> <LI><A href="http://www.jspcn.net/AboutUs.html" target=_blank>关于我们</A> </LI> <LI><A href="http://www.jspcn.net/ContactUs.html" target=_blank>联系我们</A> </LI></UL>  </DIV> <DIV id=title2><A href="http://www.jspcn.net/"><IMG border=0 alt=JSP虚拟主机,jsp空间,java空间,java虚拟空间 src="http://www.jspcn.net/images/logo.gif"></A><A href="http://www.jspcn.net/"><IMG border=0 alt=JSP虚拟主机,jsp空间,java空间,java虚拟空间 src="http://www.jspcn.net/images/head.gif"></A></DIV> <DIV id=ad><B>当前位置:</B> <A href="http://www.jspcn.net/">首页</A> --> <A href="http://www.jspcn.net/moreNews.html">JSP文章</A> -->  <A href="http://www.jspcn.net/htmlnews/B20070807101134.html">JAVA技术</A> --> <A href="http://www.jspcn.net/htmlnews/B20070807102438.html">异常处理</A> --> 关于java异常处理(讲义) </DIV> <DIV id=vcontent> <DIV id=left1> <UL> <LI><A title=exception 隐含对象 href="http://www.jspcn.net/htmlnews/11501025699371438.html" target=_blank>exception 隐含对象</A> <LI><A title=谈自定义Exception进行错误处理 href="http://www.jspcn.net/htmlnews/11500776135931403.html" target=_blank>谈自定义Exception进行错误处理</A> <LI><A title="When catching exceptions, don't cast your net too wide" href="http://www.jspcn.net/htmlnews/1150060605562142.html" target=_blank>When catching exceptions, don't cast your net too wide</A> <LI><A title=NoClassDefDoundErr与ClassNotFoundException区别 href="http://www.jspcn.net/htmlnews/11500204450151651.html" target=_blank>NoClassDefDoundErr与ClassNotFoundException区别</A> <LI><A title=深入MIDIetStateChangeException href="http://www.jspcn.net/htmlnews/11500199894531654.html" target=_blank>深入MIDIetStateChangeException</A> <LI><A title=关于java异常处理(讲义) href="http://www.jspcn.net/htmlnews/11454147095461992.html" target=_blank>关于java异常处理(讲义)</A> <LI><A title=[JAVA100例]009、异常的捕获和实现自己的异常类 href="http://www.jspcn.net/htmlnews/11454145234531123.html" target=_blank>[JAVA100例]009、异常的捕获和实现自己的异常类</A> <LI><A title=Java异常学习心得 href="http://www.jspcn.net/htmlnews/11454143769681120.html" target=_blank>Java异常学习心得</A> <LI><A title=Java中常见的异常 href="http://www.jspcn.net/htmlnews/11454142633901307.html" target=_blank>Java中常见的异常</A> <LI><A title=如何在程序异常或正常退出JVM时执行特定代码 href="http://www.jspcn.net/htmlnews/11453840165461348.html" target=_blank>如何在程序异常或正常退出JVM时执行特定代码</A> <LI><A title=构建更好的异常处理框架 href="http://www.jspcn.net/htmlnews/11453827062501758.html" target=_blank>构建更好的异常处理框架</A> <LI><A title="关于runtime exception和checked exception" href="http://www.jspcn.net/htmlnews/11453821828901962.html" target=_blank>关于runtime exception和checked exception</A> <LI><A title="Java 理论与实践: 关于异常的争论" href="http://www.jspcn.net/htmlnews/11453819700151449.html" target=_blank>Java 理论与实践: 关于异常的争论</A> <LI><A title=Java异常处理的陋习展播 href="http://www.jspcn.net/htmlnews/11453816265151984.html" target=_blank>Java异常处理的陋习展播</A> <LI><A title=java的异常处理机制 href="http://www.jspcn.net/htmlnews/11453815669531884.html" target=_blank>java的异常处理机制</A> <LI><A title=浅析Java语言中两种异常的差别 href="http://www.jspcn.net/htmlnews/11453814749211672.html" target=_blank>浅析Java语言中两种异常的差别</A> <LI><A title=浅析Java语言中两种异常使用的差别 href="http://www.jspcn.net/htmlnews/11453813498901558.html" target=_blank>浅析Java语言中两种异常使用的差别</A> <LI><A title=邂逅StringIndexOutOfBoundsException href="http://www.jspcn.net/htmlnews/11171163972961452.html" target=_blank>邂逅StringIndexOutOfBoundsException</A> <LI><A title="避免在Java中使用Checked Exception" href="http://www.jspcn.net/htmlnews/11049415031711687.html" target=_blank>避免在Java中使用Checked Exception</A> <LI><A title="开源 JVM 一览" href="http://www.jspcn.net/htmlnews/11049386275931969.html" target=_blank>开源 JVM 一览</A> <LI id=more1><A href="http://www.jspcn.net/htmlnews/B20070807102438.html" target=_blank>更多...</A> </LI></UL></DIV> <DIV id=right1><BR> <H2>关于java异常处理(讲义)</H2><BR><BR> <DIV align=right>作者:    文章来源:<BR>发布日期:2006年07月21日    浏览次数:791次</DIV> <DIV height="600">第16讲:异常处理<BR>16.1、简介:<BR>异常是程序执行时遇到的任何错误情况或意外行为。<BR>以下这些情况都可以引发异常:您的代码或调用的代码(如共享库)中有错误,操作系统资源不可用,公共语言运行库遇到意外情况(如无法验证代码),等等<BR><BR>《Exception Handling for C++》关于异常处理论文,<BR>向对象中每增加一个类,都可能包含一些错误。<BR>Java使用和C++类似的异常处理<BR>1、处理错误的方法有很多流行方法<BR>2、一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误<BR>优点:便于程序员能够条理的看到程序中异常的处理<BR>缺点:异常处理程序“搅乱”代码,程序员很难关心程序本身能否正常完成功能,而只关心了性能。<BR>3、常见异常实例包括:数组下标越界,算法溢出(超出数值表达范围),除数为零,无效参数、内存溢出<BR>异常处理功能:主要处理一些同步异常(除数为0),不宜处理一些异步事件(Disk I/O End、网络信息到达、点击鼠标、敲击键盘)这些最好使用java事件监听。<BR>异常处理程序:能够让系统在出现异常的情况下恢复过来的程序<BR>使用异常处理情况:异常诊断与异常处理不在同一个位置下时使用异常处理程序(若用户一直通过键盘与程序通话,那么就不能使用处理键盘输入处理)<BR>使用异常的注意事项:<BR>1、 异常处理位置与异常发生位置必须不同(若一个程序能够处理自己的错误,那么就采用传统的错误处理方式进行局部处理)<BR>2、 要避免使用异常处理来代替错误处理,若这样就会降低程序的清晰性。<BR>3、 尽管可以使用异常处理来代替错误处理,但会降低性能<BR>4、 异常处理会占用程序的格外执行时间<BR>5、 异常处理能够提高程序的容错性<BR>6、 程序员使用JAVA标准的异常处理功能来代替他们的专用方法,可以在大型项目中提高程序的清晰性<BR>7、 异常是超类Exception继承的子类,主要如何处理“未扑获的异常”,无法预料的异常。 <BR>8、 异常处理在java中原理:<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>异常处理有Method调用者的调用者或者Method调用者来处理,<BR>9、 异常处理适用分别开发的组件系统<BR>10、 因为一些程序员使用不支持异常处理语言编程时,往往拖延或忘记错误处理程序的编写,故,Java强制程序员从项目一开始就着手进行异常处理,程序员必须投入很大精力把异常处理的策略融合到软件产品中<BR>11、 最好在进行系统设计是就把异常处理融合在系统中,若系统一实现,就很难添加异常处理功能<BR><BR><BR>16.2如何使用异常处理:<BR><BR>在以下情况下使用异常处理:<BR><BR>1、 当方法因无法控制的原因而不能实现其功能时;<BR>2、 处理来自程序组件整体异常,这些程序组件不适宜直接处理异常<BR>3、 在大型项目中,对于每个项目都以一致的方式进行错误处理<BR>4、 在类库中出现每一个异常,都需要一个惟一错误处理,在类库中使用异常处理很合适<BR><BR><BR>16.3 其他的错误处理技术:<BR><BR>处理异常的方法:<BR>1、 在程序可以忽略异常(忽略异常在大型公用软件和关键处理软件可能会导致重大的软件破坏,而自己用的软件,通常可忽略一些错误)<BR>2、 遇到异常时,程序可以根据提示来终止运行(但是处理关键任务是绝对不可以采用,〈神5返回仓温控系统〉?863项目。)<BR><BR><BR>16.4 java异常处理的基础:<BR><BR>java的异常处理适用于在一个方法中能够检测出错误单不能处理错误的情况,这样方法将抛出一个异常(JAVA无法保证“存在”的异常处理程序能够处理某种异常,若“存在”,就“捕获”异常,并处理“异常”,如找不到,那么:<BR><BR>命令行APP/控制台APP(不基于GUI),当异常不能被“捕获”,那么该程序会运行默认异常处理程序,退出JAVA,若Applet或基于GUI的APP,当一个异常未被“捕获”,GUI在运行默认异常处理程序依然会显示,而且用户使用的GUI处于一个不稳定的状态)<BR>)<BR>JAVA代码中:1、可能出现异常的代码-----{ …… try{抛出一个异常}-----程序块 ……catch1{异常处理程序1};……catch100 {异常处理程序100}; finally{无类是否出现异常都执行的程序} <BR>1、 若try抛出Exception,App寻找在Catch1~100寻找合适异常处理程序,若找到,执行CATCH{}代码,没有,执行最后一个catch{}后代码<BR>2、 若try未抛出Exception,就执行执行最后一个catch{}后代码。<BR><BR>3、 throws子句来抛出指定的异常,异常抛出点(throws 语句位置、try{}程序块、try()程序块中直接和间接调用的方法中)<BR><BR>4、 java采用终止方式异常处理,不是恢复方式的异常处理<BR><BR>5、 发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序<BR><BR>12.5一个异常处理的简单实例:除数为0<BR><BR>需求:使用一个小应用程序,完成两数相除的计算<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>分析:<BR>我们使用有顶向下,逐步求精的方法:<BR>1、 首步我们一般在程序中先处理我们完成异常处理的类,完成异常处理的功能,因为可能除数为0是会出现异常,我们查找java.lang包中各个Exception类,发现RuntimeException类集合中的ArithmeticException可以处理运算异常,我们就让一个DivideByZeroException(继承于ArithmeticException) 更特殊类来专门处理除数为零的异常。在DivideByZeroException()中调用super()(专门初始化传如参数的方法)来传如异常处理后对象描述(初始状态)<BR>2、 第一步,创建一个Applet类完成完成两数相除的计算<BR>3、 第二步:处理对象与方法:声明4个GUI组件对象和1个用于存储计算结果(double)的和2个被除数与除数基本类型(int)<BR><BR>A、 初始化对象方法init()<BR>B、 处理当除数键盘输入后,触发事件进行计算的方法(返回判断)action()<BR><BR>a、 因为在此方法中,有可能出现除数为0的可能,而且在计算中才回出现错误,错误出现后需要进行处理异常,那么我在其中使用try{}程序块先调用方法quotient进行计算result=quotient(number1,number2),1、然后让quotient()方法(使用方法体中的throws Ex{}抛出异常程序块---此为深层嵌套)抛出异常(因为此处理信息比较简单,但存在信息传递,我们让其拖后处理)我们没有显式在try()块中抛出异常。有抛出异常就有获得异常,使用catch{}程序块完成,a)、在quotient()中(实际深层嵌套throws Ex{}抛出异常程序块),当除数=0时,就调用throw子句创建并抛出一个new catch{}“捕获”(指定匹配类型DivideByZeroException) quotient()抛出异常信息(DivideByZeroException),而接受此信息是由exception接收,并调用toString()方法把exception转换成字符串,使用showStatus(exception.toString()); 显示出来 (因为需求要求显示异常)。b)、若当除数!=0时,那么就不抛出异常,然后将程序返回到try()程序块中quotient()方法调用处,接着使用showStatus()方法显示算式和结果(number1+”/”+number2+”=”+Double.toString(result))程序将跳过catch{}程序块,action()方法将执行return true<BR><BR>注意:当quotient()抛出异常信息(DivideByZeroException)时,quotient()终止执行,这样会对所有对象(4+2+1)设置标记,用于无用单元回收处理;并在无用单元回收处理之前,还将运行这些对象的终止函数。如果抛出异常,那么try在程序块执行showStatus之前终止。若try抛出异常之前自动创建了对象,那么会对这些对象设置标记,用于无用单元回收,同时在回收之前,还将运行这些对象的终止函数。<BR>b、 在action()方法中要注意处理:在TextField中第2个输入结束并按下回车后,除数应该怎样获得输入的数字(number1=Integer.parseInt(input1.getText)),文本框如何获得合法的文本(setText()).也包括判断(if (event.target==input2))<BR><BR>C、 因为quotient()方法任务比较多,所以要将此方法单独与action来处理,而显示程序的清晰性和可读性,同时可以提高执行效率和稳定性能。<BR><BR>类图与流程图:<BR><BR>代码:<BR>//Fig 16.4: DivideByZeroException.java<BR>//W.Qiang<BR>//2005.J.6<BR>public class DivideByZeroException extends ArithmeticException{<BR>public DivideByZeroException()<BR>{<BR>super(“Attempted to divide by zero”);<BR>}<BR>}<BR>import java.awt.*;<BR>import java.awt.event.*<BR>import java.applet.Applet;<BR><BR>public class DivideByZeroTest extends Applet<BR>{<BR>Label prompt1,prompt2;<BR>TextField input1,input2;<BR>Int number1,number2;<BR>Double result;<BR><BR>public void init()<BR>{<BR>prompt1=new Label (“输入被除数”);<BR>input1=new TextField(10);<BR>prompt2=new Label (“输入除数并按下回车”);<BR>input2=new TextField(10); <BR>add (prompt1);<BR>add (input1);<BR>add (prompt2);<BR>add (input2);<BR>}<BR><BR>public boolean action (Event event,Object obeject )<BR>{<BR>if (event.target==input2)<BR>{<BR>number1=Integer.parseInt(input1.getText());<BR>input1.setText(“”);<BR>number2=Integer.parseInt(input2.getText());<BR>input2.setText(“”);<BR><BR>try {<BR>result=quotient(number1,number2);<BR>showStatus(number1+”/”+number2+”=”+Double.toString(result));<BR>} <BR><BR>catch(DivideByZeroException exception) {<BR>showStatus(exception.toString());<BR>}<BR>}<BR>return true;<BR>}<BR>public double quotient(int numerator,int denominator)throws DivideByZeroException<BR>{<BR>if (denominator==0) <BR>throw new DivideByZeroException ();<BR>else (denominator!=0)<BR>return(double) numerator / denominator ;<BR>}<BR>}<BR><BR>12.6 try程序块:<BR>try{ <BR>……}<BR>catch(){<BR>…….}<BR>finally{ ……}<BR>try后面跟0~多个catch程序块<BR>若try抛出Exception,App寻找在Catch1~100寻找合适异常处理程序,若找到,执行CATCH{}代码,没有,执行最后一个catch{}后代码<BR>若try未抛出Exception,就执行执行最后一个catch{}后代码。<BR>finally{无类是否出现异常都执行的程序,必须完成资源释放即终止函数调用,可避免资源泄露}<BR>16.7 抛出异常:<BR>throw 子句用来抛出异常,而throws子句用来指定异常 <BR>throw 的操作数是Throwable所有派生类,Throwable的直接子类是Exception(异常,由应捕获的问题引起,应进行处理)与Error(重大系统问题,一般不捕获)<BR>抛出异常抛出点有try{}块、, try{}块某个深层嵌套的作用域、try{}块某个深层嵌套的方法中,throws指定异常,throw抛出的异常<BR>try{}不包括错误检测语句与throw子句,但它的程序块中所引用的对象将会执行构造函数中的错误检测代码,并抛出异常<BR>我们只要求异常终止产生异常的程序块执行,而不停止整个程序<BR>异常信息传递通过对象引用产生,然后让catch块中的参数名(对象名)引用<BR>16.8 捕获异常:<BR><BR>异常处理程序包含在catch程序块中<BR>语法:<BR>catch (classNmae---指定要抛出的异常的类型,参数名-----用来引用处理程序捕获的对象){javaCode -----处理异常可执行代码}<BR><BR>catch使用注意事项:<BR>1、 若假设异常处理之后,程序控制将返回throw后的第一个语句,那么将导致逻辑错误<BR>2、 将catch程序块的参数不能设置成多个,一个catch只有一个参数<BR>3、 若两个catch程序块(均和某个try程序块有关)都用于捕获同一类型异常,那么将产生语法错误<BR>4、 捕获特殊异常可能找不到,需要在下一层try中找,若找不到,那么命令行APP/控制台APP(不基于GUI)将退出程序,Applet或基于GUI的APP将继续执行处于一个不稳定的状态的APP<BR>5、 若某一类型异常,可能有几个异常处理程序与他相匹配,那么执行first相匹配的异常处理程序<BR>6、 一个程序可以同时处理许多关系密切的异常,我们可谓此ExceptionGroup提供1个异常类与catch处理程序,当某个异常发生时,可根据不同的实例数据创建异常对象,同时catch检查该数据,以判断异常的类型;我们一般不提倡此种编程风格,最好用继承的方法解决<BR>7、 在异常处理程序中,不能访问try块中定义的对象,异常处理开始,try快结束<BR>8、 若执行某个异常处理程序时又抛出一个异常,原try块已经终止,那么就让原try外层try处理程序进行处理,同时外层try程序监视并处理原try块的catch处理程序产生的错误<BR>9、 异常处理程序的形式:A、重抛出异常;B、通过抛出另一种不同类型的异常来转换异常类型;C、通过执行完最后一个异常处理程序之后,完成任何必要的恢复工作并使程序继续执行;D、判断产生错误的原因,然后处理,并重新调用原来曾产生该异常的方法 E、简单向Runtime返回一个状态值 ……………等等<BR>10、 传统的控制流不使用异常,因“额外的”异常会“掩盖”那些真正的错误类型的异常,程序员很难跟踪那些大量的异常,而且这里的异常不是经常见到的<BR>11、 catch处理程序抛出一个异常,将由catch处理或与同1个try块相关的其他处理程序来处理,就会产生逻辑错误<BR><BR>16.9 重抛出异常:<BR>catch异常处理程序中出现异常,需要其他catch处理程序处理该异常 <BR>可以用throw重抛出异常<BR><BR>16.10 throws 子句:<BR><BR>用途:在一个method中,利用其列出该方法所能抛出的异常<BR>int g (float h) throws a,b,c<BR>{<BR>//method body<BR>}<BR>抛出的对象为:指定类对象或者子类对象<BR><BR>1、运行时异常:发生异常是某些可避免的事情出现错误<BR>此异常是RuntimeException类派生出来的<BR>包括:ArrayIndexOutOfBoundsException(访问一个越界数组下标),NullPointerException(Null引用操作抛出---声明而没有创建对象);<BR>ClassCastException (无效的类型转换引发)<BR>IOException ,InterruptedException<BR><BR>Throws不必要显式指出RuntimeException与Error,而要指出method或该method所调用的method显式抛出非RuntimeException异常<BR>3、 java异常区分:经检查的Exception(非RuntimeException);未经检查的Exception(RuntimeException);Error<BR><BR>注意事项:<BR>1、 method抛出一个经检查的Exception,若该Exception未列在throws子句中,会产生语法错误<BR>2、 试图在一个没有throws子句中method抛出异常,会产生语法错误<BR>3、 若method1调用method2(显示抛出经检查的Exception),必须在method1的子句列出此异常,除非method2已经捕获此异常<BR>4、 子类method的throws清单是父类method的throws清单的子集<BR>5、 捕获异常必须处理,才能满足“java捕获或声明”。<BR>6、 java编译器强制程序员处理异常,绝对不能忽略异常处理<BR>7、 java列出的Error见j2SDK 1.42 Documention 的java.lang package errors (AWTError)<BR>8、 java列出的Exception见j2SDK 1.42 Documention 的java.lang package Exception 、 java.util package Exception 、java.io package Exception、java.awt package Exception、java.net package Exception<BR><BR>16.11构造函数、终止函数和异常处理<BR><BR>当构造函数检测错误(不能返回值)解决方案(让程序知道无法正确构造该对象):<BR>1、直接返回该错误对象,当使用该对象进行判断,以确定此对象是否错误<BR>2、在该构造函数外设定一个全局变量,都不是好方法3、抛出异常,把次函数错误信息传递到外部,并处理该错误<BR>4、 当该函数抛出Exception ,那么该函数建立的对象将被设置标记,用与最终的无用单元回收处理,故需要调用终止函数。<BR><BR>16.12异常与继承:<BR><BR>因为继承关系,各种错误可以多态处理<BR>一般最好捕获并处理父类异常,(仅当所有子类对象的处理方法都一致才有意义),否则,捕获子类异常<BR><BR>16.13 finally程序块<BR><BR>若程序显示使用某些资源,那么必须在最后完成对资源的释放即无庸单元回收,在C与C++中,常见是指针不能回收,函数不能终止,出现“内存泄露”<BR>java实现自动的无庸的单元回收功能,可避免“内存泄露”,但java同样存在别的“资源泄露”<BR>一般在finally程序块中使用一些资源释放的代码<BR>1、 finally程序块将try程序块中所有打开文件关闭<BR>2、 java并没有彻底消除资源泄露、当某个对象不存在是,java才对该对象进行无庸单元回收处理,当程序员错误的对某个对象保持引用时,就会出现内存泄露<BR>3、 exception ( String informationString):其中informationString是对该类异常描述信息,而获得信息使用getMessage(用于返回保存在某个异常中的描述字符串)。PrintStackTrace(用于把方法调用堆栈的内容打印出来,对测试程序特别有用)。<BR><BR><BR>  </DIV></DIV><!-- 相关DIV --> <DIV id=rel> <UL> <LI><A href="http://www.jspcn.net/">JSP虚拟主机,JSP空间</A> </LI></UL></DIV></DIV> <DIV id=bottom2 align=center><FONT face=Verdana>Copyright © 2002-2012 JSPCN.net. All rights reserved.</FONT><BR>JSP中文网    备案号:粤ICP备09171188号<BR>成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号 </DIV></DIV></BODY></HTML>
2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)容器 3.1. 简介 3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的依赖 3.4.4. 其他作用域 3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @Resource 3.11.5. @PostConstruct 与 @PreDestroy 3.12. 对受管组件的Classpath扫描 3.12.1. @Component和更多典型化注解 3.12.2. 自动检测组件 3.12.3. 使用过滤器自定义扫描 3.12.4. 自动检测组件的命名 3.12.5. 为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 4.3. 内置 Resource 实现 4.3.1. UrlResource 4.3.2. ClassPathResource 4.3.3. FileSystemResource 4.3.4. ServletContextResource 4.3.5. InputStreamResource 4.3.6. ByteArrayResource 4.4. ResourceLoader接口 4.5. ResourceLoaderAware 接口 4.6. 把Resource作为属性来配置 4.7. Application context 和Resource 路径 4.7.1. 构造application context 4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入(Introduction) 6.2.6. 切面实例化模型 6.2.7. 例子 6.3. 基于Schema的AOP支持 6.3.1. 声明一个切面 6.3.2. 声明一个切入点 6.3.3. 声明通知 6.3.4. 引入 6.3.5. 切面实例化模型 6.3.6. Advisor 6.3.7. 例子 6.4. AOP声明风格的选择 6.4.1. Spring AOP还是完全用AspectJ? 6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入点实现 7.2.5. 切入点的超类 7.2.6. 自定义切入点 7.3. Spring的通知API 7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动代理(autoproxy)”功能 7.9.1. 自动代理bean定义 7.9.2. 使用元数据驱动的自动代理 7.10. 使用TargetSource 7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. 通用目标 8.3.4. JDBC测试支持 8.3.5. 常用注解 8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8. PetClinic示例 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1. 高层次方案 9.4.2. 低层次方案 9.4.3. TransactionAwareDataSourceProxy 9.5. 声明式事务管理 9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明式事务管理 9.8. 与特定应用服务器集成 9.8.1. IBM WebSphere 9.8.2. BEA WebLogic 9.8.3. Oracle OC4J 9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一种工作模式 11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. SingleConnectionDataSource类 11.3.5. DriverManagerDataSource类 11.3.6. TransactionAwareDataSourceProxy类 11.3.7. DataSourceTransactionManager类 11.3.8. NativeJdbcExtractor 11.4. JDBC批量操作 11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6. 用Java对象来表达JDBC操作 11.6.1. SqlQuery类 11.6.2. MappingSqlQuery类 11.6.3. SqlUpdate类 11.6.4. StoredProcedure类 11.6.5. SqlFunction类 11.7. 参数和数据处理的基本原则 11.7.1. 为参数设置SQL类型信息 11.7.2. 处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect 12.4. Oracle TopLink 12.4.1. SessionFactory 抽象层 12.4.2. TopLinkTemplate and TopLinkDaoSupport 12.4.3. 基于原生的TopLink API的DAO实现 12.4.4. 事务管理 12.5. iBATIS SQL Maps 12.5.1. 创建SqlMapClient 12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.7. 事务管理 12.8. JpaDialect III. The Web 13. Web MVC framework Web框架 13.1. 概述 13.1.1. 与其他MVC实现框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator 13.3.2. 其它的简单控制器 13.3.3. MultiActionController 13.3.4. 命令控制器 13.4. 处理器映射(handler mapping) 13.4.1. BeanNameUrlHandlerMapping 13.4.2. SimpleUrlHandlerMapping 13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题 13.7.3. 主题解析器 13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 13.9.9. select标签 13.9.10. option标签 13.9.11. options标签 13.9.12. textarea标签 13.9.13. hidden标签 13.9.14. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的支持:RequestToViewNameTranslator 13.12. 基于注解的控制器配置 13.12.1. 建立dispatcher实现注解支持 13.12.2. 使用@Controller定义一个控制器 13.12.3. 使用@RequestMapping映射请求 13.12.4. 使用@RequestParam绑定请求参数到方法参数 13.12.5. 使用@ModelAttribute提供一个从模型到数据的链接 13.12.6. 使用@SessionAttributes指定存储在会话中的属性 13.12.7. 自定义WebDataBinder初始化 13.13. 更多资源 14. 集成视图技术 14.1. 简介 14.2. JSP和JSTL 14.2.1. 视图解析器 14.2.2. 'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL 14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成其它Web框架 15.1. 简介 15.2. 通用配置 15.3. JavaServer Faces 15.3.1. DelegatingVariableResolver 15.3.2. FacesContextUtils 15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet 16.3. ViewRendererServlet 16.4. 控制器 16.4.1. AbstractController 和 PortletContentGenerator 16.4.2. 其它简单的控制器 16.4.3. Command控制器 16.4.4. PortletWrappingController 16.5. 处理器映射 16.5.1. PortletModeHandlerMapping 16.5.2. ParameterHandlerMapping 16.5.3. PortletModeParameterHandlerMapping 16.5.4. 增加 HandlerInterceptors 16.5.5. HandlerInterceptorAdapter 16.5.6. ParameterMappingInterceptor 16.6. 视图和它们的解析 16.7. Multipart文件上传支持 16.7.1. 使用 PortletMultipartResolver 16.7.2. 处理表单里的文件上传 16.8. 异常处理 16.9. Portlet应用的部署 IV. 整合 17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用RmiServiceExporter暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian和co.配置DispatcherServlet 17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 在客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过Hessian或Burlap暴露的服务使用HTTP Basic认证 17.4. 使用HTTP调用器暴露服务 17.4.1. Exposing the service object 17.4.2. 在客户端连接服务 17.5. Web Services 17.5.1. 使用JAX-RPC暴露基于servlet的web服务 17.5.2. 使用JAX-RPC访问web服务 17.5.3. 注册JAX-RPC Bean映射 17.5.4. 注册自己的JAX-RPC 处理器 17.5.5. 使用JAX-WS暴露基于servlet的web服务 17.5.6. 使用JAX-WS暴露单独web服务 17.5.7. 使用Spring支持的JAX-WS RI来暴露服务 17.5.8. 使用JAX-WS访问web服务 17.5.9. 使用XFire来暴露Web服务 17.6. JMS 17.6.1. 服务端配置 17.6.2. 客户端配置 17.7. 对远程接口不提供自动探测实现 17.8. 在选择这些技术时的一些考虑 18. Enterprise Java Beans (EJB) 集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.2.4. Accessing EJB 2.x SLSBs versus EJB 3 SLSBs 18.3. 使用Spring提供的辅助类实现EJB组件 18.3.1. EJB 2.x base classes 18.3.2. EJB 3 注入拦截 19. JMS (Java Message Service) 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. 目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送消息 19.3.1. 使用消息转换器 19.3.2. SessionCallback 和 ProducerCallback 19.4. 接收消息 19.4.1. 同步接收 19.4.2. 异步接收 - 消息驱动的POJO 19.4.3. SessionAwareMessageListener接口 19.4.4. MessageListenerAdapter 19.4.5. 事务中的消息处理 19.5. JCA消息端点的支持 19.6. JMS命名空间支持 20. JMX 20.1. 介绍 20.2. 将Bean暴露为JMX 20.2.1. 创建MBeanServer 20.2.2. 重用原有的MBeanServer 20.2.3. 延迟初始化的MBean 20.2.4. MBean的自动注册 20.2.5. 控制注册行为 20.3. 控制Bean的管理接口 20.3.1. MBeanInfoAssembler接口 20.3.2. 使用源码级元数据 20.3.3. 使用JDK 5.0的注解 20.3.4. 源代码级的元数据类型 20.3.5. AutodetectCapableMBeanInfoAssembler接口 20.3.6. 用Java接口定义管理接口 20.3.7. 使用MethodNameBasedMBeanInfoAssembler 20.4. 控制Bean的ObjectName 20.4.1. 从Properties读取Properties 20.4.2. 使用MetadataNamingStrategy 20.4.3. 元素 20.5. JSR-160连接器 20.5.1. 服务器端连接器 20.5.2. 客户端连接器 20.5.3. 基于Burlap/Hessian/SOAP的JMX 20.6. 通过代理访问MBean 20.7. 通知 20.7.1. 为通知注册监听器 20.7.2. 发布通知 20.8. 更多资源 21. JCA CCI 21.1. 简介 21.2. 配置CCI 21.2.1. 连接器配置 21.2.2. 在Spring中配置ConnectionFactory 21.2.3. 配置CCI连接 21.2.4. 使用一个 CCI 单连接 21.3. 使用Spring的 CCI访问支持 21.3.1. 记录转换 21.3.2. CciTemplate类 21.3.3. DAO支持 21.3.4. 自动输出记录生成 21.3.5. 总结 21.3.6. 直接使用一个CCI Connection接口和Interaction接口 21.3.7. CciTemplate 使用示例 21.4. 建模CCI访问为操作对象 21.4.1. MappingRecordOperation 21.4.2. MappingCommAreaOperation 21.4.3. 自动生成输出记录 21.4.4. 总结 21.4.5. MappingRecordOperation 使用示例 21.4.6. MappingCommAreaOperation 使用示例 21.5. 事务 22. Spring邮件抽象层 22.1. 简介 22.2. 使用Spring邮件抽象 22.2.1. MailSender 和 SimpleMailMessage 的基本用法 22.2.2. 使用 JavaMailSender 和 MimeMessagePreparator 22.3. 使用MimeMessageHelper 22.3.1. 发送附件和嵌入式资源(inline resources) 22.3.2. 使用模板来创建邮件内容 23. Spring中的定时调度(Scheduling)和线程池(Thread Pooling) 23.1. 简介 23.2. 使用OpenSymphony Quartz 调度器 23.2.1. 使用JobDetailBean 23.2.2. 使用 MethodInvokingJobDetailFactoryBean 23.2.3. 使用triggers和SchedulerFactoryBean来包装任务 23.3. 使用JDK Timer支持类 23.3.1. 创建定制的timers 23.3.2. 使用 MethodInvokingTimerTaskFactoryBean类 23.3.3. 最后:使用TimerFactoryBean来设置任务 23.4. SpringTaskExecutor抽象 23.4.1. TaskExecutor接口 23.4.2. TaskExecutor类型 23.4.3. 使用TaskExecutor 24. 动态语言支持 24.1. 介绍 24.2. 第一个示例 24.3. 定义动态语言支持的bean 24.3.1. 公共概念 24.3.2. JRuby beans 24.3.3. Groovy beans 24.3.4. BeanShell beans 24.4. 场景 24.4.1. Spring MVC控制器的脚本化 24.4.2. Validator的脚本化 24.5. Bits and bobs 24.5.1. AOP - 通知脚本化bean 24.5.2. 作用域 24.6. 更多的资源 25. 注解和源代码级的元数据支持 25.1. 简介 25.2. Spring的元数据支持 25.3. 注解 25.3.1. @Required 25.3.2. Spring中的其它@Annotations 25.4. Jakarta Commons Attributes集成 25.5. 元数据和Spring AOP自动代理 25.5.1. 基本原理 25.5.2. 声明式事务管理 V. 示例程序 26. 演示案例 26.1. 介绍 26.2. 使用动态语言实现的Spring MVC控制器 26.2.1. 构建与部署 26.3. 使用SimpleJdbcTemplate和@Repository实现DAO 26.3.1. 域对象 26.3.2. Data Access Object 26.3.3. 构建 A. XML Schema-based configuration A.1. Introduction A.2. XML Schema-based configuration A.2.1. Referencing the schemas A.2.2. The util schema A.2.3. The jee schema A.2.4. The lang schema A.2.5. The jms schema A.2.6. The tx (transaction) schema A.2.7. The aop schema A.2.8. The context schema A.2.9. The tool schema A.2.10. The beans schema A.3. Setting up your IDE A.3.1. Setting up Eclipse A.3.2. Setting up IntelliJ IDEA A.3.3. Integration issues B. Extensible XML authoring B.1. Introduction B.2. Authoring the schema B.3. Coding a NamespaceHandler B.4. Coding a BeanDefinitionParser B.5. Registering the handler and the schema B.5.1. 'META-INF/spring.handlers' B.5.2. 'META-INF/spring.schemas' B.6. Using a custom extension in your Spring XML configuration B.7. Meatier examples B.7.1. Nesting custom tags within custom tags B.7.2. Custom attributes on 'normal' elements B.8. Further Resources C. spring-beans-2.0.dtd D. spring.tld D.1. Introduction D.2. The bind tag D.3. The escapeBody tag D.4. The hasBindErrors tag D.5. The htmlEscape tag D.6. The message tag D.7. The nestedPath tag D.8. The theme tag D.9. The transform tag E. spring-form.tld E.1. Introduction E.2. The checkbox tag E.3. The checkboxes tag E.4. The errors tag E.5. The form tag E.6. The hidden tag E.7. The input tag E.8. The label tag E.9. The option tag E.10. The options tag E.11. The password tag E.12. The radiobutton tag E.13. The radiobuttons tag E.14. The select tag E.15. The textarea tag F. Spring 2.5开发手册中文化项目 F.1. 声明 F.2. 致谢 F.3. 参与人员 F.4. 项目历程 表格清单 3.1. bean定义 3.2. Autowiring modes 3.3. 依赖检查方式 3.4. Bean作用域 3.5. Feature Matrix特性表 3.6. 内置事件 3.7. 过滤器类型 4.1. Resource strings 5.1. 属性示例 5.2. 内建的PropertyEditors 6.1. DefaultContextLoadTimeWeaver LoadTimeWeaversDefaultContextLoadTimeWeaver类和LoadTimeWeavers接口 6.2. aspectj-weaving属性值 9.1. 有关的设置 9.2. 设置 9.3. @Transactional 注解的属性 13.1. WebApplicationContext中特殊的bean 13.2. DispatcherServlet初始化参数 13.3. AbstractController提供的功能 13.4. 视图解析器 13.5. CookieLocaleResolver的属性 13.6. ThemeResolver的实现 14.1. 宏定义表 14.2. JasperReports View Classes 14.3. JasperReportsMultiFormatView默认Mapping Key映射 16.1. WebApplicationContext中特殊的Bean 16.2. DispatcherPortlet 的初始化参数 16.3. AbstractController提供的功能 19.1. JMS listener 元素的属性 19.2. JMS 元素的属性 19.3. JMS 元素的属性 20.1. 注册行为 20.2. 源代码级的元数据类型 20.3. 源代码级的元数据参数 21.1. Usage of Interaction execute methods 21.2. Usage of Interaction execute methods A.1. Eclipse XML editors D.1. Attributes D.2. Attributes D.3. Attributes D.4. Attributes D.5. Attributes D.6. Attributes D.7. Attributes D.8. Attributes E.1. Attributes E.2. Attributes E.3. Attributes E.4. Attributes E.5. Attributes E.6. Attributes E.7. Attributes E.8. Attributes E.9. Attributes E.10. Attributes E.11. Attributes E.12. Attributes E.13. Attributes E.14. Attributes
java语言与面向对象程序设计形考4-0001 java语言与面向对象程序设计形考4-0001全文共12页,当前为第1页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第1页。java语言与面向对象程序设计形考4-0001 java语言与面向对象程序设计形考4-0001全文共12页,当前为第1页。 java语言与面向对象程序设计形考4-0001全文共12页,当前为第1页。 试卷总分:100 单选题(共15题,共45分) 开始说明: 结束说明: 1.(3分) 以下哪个是serverSocket类用 接收来自客户端请求的方法? A、accept() B、getOutputStream() C、receive() D、get() 2.(3分) java语言与面向对象程序设计形考4-0001全文共12页,当前为第2页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第2页。以下哪个方法是DatagramSocket类用于发送数据的方法? A、receive() B、accept() C、set() D、send() java语言与面向对象程序设计形考4-0001全文共12页,当前为第2页。 java语言与面向对象程序设计形考4-0001全文共12页,当前为第2页。 3.(3分) 每一个GUI程序中必须包含一个什么组件? A、按钮 B、标签 C、菜单 D、容器 4.(3分) 以下对File类的public boolean isFile()方法的描述,哪个是正确的? A、判断该File对象所对应的是否是文件 B、判断该File对象所对应的是否是目录 C、返回文件的最后修改时间 D、在当前目录下生成指定的目录 5.(3分) java语言与面向对象程序设计形考4-0001全文共12页,当前为第3页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第3页。下面四个组件中哪一个不是component的子类? A、Button B、Dialog C、Label D、MenuBar java语言与面向对象程序设计形考4-0001全文共12页,当前为第3页。 java语言与面向对象程序设计形考4-0001全文共12页,当前为第3页。 6.(3分) 以下哪个类用于实现TCP通信的客户端程序? A、ServerSocket B、Socket C、Client D、server 7.(3分) Java中,图形用户界面的简称是? A、AWT B、GUI C、GIU D、Graph 8.(3分) java语言与面向对象程序设计形考4-0001全文共12页,当前为第4页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第4页。以下哪些不属于InputStream类的方法? A、int read(byte[] b) B、void flush() C、void close() D、int read() java语言与面向对象程序设计形考4-0001全文共12页,当前为第4页。 java语言与面向对象程序设计形考4-0001全文共12页,当前为第4页。 9.(3分) 下面四对AWT和Swing对应组件中,错误的是? A、Button和JButton B、Dia1og和JDialog C、MenuBar和JMenuBar D、ComboBox和JComboBox 10.(3分) 以下哪个负责监听事件源上发生的事件,并对各种事件做出响应? A、事件对象 B、事件处理器 C、事件监听器 D、事件适配器 11.(3分) java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。当鼠标按键被释放时,会调用以下哪个事件处理器方法? A、mouseReleased() B、mouseUP() C、mouseOff() D、mouseLetGo() java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。 java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。 12.(3分) 使用UDP协议通信时,需要使用哪个类把要发送的数据打包? A、Socket B、DatagramSocket C、DatagramPacket D、ServerSocket 13.(3分) 以下选项中,哪个是File类delete()方法返回值的类型? A、boolean B、int C、String D、Integer java语言与面向对象程序设计形考4-0001全文共12页,当前为第6页。java语言与面向对象程序设计形考4-0001全文共12页,当前为第6页。14.(3分) java语言与面向对象程序设计

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值