??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲日本VA午夜在线影院,亚洲av综合av一区,亚洲成AV人片在线观看无http://m.tkk7.com/wangjc0801/从头看Javazh-cnMon, 12 May 2025 11:10:40 GMTMon, 12 May 2025 11:10:40 GMT60wsdl文g生成客户端代码问?/title><link>http://m.tkk7.com/wangjc0801/archive/2009/08/17/291439.html</link><dc:creator>wangjc</dc:creator><author>wangjc</author><pubDate>Mon, 17 Aug 2009 02:46:00 GMT</pubDate><guid>http://m.tkk7.com/wangjc0801/archive/2009/08/17/291439.html</guid><wfw:comment>http://m.tkk7.com/wangjc0801/comments/291439.html</wfw:comment><comments>http://m.tkk7.com/wangjc0801/archive/2009/08/17/291439.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/wangjc0801/comments/commentRss/291439.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/wangjc0801/services/trackbacks/291439.html</trackback:ping><description><![CDATA[<p><font size="2">最q根据wsdl文g生成客户端代?使用MyEclipse的xfire和axis插g都报?报错如截?</font></p> <p><img src="http://farm4.static.flickr.com/3446/3828052651_80f9a5f741.jpg"> </p> <p> </p> <p><img src="http://farm4.static.flickr.com/3494/3828852152_25bd8c806e.jpg"> </p><font size="2">后来在网上搜,原因应该是服务端发布的时候用的是axis1.2版本?使用的版本过?于是从网上下载了(jin)axis1.2的版?再试,q是一h?<br></font> <p><font size="2"><br>报错信息如下:<br><Recharge xmlns="ocs/server"><br>  <in0 xmlns=""><br>    <requestId>20090728000022</requestId><br>    <requestTime>20081102000000</requestTime><br>    <destinationId>13340011829</destinationId><br>    <destinationAttr>2</destinationAttr><br>    <balanceType>2000</balanceType><br>    <rechargeUnit>0</rechargeUnit><br>    <objType>5BC</objType><br>    <rechargeAmount>10</rechargeAmount><br>    <requestAmount>1</requestAmount><br>    <cardNumber/><br>    <channelID/><br>    <operSystem/><br>  </in0><br></Recharge><br>java.lang.NullPointerException<br>        at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteDefaultNs(BaseNsStreamWriter.java:528)<br>        at com.ctc.wstx.sw.SimpleNsStreamWriter.writeDefaultNamespace(SimpleNsStreamWriter.java:111)<br>        at com.ctc.wstx.sw.SimpleNsStreamWriter.writeNamespace(SimpleNsStreamWriter.java:119)<br>        at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeNamespace(MTOMXMLStreamWriter.java:146)<br>        at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeElement(StreamingOMSerializer.java:243)<br>        at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:76)<br>        at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:59)<br>        at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:473)<br>        at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:823)<br>        at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:848)<br>        at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:819)<br>        at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:180)<br>        at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:848)<br>        at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:419)<br>        at org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.handleOMOutput(SOAPOverHTTPSender.java:190)<br>        at org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.writeRequest(SOAPOverHTTPSender.java:232)<br>        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:495)<br>        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973)<br>        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)<br>        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)<br>        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)<br>        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)<br>        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)<br>        at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:541)<br>        at org.apache.axis2.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:119)<br>        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:335)<br>        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:204)<br>        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:674)<br>        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:237)<br>        at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)<br>        at com.huawei.bus.ws.ct.skeleton.UvcSoapForOcsServiceStub.Recharge(UvcSoapForOcsServiceStub.java:266)<br>        at test.Test.main(Test.java:56) </font></p> <p><font size="2">  把报错的试工程发到同事那里试,一切正?<br>  最后只好从同事那里</font><font size="2">发过来axis的jar包导?最后正? </font> <p><font size="2">  怀疑是axis版本不一?用比较工h较两个lib文g?果然axis的版本不一?</font> <p><font size="2"> </font> <p><font size="2">  用org.apache.axis2.Version.getVersionText() q回版本?一个是1.1,一个是1.1.1(才发现axis2?不是版本?..). </font> <p><font size="2">  之前一直都用xfire,好像没有遇到q服务端和客L(fng)版本不一致还?sh)(x)有问?看来q是要慎用axis.</font><img src ="http://m.tkk7.com/wangjc0801/aggbug/291439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/wangjc0801/" target="_blank">wangjc</a> 2009-08-17 10:46 <a href="http://m.tkk7.com/wangjc0801/archive/2009/08/17/291439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐一ƾ个人笔记Y?/title><link>http://m.tkk7.com/wangjc0801/archive/2009/07/25/288321.html</link><dc:creator>wangjc</dc:creator><author>wangjc</author><pubDate>Sat, 25 Jul 2009 04:40:00 GMT</pubDate><guid>http://m.tkk7.com/wangjc0801/archive/2009/07/25/288321.html</guid><wfw:comment>http://m.tkk7.com/wangjc0801/comments/288321.html</wfw:comment><comments>http://m.tkk7.com/wangjc0801/archive/2009/07/25/288321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/wangjc0801/comments/commentRss/288321.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/wangjc0801/services/trackbacks/288321.html</trackback:ping><description><![CDATA[<p></p><font color="#0000ff" size="2">下蝲地址:<a >treeDBnotes.rar</a></font> <p> </p> <p><font color="#0000ff" size="2">下蝲试用?jin)很多类型功能的软g,觉得q个q算合?只是好像没有全文搜烦(ch).推荐一?软g截图如下:</font></p> <div id="zbnmuvx" class="wlWriterEditableSmartContent" id="scid:51CF81A4-8F44-4a2c-8837-198C090B9994:4f1f4dc1-f269-4d5e-90b6-9f92cc9ec171" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><div id="hocsfol" class="wlWriterSmartContent" id="scid:51CF81A4-8F44-4a2c-8837-198C090B9994:4f1f4dc1-f269-4d5e-90b6-9f92cc9ec171" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"> <p> </p> <p> </p> <p> </p> <p> </p> <p>-------------------</p> <p>2009-07-25:</p> <p>试用?jin)很多类似的软g,包括q款和其他的比如myData,everNote{等{等,q是用回?jin)最开始用的"?sh)子日记本v2.53".该有的功能都有了(jin),最主要的还是全文搜索功?...</p></div><img src ="http://m.tkk7.com/wangjc0801/aggbug/288321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/wangjc0801/" target="_blank">wangjc</a> 2009-07-25 12:40 <a href="http://m.tkk7.com/wangjc0801/archive/2009/07/25/288321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ConceptDraw PRO 7 专业程l制软g免费注册http://m.tkk7.com/wangjc0801/archive/2009/04/02/263502.htmlwangjcwangjcThu, 02 Apr 2009 02:37:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/04/02/263502.htmlhttp://m.tkk7.com/wangjc0801/comments/263502.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/04/02/263502.html#Feedback1http://m.tkk7.com/wangjc0801/comments/commentRss/263502.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/263502.html首先?q个面 注册Q可得到序列受之后到q里下蝲软gQ大?60M

 

ConceptDraw Pro 一Ƅ单易用的软g程图、组l图表、时间线、市(jng)场图表等图表的工兯Y件。有67U工作导向、可升的对象数据库Q可提供你超q?600U制作流E图、办公室配置图或其它图表所需的对象。ConceptDraw跨^収ͼ可嵌入超U链接,q包含一个内建的?sh)子表格Q还有计功能。它q包含聪明连接模式(Smart Connection ModeQ和直接q结模式QDirect Connection ModeQ。这些模式可让你L地画出大型流E图或图表。当输出成HTMLӞ它还支持可点选媄(jing)像图的最?jng)_输出?.8版本中增加了(jin)XML支持Q新的菜单属?帮助/得到新版)Q可以让用户方便的通过互联|下载升U程序,L/替换功能提供l你在编辑过E中更大的便利?/font>



wangjc 2009-04-02 10:37 发表评论
]]>
EL 表达式之一http://m.tkk7.com/wangjc0801/archive/2009/03/22/261287.htmlwangjcwangjcSun, 22 Mar 2009 01:59:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/03/22/261287.htmlhttp://m.tkk7.com/wangjc0801/comments/261287.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/03/22/261287.html#Feedback0http://m.tkk7.com/wangjc0801/comments/commentRss/261287.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/261287.html1. EL?

    EL,Expression LanauageQ原本是JSTL1.0中方便存取数据所定义的语a。当时只能在JSTL标签中用。如

<c:out value="${3+7}">?/font>

   C(jin)JSP2.0以后QEL被正式纳入标准规范之一。因此,要在jsp面中直接用ELQ容器必L臛_支持Servlet2.4/JSP2.0的,而如Tomcat4.1.29Q只支持servlet2.3/JSP1.2Q所以不能在jsp面中直接用EL?/font>

2. EL语法

    2.1 q算W?-.和[]

    ${sessionScope.user.sex}

    ${sessionScope.user["sex"]}

相当于:(x)

    User user = (User)session.getAttribute("user");

    String sex = user.getSex();

需要注意的两点Q?/font>

    1. 当属性名UC有特D字W,如“_”时Q必M用[].

        ${sessionScope.user.my_name}不正,应改?(sessionScope.user["my_name"]);

    2. 使用变量Ӟ必须使用[].

        ${sessionScope.user[data]}. data="name"Ӟ相当?{sessionScope.user["name"]}.但不能?{sessionScope.user.data}.

    3. 关系q算W,使用${param.password1 == param.password2}Q不能写?{param.password1} == ${param.password2}

    4. ${empty param.username} = ${param.username == null}判断是否为空或ؓ(f)null?/font>

    2.2 变量

    $(username)

    没有指定范围的时候,?x)依ơ在Request,session,Application中查找usernameQ找到就q回不再l箋(hu)Q否则返回null

    2.3 自动cd转换

    ${param.count+10}

相当于:(x)

    String str = request.getParamter("count");

    int count = Integer.ParseInt(str);

    count = count + 10;  

    2.4 隐含对象

      a. 范围相关QpageScore,requestScore,sessionScore,applicationScore

          q?个隐含对象只能用来取得范围属性|也就是getAttribute(String name)Q不能取得其他信息比如请求参数或表头信息{?/font>

      b. 输入相关Qparam,paramValues

          ${param.name} = request.getParameter(String name)

          ${paramValues} = request.getParameterValues(String name),获取复选框值的时候用。egQ?{paramValues.habit[0]},${paramValues.habit[1]}

          <fmt:questEncoding value="GB2312" /> = request.setCharacterEncoding("GB2312")

      c. 其他Q?nbsp;       cookie,header,headerValues,initParam,pageContext

         c1.  cookie以key、value的方式将sessionTracking中的内容记录在一个文本文件中。从cookie中获取|${cookie.username}

         c2.  header存储用户览器和服务端用来沟通的数据Q当用户要求服务端的|页Ӟ?x)送出一个记载要求信息的标头文g。包括用h览器的版本,用户计算机的区域{相x(chng)据。eg:${header["User-Agent"]}获取用户览器版?同一标头有不同值的话,使用headerValues来获?/font>

         c3.  ${initParam.userid} 从web.xml中设定的|相当于String userid=(String)application.getInitParameter("userid");

         l<context-param>

         l<param-name>userid</param-name>

         l<param-value>mike</param-value>

         l</context-param>

         l

         c4. 使用${pageContext}获取其他有关用户要求或页面的信息

         ${pageContext.request.queryString}:获取h的参数字W串

         ${pageContext.request.requestURL}:获取h的URLQ但不包含请求的参数字符?/font>

         ${pageContext.request.contextPath}:服务的web application名称



wangjc 2009-03-22 09:59 发表评论
]]>
探查 ClassCastException(转蝲)http://m.tkk7.com/wangjc0801/archive/2009/03/19/260716.htmlwangjcwangjcThu, 19 Mar 2009 03:42:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/03/19/260716.htmlhttp://m.tkk7.com/wangjc0801/comments/260716.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/03/19/260716.html#Feedback0http://m.tkk7.com/wangjc0801/comments/commentRss/260716.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/260716.html转蝲?http://www.javaeedev.com/blog/article.jspx?articleId=ff80808114e23046011535799b5e0ecd

问题描述


ClassCastException ?JVM 在检到两个cd间的转换不兼Ҏ(gu)引发的运行时异常。此c错误通常?x)终止用戯求。本模式试图为?zhn)提供了(jin)解和排?ClassCastException 错误最常见成因的一些基本要素?/font>

故障排除


h意,q下面所有Q务都需要完成。有些问题(sh)通过执行几项d可以解冟?/font>

 

Z么发生此问题Q?/strong>

 

在执行几乎Q何子pȝQWeb 容器、EJB、JCA、群集等Q的应用E序代码?WebLogic Server 代码内均可能发生 ClassCastException。通过转换Q可以指C?Java ~译器将l定cd的变量作为另一U变量来处理。对基础cd和用户定义类型都可以q行转换。Java 语言规范定义?jin)允许的转换Q其中的大多数可在编译时q行验证。不q,某些转换q需要运行时验证。如果在此运行时验证q程中检到不兼容,JVM ׃(x)引发 ClassCastException?/font>

假设有一?S cd的对象,我们x(chng)它{换ؓ(f) T cd?/font>

S s;
...
T t = (T) s;


如果存在以下情况Q上q{换就可能引发 ClassCastException

public class TestCCE {
  public static void main(String args[]) {
    Object obj = new Object();
    String s = (String) obj;
  }
}

W二个原因实际上是这U错误最常见的原因。这U情况在诊断上有相当的难度,而且需要对 Java cd载以?WebLogic cd载体pȝ构方面的基础知识有一定程度的?jin)解?/font>

什么是 ClassLoaderQ?/strong>

ClassLoader 是允?JVM 查找和加载类的一U?Java cRJVM 有内|的 ClassLoader。不q,应用E序可以定义自定?ClassLoader。应用程序定义新?ClassLoader 通常有两个主要目的:(x)

ClassLoader 按层U方式进行组l。除pȝ Boot ClassLoader 外,其它 ClassLoader 都必L?ClassLoader?/font>http://e-docs.bea.com/wls/docs81/programming/classloading.html (English) 中提供了(jin)?WebLogic cd载体pȝ构的说明?

理解cd载的关键


C以下内容?x)有帮助Q?

诊断

通常可以在服务器的日志和/或客L(fng)获得完整?ClassCastException 堆栈跟踪。该堆栈应能使?zhn)?gu)?qing)?WebLogic Server 子系l的情况有相当深入的?jin)解。请Ҏ(gu)q些信息认该问题是否与某个已知 WebLogic Server 问题的情늛W。如果相W,请用相应的解决办法?

如果错误与所有已知问题的情况均不相符Q则需要做q一步探查。如果错误出现在(zhn)可以编辑和~译源代码的cMQ以下方法可能有助于(zhn)理解该问题?

假设出现错误的代码行cM于:(x)

oo f = (Foo) bar.method();

如果按照转换规则该{换应该有效,但仍然引发了(jin) ClassCastExceptionQ则可能的情冉|Q类“bar”和“Foo”是׃同的 ClassLoader 加蝲的。要验证q一点,请像下面q样拆分该代码行Q?

 

Object o = bar.method();
System.err.println("The object " + o + " classloader is " +
o.getClass().getClassLoader());
System.err.println("Class Foo class loader is " +
Foo.class.getClassLoader());
Foo f = (Foo) o;
 

典型的输出可能与此类|(x)

 

The object Foo@@3e86d0 classloader is
sun.misc.Launcher$AppClassLoader@b9d04
Class Foo classloader is
weblogic.utils.classloaders.ChangeAwareClassLoader@5998cb finder:
weblogic.utils.classloaders.MultiClassFinder@7c2528

 

下一步是探查Z么涉?qing)?jin)不同?ClassLoader。请执行下列(g)查清单中的各Ҏ(gu)查:(x)

  • (g)查应用程序打包情况,q检查“Foo”是否是使用׃?ClassLoader 加蝲的不同模块打包而成。在q方面众所周知的一个成因是 Web 应用E序的“prefer-web-inf-classes”功能(请参?/font>已知?WebLogic 问题Q?
  • (g)查它正在使用的应用程序代码或某个框架代码是否更改?WebLogic U程的上下文 ClassLoaderQ且在请求流E期间未其q原。如果应用程序代码内有对 Thread.setContextClassloader(cl) 的调用,可能存在这U情c(din)?
  • 如果上述所有措施均无济于事Q请试问题隔d一个简单的、可重现的测试案例中Q然后联p?BEA 技术支持部门,以做q一步探查?/font>

已知?WebLogic Server 问题


以下汇集?jin)可D ClassCastException 错误的各U情况,(zhn)在使用各种 WebLogic 子系l时可能?x)遇到这些情c(din)?

程?/font>

有关该情늚完整说明Q请参?http://e-docs.bea.com/wls/docs81/applets/usingapplets.html (English)

摘要Q如果小E序中的 WebLogic Server 客户端尝试从 ClassLoader 获取某些资源信息Q且一q用了(jin)~存标志?codebase=/bea_wls_internal/classes 标志Q就可能?x)抛?ClassCastException?

解决Ҏ(gu)Q?/strong>

  • 在将c\?servlet 用作代码基时Q请不要使用“cache_option”和“cache_archive”一cȝ~存选项?
  • 使用~存选项Ӟ请不要?/classes (ClasspathServlet) 做ؓ(f)代码基。如果要q样做,请先使用归档实用E序打包客户?JAR?/font>

有关此限制的详细信息Q请参阅 http://developer.java.sun.com/developer/bugParade/bugs/4648591.html (English)?

JCA Connector

有关该情늚完整说明Q请参?http://e-docs.bea.com/wls/docs81/notes/issues.html (English)?

摘要Q发?gu)接请求时QW(xu)ebLogic Server ?x)返回一个代理对象,该对象通过资源适配器将q接对象装后返回到客户端。WebLogic Server 使用该代理来提供一些功能,帮助应用E序使用 WebLogic Server 的“J2EE q接器体pȝ构”实现。这些功能包?(1) q接泄漏(g)功能和 (2) q接h在启动用该q接的全局事务之前发出Ӟ推迟 XAResource 登记?

如果连接请求返回的q接对象向原始的 Connection c进行了(jin)转换Q就可能发生 ClassCastException。导致该异常的对象不外乎在连接请求过E中Q?1) 资源适配器进行{换时?(2) 客户端进行{换时?

?WebLogic Server 8.1 SP2 中,试(g)由上述资源适配器情?(1) D?ClassCastException。如果服务器(g)到该{换失败,关闭代理包装器功能Qƈ在连接请求期间返回连接对象(不进行包装)(j)。服务器?x)记录一条警告消息,说明代理包装器已被关闭。出现此c{换故障时Q连接泄漏检和 XAResource 推迟登记功能也将被关闭(但当前在控制台监视中q不?x)就此给ZQ何指C)(j)?

WebLogic Server 试以用容器管理的安全性的客户端n份检?ClassCastException。如果要q样做,则部|的资源适配器须定义安全?Credential?

如果客户端在执行转换时发?ClassCastExceptionQ可按如下方式修改客P客户端)(j)代码Q?

解决Ҏ(gu)Q如果客L(fng)连接对象{换ؓ(f) MyConnectionQ而不是将 MyConnection 作ؓ(f)实现资源适配器的 Connection 接口的一个类Q请该对象修改Z个扩?Connection 的接口。实C个用于实?MyConnection 接口?MyConnectionImpl cR?

Servlet 动态重新加?/strong>

有关该情늚完整说明Q请参?http://e-docs.bea.com/wls/docs81/jsp/reference.html (English)

摘要Q要在会(x)话过E中动态重新加?servlet ?JSPQservlet ?x)话中存储的对象必须是可序列化的。需要进行序列化是因为,servlet 是用新?ClassLoader 重新加蝲的,而这?x)导致此前加载的所有类Q旧版本 servlet 中的c)(j)与用新?ClassLoader 加蝲的所有类Q新版本 servlet c)(j)发生不兼容的情况。这U不兼容?x)导?servlet q回 ClassCastException 错误?

使用 Prefer-web-inf-classes 功能

有关该情늚完整说明Q请参?http://e-docs.bea.com/wls/docs81/programming/classloading.html (English)

摘要Qweblogic.xml Web 应用E序部v描述W包含一?prefer-web-inf-classes 元素Qcontainer-descriptor 元素的子元素Q。缺省情况下Q此元素讄?False。如果将此元素设|ؓ(f) TrueQ则不遵?ClassLoader 委托模型Q从而 Web 应用E序中的cd义的加蝲序优先于更高别的 ClassLoader 中的cd义。这?Web 应用E序可使用其自q本的W三方类Q该cM可能?WebLogic Server 的一部分。请参阅 weblogic.xml Deployment Descriptor Elements (English)?

使用该功能时Q必L意不要؜淆?Web 应用E序的类定义创徏的实例与使用服务器的定义创徏的实例。如果؜淆了(jin)此类实例Q就?x)发?ClassCastException?

集Q在 http ?x)话中存储包?EJBObject 的自定义对象 - CR102119

摘要Q可序列化的自定义对象会(x)包装 EJBObjectQ对 EJB 的引用)(j)。该自定义对象存储在 http ?x)话中。会(x)话复制时Q这U设计就?x)导?ClassCastException?/font>

解决Ҏ(gu)Q在以后版本?WebLogic Server 中将d解决该问题。目前的解决办法是在包装器内存储 EJB 句柄Q而不?EJBObjectQ?/font>

集QFailover 后?http ?x)话中?EJB 句柄 - CR187062

摘要Q在集中分别部|?webApp ?EJB。EJB 句柄包装在可序列化的自定义对象中Q而该对象存储?http ?x)话中。Failover 后,通过句柄讉K EJB ׃(x)发生 ClassCastException?/font>

解决Ҏ(gu)Q在同一?ear 文g中包?webApp ?EJB。该问题存在?WLS 8.1sp2 中,目前正在{待更正?br>q回首

需要更多帮助?
如果(zhn)已l理解这个模式,但仍需要更多帮助,(zhn)可以:(x)

  1. ?http://support.bea.com/ 上查?AskBEAQ例如,使用“ClassCastException”)(j)Q以查找其它已发布的解决办法?
  2. ?http://forums.bea.com/ 上,?BEA 的某个新ȝ提出更详l具体的问题?/font>



wangjc 2009-03-19 11:42 发表评论
]]>
HTTP协议Q{载)(j)http://m.tkk7.com/wangjc0801/archive/2009/02/18/255356.htmlwangjcwangjcWed, 18 Feb 2009 14:35:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/02/18/255356.htmlhttp://m.tkk7.com/wangjc0801/comments/255356.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/02/18/255356.html#Feedback0http://m.tkk7.com/wangjc0801/comments/commentRss/255356.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/255356.html

HTTP是一个属于应用层的面向对象的协议Q由于其捗快速的方式Q适用于分布式媒体信息系l。它?990q提出,l过几年?br>使用与发展,得到不断地完善和扩展。目前在WWW中用的是HTTP/1.0的第六版QHTTP/1.1的规范化工作正在q行之中Q而且HTTP-
NG(Next Generation of HTTP)的徏议已l提出?br>HTTP协议的主要特点可概括如下Q?br>1.支持客户/服务器模式?br>2.单快速:(x)客户向服务器h服务Ӟ只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每U方法规定了(jin)客户与服
务器联系的类型不同。由于HTTP协议单,使得HTTP服务器的E序规模,因而通信速度很快?br>3.灉|QHTTP允许传输Lcd的数据对象。正在传输的cd由Content-Type加以标记?br>4.无连接:(x)无连接的含义是限制每ơ连接只处理一个请求。服务器处理完客L(fng)hQƈ收到客户的应{后Q即断开q接。采用这U方
式可以节省传输时间?br>5.无状态:(x)HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺状态意味着如果后箋(hu)处理需要前面的信息Q则
它必重传,q样可能D每次q接传送的数据量增大。另一斚wQ在服务器不需要先前信息时它的应答p快?/font>

一、HTTP协议详解之URL?br>

    httpQ超文本传输协议Q是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方
式,HTTP1.1版本中给ZU持l连接的机制Q绝大多数的Web开发,都是构徏在HTTP协议之上的Web应用?/font>

HTTP URL (URL是一U特D类型的URIQ包含了(jin)用于查找某个资源的够的信息)的格式如下:(x)
http://host[":"port][abs_path]
http表示要通过HTTP协议来定位网l资源;host表示合法的InternetL域名或者IP地址Qport指定一个端口号Q?br>为空则用缺省端?0Qabs_path指定h资源的URIQ如果URL中没有给出abs_pathQ那么当它作求URI
Ӟ必须以?”的形式l出Q通常q个工作览器自动帮我们完成?br>eg:
1、输入:(x)
www.guet.edu.cn
览器自动{换成Q?/font>http://www.guet.edu.cn/
2、http:192.168.0.116:8080/index.jsp

二、HTTP协议详解之请求篇

    httph׃部分l成Q分别是Q请求行、消息报头、请求正?/font>

1、请求行以一个方法符号开_(d)以空格分开Q后面跟着h的URI和协议的版本Q格式如下:(x)Method Request-
URI HTTP-Version CRLF 
其中 Method表示hҎ(gu)QRequest-URI是一个统一资源标识W;HTTP-Version表示h的HTTP协议版本Q?br>CRLF表示回R和换行(除了(jin)作ؓ(f)l尾的CRLF外,不允许出现单独的CR或LF字符Q?/font>

hҎ(gu)Q所有方法全为大写)(j)有多U,各个Ҏ(gu)的解释如下:(x)
GET     h获取Request-URI所标识的资?br>POST    在Request-URI所标识的资源后附加新的数据
HEAD    h获取由Request-URI所标识的资源的响应消息报头
PUT     h服务器存储一个资源,q用Request-URI作ؓ(f)其标?br>DELETE  h服务器删除Request-URI所标识的资?br>TRACE   h服务器回送收到的h信息Q主要用于测试或诊断
CONNECT 保留来使用
OPTIONS h查询服务器的性能Q或者查询与资源相关的选项和需?br>应用举例Q?br>GETҎ(gu)Q在览器的地址栏中输入|址的方式访问网|Q浏览器采用GETҎ(gu)向服务器获取资源Q?br>eg:GET /form.html HTTP/1.1 (CRLF)

POSTҎ(gu)要求被请求服务器接受附在h后面的数据,常用于提交表单?br>egQPOST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF)         //该CRLF表示消息报头已经l束Q在此之前ؓ(f)消息报头
user=jeffrey&pwd=1234  //此行以下为提交的数据

HEADҎ(gu)与GETҎ(gu)几乎是一L(fng)Q对于HEADh的回应部分来_(d)它的HTTP头部中包含的信息与通过
GETh所得到的信息是相同的。利用这个方法,不必传输整个资源内容Q就可以得到Request-URI所标识的资
源的信息。该Ҏ(gu)常用于测试超链接的有效性,是否可以讉KQ以?qing)最q是否更新?br>2、请求报头后q?br>3、请求正??

三、HTTP协议详解之响应篇

    在接收和解释h消息后,服务器返回一个HTTP响应消息?/font>

HTTP响应也是׃个部分组成,分别是:(x)状态行、消息报头、响应正?br>1、状态行格式如下Q?br>HTTP-Version Status-Code Reason-Phrase CRLF
其中QHTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase
表示状态代码的文本描述?br>状态代码有三位数字l成Q第一个数字定义了(jin)响应的类别,且有五种可能取|(x)
1xxQ指CZ?-表示h已接Ӟl箋(hu)处理
2xxQ成?-表示h已被成功接收、理解、接?br>3xxQ重定向--要完成请求必进行更q一步的操作
4xxQ客L(fng)错误--h有语法错误或h无法实现
5xxQ服务器端错?-服务器未能实现合法的h
常见状态代码、状态描q、说明:(x)
200 OK      //客户端请求成?br>400 Bad Request  //客户端请求有语法错误Q不能被服务器所理解
401 Unauthorized //h未经授权Q这个状态代码必dW(xu)WW-Authenticate?nbsp;                //头域一起?
403 Forbidden  //服务器收到请求,但是拒绝提供服务
404 Not Found  //h资源不存在,egQ输入了(jin)错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable  //服务器当前不能处理客L(fng)的请求,一D|间后Q?nbsp;                        //可能恢复正常
egQHTTP/1.1 200 OK QCRLFQ?/font>

2、响应报头后q?/font>

3、响应正文就是服务器q回的资源的内容

四、HTTP协议详解之消息报头篇

    HTTP消息由客L(fng)到服务器的请求和服务器到客户端的响应l成。请求消息和响应消息都是由开始行Q对
于请求消息,开始行是h行,对于响应消息Q开始行是状态行Q,消息报头Q可选)(j)Q空行(只有
CRLF的行Q,消息正文Q可选)(j)l成?/font>

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头?br>每一个报头域都是由名?“:(x)?I格+?l成Q消息报头域的名字是大小写无关的?/font>

1、普通报?br>在普通报头中Q有数报头域用于所有的h和响应消息,但ƈ不用于被传输的实体,只用于传输的消息?br>egQ?br>Cache-Control   用于指定~存指o(h)Q缓存指令是单向的(响应中出现的~存指o(h)在请求中未必?x)出玎ͼ?j)Q且?br>独立的(一个消息的~存指o(h)不会(x)影响另一个消息处理的~存机制Q,HTTP1.0使用的类似的报头域ؓ(f)Pragma?br>h时的~存指o(h)包括Qno-cacheQ用于指C求或响应消息不能~存Q、no-store、max-age、max-stale、min-
fresh、only-if-cached;
响应时的~存指o(h)包括Qpublic、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate?br>max-age、s-maxage.
egQؓ(f)?jin)指CIE览器(客户端)(j)不要~存面Q服务器端的JSPE序可以~写如下Qresponse.sehHeader
("Cache-Control","no-cache");
//response.setHeader("Pragma","no-cache");作用相当于上qC码,通常两?/合用
q句代码在发送的响应消息中设|普通报头域QCache-Control:no-cache

Date普通报头域表示消息产生的日期和旉

Connection普通报头域允许发送指定连接的选项。例如指定连接是q箋(hu)Q或者指定“close”选项Q通知服务
器,在响应完成后Q关闭连?/font>

2、请求报?br>h报头允许客户端向服务器端传递请求的附加信息以及(qing)客户端自w的信息?br>常用的请求报?br>Accept
Accepth报头域用于指定客L(fng)接受哪些cd的信息。egQAcceptQimage/gifQ表明客L(fng)希望接受GIF图象
格式的资源;AcceptQtext/htmlQ表明客L(fng)希望接受html文本?br>Accept-Charset
Accept-Charseth报头域用于指定客L(fng)接受的字W集。egQAccept-Charset:iso-8859-1,gb2312.如果在请求消
息中没有讄q个域,~省是Q何字W集都可以接受?br>Accept-Encoding
Accept-Encodingh报头域类gAcceptQ但是它是用于指定可接受的内容编码。egQAccept-Encoding:gzip.deflate.如果h消息中没有设|这个域服务器假定客L(fng)对各U内容编码都可以接受?br>Accept-Language
Accept-Languageh报头域类gAcceptQ但是它是用于指定一U自然语a。egQAccept-Language:zh-cn.如果?br>求消息中没有讄q个报头域,服务器假定客L(fng)对各U语a都可以接受?br>Authorization
Authorizationh报头域主要用于证明客L(fng)有权查看某个资源。当览器访问一个页面时Q如果收到服务器
的响应代码ؓ(f)401Q未授权Q,可以发送一个包含Authorizationh报头域的hQ要求服务器对其q行验证?br>HostQ发送请求时Q该报头域是必需的)(j)
Hosth报头域主要用于指定被h资源的InternetL和端口号Q它通常从HTTP URL中提取出来的QegQ?br>我们在浏览器中输入:(x)
http://www.guet.edu.cn/index.html
览器发送的h消息中,׃(x)包含Hosth报头域,如下Q?br>HostQ?/font>www.guet.edu.cn
此处使用~省端口?0Q若指定?jin)端口号Q则变成QHostQ?/font>www.guet.edu.cn:指定端口?br>User-Agent
我们上网登陆论坛的时候,往往?x)看C些欢q信息,其中列出?jin)你的操作系l的名称和版本,你所使用?br>览器的名称和版本,q往往让很多h感到很神奇,实际上,服务器应用程序就是从User-Agentq个h报头
域中获取到这些信息。User-Agenth报头域允许客L(fng)它的操作系l、浏览器和其它属性告诉服务器。不
q,q个报头域不是必需的,如果我们自己~写一个浏览器Q不使用User-Agenth报头域,那么服务器端?br>无法得知我们的信息了(jin)?br>h报头举例Q?br>GET /form.html HTTP/1.1 (CRLF)
Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-
powerpoint,application/msword,*/* (CRLF)
Accept-Language:zh-cn (CRLF)
Accept-Encoding:gzip,deflate (CRLF)
If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)
If-None-Match:W/"80b1a4c018f3c41:8317" (CRLF)
User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)
Host:www.guet.edu.cn (CRLF)
Connection:Keep-Alive (CRLF)
(CRLF)

3、响应报?br>响应报头允许服务器传递不能放在状态行中的附加响应信息Q以?qing)关于服务器的信息和对Request-URI所标识
的资源进行下一步访问的信息?br>常用的响应报?br>Location
Location响应报头域用于重定向接受者到一个新的位|。Location响应报头域常用在更换域名的时候?br>Server
Server响应报头域包含了(jin)服务器用来处理请求的软g信息。与User-Agenth报头域是相对应的。下面是
Server响应报头域的一个例子:(x)
ServerQApache-Coyote/1.1
WWW-Authenticate
WWW-Authenticate响应报头域必被包含?01Q未授权的)(j)响应消息中,客户端收?01响应消息时候,q发
送Authorization报头域请求服务器对其q行验证Ӟ服务端响应报头就包含该报头域?br>egQWWW-Authenticate:Basic realm="Basic Auth Test!"  //可以看出服务器对h资源采用的是基本验证机制?/font>

4、实体报?br>h和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文l成Q但q不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了(jin)关于实体正文QegQ有无实体正文)(j)和请求所标识的资源的元信息?br>常用的实体报?br>Content-Encoding
Content-Encoding实体报头域被用作媒体cd的修饰符Q它的值指CZ(jin)已经被应用到实体正文的附加内容的~?br>码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Encodingq样?br>于记录文档的压羃Ҏ(gu)QegQContent-EncodingQgzip
Content-Language
Content-Language实体报头域描qC(jin)资源所用的自然语言。没有设|该域则认ؓ(f)实体内容提供给所有的语言
阅读
者。egQContent-Language:da
Content-Length
Content-Length实体报头域用于指明实体正文的长度Q以字节方式存储的十q制数字来表C?br>Content-Type
Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。egQ?br>Content-Type:text/html;charset=ISO-8859-1
Content-Type:text/html;charset=GB2312
Last-Modified
Last-Modified实体报头域用于指C源的最后修Ҏ(gu)期和旉?br>Expires
Expires实体报头域给出响应过期的日期和时间。ؓ(f)?jin)让代理服务器或览器在一D|间以后更新缓存(sh)(再次
讉K曾访问过的页面时Q直接从~存?sh)加载,~短响应旉和降低服务器负蝲)的页面,我们可以使用Expires
实体报头域指定页面过期的旉。egQExpiresQThuQ?5 Sep 2006 16:23:12 GMT
HTTP1.1的客L(fng)和缓存必d其他非法的日期格式(包括0Q看作已l过期。egQؓ(f)?jin)让览器不要缓存?br>面,我们也可以利用Expires实体报头域,讄?Qjsp中程序如下:(x)response.setDateHeader("Expires","0");

五、利用telnet观察http协议的通讯q程

    实验目的?qing)原理?x)
    利用MS的telnet工具Q通过手动输入httph信息的方式,向服务器发出hQ服务器接收、解释和接受h
后,?x)返回一个响应,该响应会(x)在telnetH口上显C出来,从而从感性上加深对http协议的通讯q程的认识?/font>

    实验步骤Q?/font>

1、打开telnet
1.1 打开telnet
q行-->cmd-->telnet

1.2 打开telnet回显功能
set localecho

2、连接服务器q发送请?br>2.1 open www.guet.edu.cn 80  //注意端口号不能省?/font>

    HEAD /index.asp HTTP/1.0
    Host:www.guet.edu.cn
   /*我们可以变换hҎ(gu),h桂林?sh)子主页内?输入消息如下*/
    open
www.guet.edu.cn 80
    GET /index.asp HTTP/1.0  //h资源的内?br>    Host:www.guet.edu.cn  

2.2 open www.sina.com.cn 80  //在命令提C符号下直接输入telnet www.sina.com.cn 80
    HEAD /index.asp HTTP/1.0
    Host:www.sina.com.cn

3 实验l果Q?/font>

3.1 h信息2.1得到的响应是:

HTTP/1.1 200 OK                                              //h成功
Server: Microsoft-IIS/5.0                                    //web服务?br>Date: Thu,08 Mar 200707:17:51 GMT
Connection: Keep-Alive                                
Content-Length: 23330
Content-Type: text/html
Expries: Thu,08 Mar 2007 07:16:51 GMT
Set-Cookie: ASPSESSIONIDQAQBQQQB=BEJCDGKADEDJKLKKAJEOIMMH; path=/
Cache-control: private

//资源内容省略

3.2 h信息2.2得到的响应是:

HTTP/1.0 404 Not Found       //hp|
Date: Thu, 08 Mar 2007 07:50:50 GMT
Server: Apache/2.0.54 <Unix>
Last-Modified: Thu, 30 Nov 2006 11:35:41 GMT
ETag: "6277a-415-e7c76980"
Accept-Ranges: bytes
X-Powered-By: mod_xlayout_jh/0.0.1vhs.markII.remix
Vary: Accept-Encoding
Content-Type: text/html
X-Cache: MISS from zjm152-78.sina.com.cn
Via: 1.0 zjm152-78.sina.com.cn:80<squid/2.6.STABLES-20061207>
X-Cache: MISS from th-143.sina.com.cn
Connection: close

失去?jin)跟L的连?/font>

按Q意键l箋(hu)...

4 .注意事项Q?、出现输入错误,则请求不?x)成功?br>          2、报头域不分大小写?br>          3、更׃步了(jin)解HTTP协议Q可以查看RFC2616Q在http://www.letf.org/rfc上找到该文g?br>          4、开发后台程序必L握http协议

六?/font>HTTP协议相关技术补?/font>

    1、基Q?br>    高层协议有:(x)文g传输协议FTP、电(sh)子邮件传输协议SMTP、域名系l服务DNS、网l新M输协议NNTP?br>HTTP协议{?br>中介׃U:(x)代理(Proxy)、网?Gateway)和通道(Tunnel)Q一个代理根据URI的绝Ҏ(gu)式来接受hQ重写全?br>或部分消息,通过 URI的标识把已格式化q的h发送到服务器。网x(chng)一个接收代理,作ؓ(f)一些其它服?br>器的上层Qƈ且如果必ȝ话,可以把请求翻译给下层的服务器协议。一 个通道作ؓ(f)不改变消息的两个q接
之间的中l点。当通讯需要通过一个中?例如Q防火墙{?或者是中介不能识别消息的内Ҏ(gu)Q通道l常被
用?br>     代理(Proxy)Q一个中间程序,它可以充当一个服务器Q也可以充当一个客hQؓ(f)其它客户机徏立请求?br>h是通过可能的翻译在内部或经q传递到其它?服务器中。一个代理在发送请求信息之前,必须解释q且
如果可能重写它。代理经怽为通过防火墙的客户机端的门P代理q可以作Z个帮助应用来通过协议?
理没有被用户代理完成的请求?br>|关(Gateway)Q一个作为其它服务器中间媒介的服务器。与代理不同的是Q网x(chng)受请求就好象对被h?br>资源来说它就是源服务器;发出h的客hq没有意识到它在同网x(chng)交道?br>  |关l常作ؓ(f)通过防火墙的服务器端的门P|关q可以作Z个协议翻译器以便存取那些存储在非
HTTPpȝ中的资源?br>    通道(Tunnel)Q是作ؓ(f)两个q接中的中介程序。一旦激z,通道便被认ؓ(f)不属于HTTP通讯Q尽通道可能
是被一个HTTPh初始化的。当被中l?的连接两端关闭时Q通道便消失。当一个门?Portal)必须存在或中?br>(Intermediary)不能解释中的通讯旉道被经怋用?br>2、协议分析的优势—HTTP分析器检网l攻?br>以模块化的方式对高层协议q行分析处理Q将是未来入侉|的方向?br>HTTP?qing)其代理的常用端?0?128?080在network部分用port标签q行?jin)规?br>3、HTTP协议Content Lenth限制漏洞D拒绝服务d
使用POSTҎ(gu)Ӟ可以讄ContentLenth来定义需要传送的数据长度Q例如ContentLenth:999999999Q在传送完
成前Q内 存(sh)?x)释放,d者可以利用这个缺Pq箋(hu)向WEB服务器发送垃圾数据直至WEB服务器内存?br>。这U攻?yn)L法基本不?x)留下痕qV?br>http://www.cnpaf.net/Class/HTTP/0532918532667330.html
4、利用HTTP协议的特性进行拒l服务攻ȝ一些构?br>服务器端忙于处理d者伪造的TCPq接h而无暇理睬客L(fng)正常hQ毕竟客L(fng)的正常请求比率非怹
)(j)Q此时从正常客户的角度看来,服务器失d应,q种情况我们UCQ服务器端受C(jin)SYNFlooddQSYNz水dQ?br>而Smurf、TearDrop{是利用ICMP报文来Flood和IP片d的。本文用“正常连接”的Ҏ(gu)来生拒l服务攻凅R?br>19端口在早期已l有人用来做Chargend?jin),即Chargen_Denial_of_ServiceQ但是!他们用的Ҏ(gu)是在两台
Chargen 服务器之间生UDPq接Q让服务器处理过多信息而DOWN掉,那么Q干掉一台WEB服务器的条g?br>必须?个:(x)1.有Chargen服务2.有HTTP 服务
Ҏ(gu)Q攻击者伪造源IPlN台Chargen发送连接请求(ConnectQ,Chargen接收到连接后׃(x)q回每秒72字节?br>字符(实际上根据网l实际情况,q个速度更快Q给服务器?br>5、Http指纹识别技?br>   Http指纹识别的原理大致上也是相同的:(x)记录不同服务器对Http协议执行中的微小差别q行识别.Http指纹?br>别比TCP/IP堆栈指纹识别复杂??理由是定制Http服务器的配置文g、增加插件或lg使得更改Http的响?br>信息变的很容?q样使得识别变的困难Q然而定制TCP/IP堆栈的行?需要对核心(j)层进行修?所以就Ҏ(gu)?br>?
      要让服务器返回不同的Banner信息的设|是很简单的,象Apacheq样的开放源代码的Http服务?用户可以?br>源代码里修改Banner信息,?后重起Http服务q效了(jin)Q对于没有公开源代码的Http服务器比如微软的IIS或?br>是Netscape,可以在存放Banner信息的Dll文g中修 ?相关的文章有讨论?q里不再赘述,当然q样的修改的效果
q是不错?另外一U模pBanner信息的方法是使用插g?br>常用试hQ?br>1QHEAD/Http/1.0发送基本的Httph
2QDELETE/Http/1.0发送那些不被允许的h,比如Deleteh
3QGET/Http/3.0发送一个非法版本的Http协议h
4QGET/JUNK/1.0发送一个不正确规格的Http协议h
Http指纹识别工具Httprint,它通过q用l计学原?l合模糊的逻辑学技?能很有效的确定Http服务器的cd.?br>可以被用来收集和分析不同Http服务器生的{֐?br>6、其他:(x)Z(jin)提高用户使用览器时的性能Q现代浏览器q支持ƈ发的讉K方式Q浏览一个网|同时建立
多个q接Q以q速获得一个网上的多个图标,q样能更快速完成整个网늚传输?br>HTTP1.1中提供了(jin)q种持箋(hu)q接的方式,而下一代HTTP协议QHTTP-NG更增加了(jin)有关?x)话控制、丰富的内容
协商{方式的支持Q来提供
更高效率的连接?/font>



wangjc 2009-02-18 22:35 发表评论
]]>
hUd---免费订阅全国主要城市(jng)天气预报http://m.tkk7.com/wangjc0801/archive/2009/02/13/254608.htmlwangjcwangjcFri, 13 Feb 2009 13:14:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/02/13/254608.htmlhttp://m.tkk7.com/wangjc0801/comments/254608.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/02/13/254608.html#Feedback1http://m.tkk7.com/wangjc0801/comments/commentRss/254608.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/254608.htmlgoogle中国最q推出全国主要城?jng)天气预报短信提醒服?每天发送一?q是免费?比某些包月的提醒好多?闲话不说,下面是截?

|址Q?a >http://www.google.com/sms/alerts



wangjc 2009-02-13 21:14 发表评论
]]>
一Ƒ־不错的音乐播攑֙http://m.tkk7.com/wangjc0801/archive/2009/02/09/253848.htmlwangjcwangjcMon, 09 Feb 2009 01:04:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/02/09/253848.htmlhttp://m.tkk7.com/wangjc0801/comments/253848.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/02/09/253848.html#Feedback0http://m.tkk7.com/wangjc0801/comments/commentRss/253848.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/253848.html    亦歌(http://www.1g1g.com)是一个在U的音乐播放?界面很干净,个h很喜?另外q支持收?歌词,黑名单等功能.

q有桌面版本?很不?和大家共享一?..

下面是截?



wangjc 2009-02-09 09:04 发表评论
]]>
Java之网l编E?/title><link>http://m.tkk7.com/wangjc0801/archive/2009/02/08/253799.html</link><dc:creator>wangjc</dc:creator><author>wangjc</author><pubDate>Sun, 08 Feb 2009 10:50:00 GMT</pubDate><guid>http://m.tkk7.com/wangjc0801/archive/2009/02/08/253799.html</guid><wfw:comment>http://m.tkk7.com/wangjc0801/comments/253799.html</wfw:comment><comments>http://m.tkk7.com/wangjc0801/archive/2009/02/08/253799.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/wangjc0801/comments/commentRss/253799.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/wangjc0801/services/trackbacks/253799.html</trackback:ping><description><![CDATA[<p><font color="#0000ff" size="2">   java 为网l支持提供了(jin)java.net?</font></p> <p><font color="#0000ff" size="2">1. 该包下的URL和URLConnectioncL供了(jin)以编E方式访问Web服务的功?/font></p> <p><font color="#0000ff" size="2">2. URLDecoder和URLEncoder提供普通字W串和application/x-www-form-urlencoded MIME</font></p> <p><font color="#0000ff" size="2">3. InetAddresscM表IP地址</font></p> <p><font color="#0000ff" size="2">E序清单:InetAddressTest.java</font></p> <p></p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; max-height: 200px"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">import java.net.InetAddress;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> InetAddressTest {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> main(String[] args) throws Exception {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> InetAddress ia = InetAddress.getByName(<span style="color: #006080">"www.163.com"</span>);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"是否可到?"</span> + ia.isReachable(5000));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <span style="color: #008000">//获取ia对象的Ip和主机名</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(ia.getHostAddress() + <span style="color: #006080">"~"</span> +ia.getHostName());</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <span style="color: #008000">//getCanonicalHostNameq回l果是Ip地址</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(ia.getCanonicalHostName());</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> InetAddress ia1 = InetAddress.getByAddress(<span style="color: #0000ff">new</span> <span style="color: #0000ff">byte</span>[] {10,17,8,61});</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"是否可到?"</span> + ia1.isReachable(5000));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(ia1.getCanonicalHostName());</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">}</pre></div></div> <p><font color="#0000ff" size="2">E序清单:URLDecoderTest.java</p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; max-height: 200px"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">import java.net.URLDecoder;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">import java.net.URLEncoder;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> URLDecoderTest {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> main(String[] args) throws Exception</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> <span style="color: #008000">//application/x-www-form-urlencoded字符串{换成普通字W串</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> <span style="color: #008000">//~码方式不同,l果不同</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"utf-8:"</span> + URLEncoder.encode(<span style="color: #006080">"未知数据"</span> , <span style="color: #006080">"utf-8"</span>));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"GBK:"</span> + URLEncoder.encode(<span style="color: #006080">"未知数据"</span> , <span style="color: #006080">"GBK"</span>));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> <span style="color: #008000">//普通字W串转换成application/x-www-form-urlencoded字符?/span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"utf-8:"</span> + URLDecoder.decode(<span style="color: #006080">"%E6%9C%AA%E7%9F%A5%E6%95%B0%E6%8D%AE"</span>, <span style="color: #006080">"utf-8"</span>));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> System.<span style="color: #0000ff">out</span>.println(<span style="color: #006080">"GBK:"</span> + URLDecoder.decode(<span style="color: #006080">"%CE%B4%D6%AA%CA%FD%BE%DD"</span>, <span style="color: #006080">"GBK"</span>));</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"> }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"> </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre></div></div></font> <p></p> <p> </p> <p><font color="#ff0000"><strong>Q:上面的getCanonicalHostName()不知道有什么作?不知道各位大虾有没有?jin)解?</strong></font></p> <p><font color="#ff0000"><strong>上网google?jin)一?在C:\WINDOWS\system32\drivers\etc\hosts中设|了(jin)servername,可以通过该方法获取到,否则q回IP地址.</strong></font></p><img src ="http://m.tkk7.com/wangjc0801/aggbug/253799.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/wangjc0801/" target="_blank">wangjc</a> 2009-02-08 18:50 <a href="http://m.tkk7.com/wangjc0801/archive/2009/02/08/253799.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java常用c?Calendarhttp://m.tkk7.com/wangjc0801/archive/2009/02/06/253485.htmlwangjcwangjcFri, 06 Feb 2009 01:08:00 GMThttp://m.tkk7.com/wangjc0801/archive/2009/02/06/253485.htmlhttp://m.tkk7.com/wangjc0801/comments/253485.htmlhttp://m.tkk7.com/wangjc0801/archive/2009/02/06/253485.html#Feedback0http://m.tkk7.com/wangjc0801/comments/commentRss/253485.htmlhttp://m.tkk7.com/wangjc0801/services/trackbacks/253485.html1. 处理日期旉的类有java.util.Date和java.util.Calendar

2. DatecMjava1.0开始存在了(jin),到现在大部分Ҏ(gu)都已l过时了(jin),所以不推荐使用.比如Date?个构造器,但其中有4个已l不推荐使用?

3. Calendar是一个抽象类.本n不能被实例化,只能通过getInstance()的方法来获取实例对象.Calendar.getInstance()Ҏ(gu)TimeZone,Localec获取特定的Calendar

4. Calendar是所有日历类的模?例如GregorianCalendar(公历)

5. Date和Calendar都是表示日期的工L(fng),二者之间可以Q意{?Calendar的getTime()Ҏ(gu)q回Date

E序清单:

 
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
 
public class DateTest {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        Calendar c = Calendar.getInstance(Locale.CHINESE);
        
        // 有Calendar获取Date
        Date d = c.getTime();
        System.out.println(d);
        
        // 获取q月?/span>
        System.out.println("q?"+c.get(Calendar.YEAR));
        System.out.println("?"+c.get(Calendar.MONTH));
        System.out.println("?"+c.get(Calendar.DATE));
        
        // 旉计算
        c.add(Calendar.YEAR, -1);
        System.out.println("?q?"+c.getTime());
        
        // 讑֮旉,Calendar有两U模式lenient(宽松模式)和non-lenient.当Calendar处于宽松模式?每个
        // 旉字段都可以超出它允许的范?在处于非宽松模式?当时间字D超?gu)围??x)抛出异?/span>
        //c.setLenient(false);//定w开?false可关闭容?q行日期合法性检?/span>
        
        
        c.set(2009, 0, 32);// 定w?当字DDq了(jin)正常范围?上字段?x)自动增?/span>
        
        // setҎ(gu)延迟?使用setҎ(gu)?日历旉不会(x)立即更新,要等Cơ调用get(),getTime(),getTimeinMillis(),add()或roll()
        // ?才会(x)重新计算日历的时?q样也避免了(jin)多次调用setҎ(gu)带来的多ơ计?
        
        System.out.println("讑֮旉:"+c.getTime());
        
        // add和roll区别,add的上U字D会(x)自动增加
        c.set(2008,11,31);
        c.add(Calendar.MONTH, 1);
        System.out.println("add():"+c.getTime());//2009-01-31  q䆾增加?/span>
        
        c.set(2008,11,31);
        c.roll(Calendar.MONTH, 1);
        System.out.println("roll():"+c.getTime());//2008-01-31  q䆾没有改变
        
    }
 
}


wangjc 2009-02-06 09:08 发表评论
]]>
վ֩ģ壺 Ůžž| þþžѸƵ| 91վ߹ۿ| 91Ʒѹ| С˵ ͼƬ | AV˾Ʒ߹ۿ| ۺ߹ۿ| aëƬþ| ھƷ뿨123| ۺպþóAV| ĻĻɫ| 91Ʒȫѹۿ| ɫ߾Ʒѹۿ| AVպAV | ޾Ʒվ߹ۿ| Ļ| APPѹۿƵ| ůůѸձһ| þþþAvƬv| Ʒavɫ| 67paoǿ| þþþavëƬ| ۺɫһ| ƷһëƬ | ҹҹƵۿ| AV߹ۿ| ͼƬУ԰С˵| ѿŮճˮ| ޾Ʒ߳ˮ| ˾ҹѸ| 99ŮŮѾƷƵ߹ۿ | ĻƵ| þ޹Ʒ| AѾƷƵ| ԲľƷƵѿ| ޼Ƶվ| ò߹ۿ| ޾Ʒ߹ۿ㶮 | һƵ| ձѲƵ| һ|