??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码久久久,亚洲经典在线中文字幕,亚洲国产精品综合久久久http://www.tkk7.com/gen-sky/category/36526.htmll日昏昏醉梦_忽闻春尽强登山, 因过竚w逢僧话,偷得生半日闌Ӏ?/description>zh-cnWed, 28 Oct 2009 08:17:16 GMTWed, 28 Oct 2009 08:17:16 GMT60 java.nio.BufferOverflowException 异常http://www.tkk7.com/gen-sky/archive/2009/10/28/300068.html星期?/dc:creator>星期?/author>Wed, 28 Oct 2009 07:45:00 GMThttp://www.tkk7.com/gen-sky/archive/2009/10/28/300068.htmlhttp://www.tkk7.com/gen-sky/comments/300068.htmlhttp://www.tkk7.com/gen-sky/archive/2009/10/28/300068.html#Feedback0http://www.tkk7.com/gen-sky/comments/commentRss/300068.htmlhttp://www.tkk7.com/gen-sky/services/trackbacks/300068.html 1 Failure executing javac, but could not parse the error:
 2 ~译?nbsp;(1.6.0_07) 中出现异常?nbsp;如果?nbsp;Bug Parade 中没有找到该错误Q请?nbsp;Java Dev
 3 eloper Connection (http://java.sun.com/webapps/bugreport)  对该错误q行归?nbsp;?/span>
 4 在报告中附上您的E序和以下诊断信息。谢谢您的合作?br />  5 java.nio.BufferOverflowException
 6         at java.nio.Buffer.nextPutIndex(Buffer.java:495)
 7         at java.nio.HeapCharBuffer.put(HeapCharBuffer.java:145)
 8         at com.sun.tools.javac.util.DefaultFileManager.decode(DefaultFileManager
 9 .java:830)
10         at com.sun.tools.javac.util.DefaultFileManager.access$300(DefaultFileMan
11 ager.java:76)
12         at com.sun.tools.javac.util.DefaultFileManager$RegularFileObject.getChar
13 Content(DefaultFileManager.java:1353)
14         at com.sun.tools.javac.util.DefaultFileManager$RegularFileObject.getChar
15 Content(DefaultFileManager.java:1252)
16         at com.sun.tools.javac.main.JavaCompiler.readSource(JavaCompiler.java:48
17 3)
18         at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550)
19         at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:80
20 1)
21         at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
22         at com.sun.tools.javac.main.Main.compile(Main.java:353)
23         at com.sun.tools.javac.main.Main.compile(Main.java:279)
24         at com.sun.tools.javac.main.Main.compile(Main.java:270)
25         at com.sun.tools.javac.Main.compile(Main.java:87)
26         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
27         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
28 java:39)
29         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
30 sorImpl.java:25)
31         at java.lang.reflect.Method.invoke(Method.java:597)
32         at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(Jav
33 acCompiler.java:420)
34         at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompile
35 r.java:141)
36         at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompiler
37 Mojo.java:493)
38         at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
39         at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
40 nManager.java:483)
41         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
42 ultLifecycleExecutor.java:678)
43         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
44 fecycle(DefaultLifecycleExecutor.java:540)
45         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
46 ltLifecycleExecutor.java:519)
47         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
48 dleFailures(DefaultLifecycleExecutor.java:371)
49         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
50 ts(DefaultLifecycleExecutor.java:332)
51         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
52 fecycleExecutor.java:181)
53         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
54         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
55         at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
56         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
57         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
58 java:39)
59         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
60 sorImpl.java:25)
61         at java.lang.reflect.Method.invoke(Method.java:597)
62         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
63         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
64         at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
65 
66         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
67 
68


通过 eclipse IDE 工具?project -->clean q行后,可以执行mvn install命o

]]>
Jakarta Commons HttpClient 学习W记http://www.tkk7.com/gen-sky/archive/2009/09/02/293550.html星期?/dc:creator>星期?/author>Wed, 02 Sep 2009 02:56:00 GMThttp://www.tkk7.com/gen-sky/archive/2009/09/02/293550.htmlhttp://www.tkk7.com/gen-sky/comments/293550.htmlhttp://www.tkk7.com/gen-sky/archive/2009/09/02/293550.html#Feedback0http://www.tkk7.com/gen-sky/comments/commentRss/293550.htmlhttp://www.tkk7.com/gen-sky/services/trackbacks/293550.html
作者: Hilton

1、HttpClient的功?br />

JAVA手机|[www.cnjm.net]


Z标准Q纯正javaQ实Chttp1.0?.1?br />
在一个可扩展的OO框架内,实现了HTTP的全部方?GET, POST,
PUT, DELETE, HEAD, OPTIONS, and TRACE)

支持HTTPS(ssl上的HTTP)的加密操?br />
透明地穿qHTTP代理建立q接

通过CONNECTҎQ利用通过建立I过HTTP代理的HTTPSq接
JAVA手机|[www.cnjm.net]

利用本地Java socketQ透明地穿qSOCKS(版本5?Q代理徏立连?br />
支持利用Basic、Digest和NTLM加密的认?br />
JAVA手机|[www.cnjm.net]

支持用于上传大文件的Multi-Part表单POSTҎ

JAVA手机|[www.cnjm.net]
插g式安全socket实现Q易于用第三方的解x?br />
q接理Q支持多U程应用Q支持设定单个主机总连接和最高连接数?自动和关闭失效q接

直接请求信息流送到服务器的端口

直接d从服务器的端口送出的应{信?br />
JAVA手机|[www.cnjm.net]
支持HTTP/1.0中用KeepAlive和HTTP/1.1中用persistance讄的持久连?br />
直接讉K由服务器送出的应{代码和头部信息

可设|连接超时时?br />

HttpMethods 实现Command PatternQ以允许q行h或高效连接复?br />
JAVA手机|[www.cnjm.net]
遵@the Apache Software License协议Q源码免费可?


JAVA手机|[www.cnjm.net]

JAVA手机|[www.cnjm.net]
2、预备工?br />
对jre1.3.*Q如果要HttpClient支持httpsQ则需要下载ƈ安装jsse和jce.安装的步骤如下:
1)下蝲jsse和jce.
2)查CLASSPATH中没有与jsse和jce相关的jar?br /> 3)?US_export_policy.jar、local_policy.jar、jsse.jar、jnet.jar、jce1_2_x.jar、sunjce_provider.jar、jcert.jar复制到目录:
UNIX:$JDK_HOME/jre/lib/ext
JAVA手机|[www.cnjm.net]
Windows:%JDK_HOME%"jre"lib"ext
4)修改下述目录下的java.security文g?br /> UNIX:$JDK_HOME/jre/lib/security/
Windows:%JDK_HOME%"jre"lib"security"
5)
JAVA手机|[www.cnjm.net]
?br /> #
# List of providers and their preference orders:
#
JAVA手机|[www.cnjm.net]
security.provider.1=sun.security.provider.Sun
JAVA手机|[www.cnjm.net]
security.provider.2=com.sun.rsajca.Provider
改ؓQ?br /> #
# List of providers and their preference orders:
#
security.provider.1=com.sun.crypto.provider.SunJCE
security.provider.2=sun.security.provider.Sun
security.provider.3=com.sun.rsajca.Provider
security.provider.4=com.sun.net.ssl.internal.ssl.Provider

HttpClientq要求安装commons-loggingQ下面跟httpclient一块安装?br />
3、取得源?br />

cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
password: anoncvs
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout jakarta-commons/logging
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout jakarta-commons/httpclient

~译Q?br />
JAVA手机|[www.cnjm.net]
cd jakarta-commons/logging
ant dist
cp dis/*.jar ../httpclient/lib/
cd ../httpclient
ant dist


JAVA手机|[www.cnjm.net]
4、用HttpClient~程的基本步?br />

创徏 HttpClient 的一个实?
JAVA手机|[www.cnjm.net]

? 建某个方? QDeleteMethodQEntityEnclosingMethodQExpectContinueMethodQGetMethodQHeadMethodQMultipartPostMethodQOptionsMethodQPostMethodQPutMethodQTraceMethodQ? 的一个实例,一般可用要目标URL为参数?br />
?HttpClient 执行q个Ҏ.

JAVA手机|[www.cnjm.net]
d应答信息.

释放q接.

处理应答.


在执行方法的q程中,有两U异常,一U是HttpRecoverableExceptionQ表C偶然性错误发生,一般再试可能成功,另一U是IOExceptionQ严重错误?br /> q儿有这个教E中的一个例E,可以下蝲?br />

5、认?br />
HttpClient三种不同的认证方? Basic, Digest and NTLM. q些Ҏ可用于服务器或代理对客户端的认证Q简U服务器认证或代理认证?br /> 1)服务器认?Server Authentication)
HttpClient处理服务器认证几乎是透明的,仅需要开发h员提供登录信?login credentials)。登录信息保存在HttpStatecȝ实例中,可以通过 setCredentials(String realm, Credentials cred)和getCredentials(String realm)来获取或讄。注意,讑֮寚w特定站点讉K所需要的d信息Q将realm参数|ؓnull. HttpClient内徏的自动认证,可以通过HttpMethodcȝsetDoAuthentication(boolean doAuthentication)Ҏ关闭Q而且q次关闭只媄响HttpMethod当前的实例?br /> 抢先认证(Preemptive Authentication)可以通过下述Ҏ打开.
client.getState().setAuthenticationPreemptive(true);
在这U模式时QHttpClient会主动将basic认证应答信息传给服务器,即在某U情况下服务器可能返回认证失败的应答Q这样做主要是ؓ了减连接的建立。ؓ使每个新建的 HttpState实例都实行抢先认证,可以如下讄pȝ属性?br /> setSystemProperty(Authenticator.PREEMPTIVE_PROPERTY, "true");

Httpclient实现的抢先认证遵循rfc2617.
2)代理认证(proxy authentication)
除了d信息需单独存放以外Q代理认证与服务器认证几乎一致。用 setProxyCredentials(String realm, Credentials cred)?getProxyCredentials(String realm)设、取d信息?br /> 3)认证Ҏ(authentication schemes)
Basic
是HTTP中规定最早的也是最兼容(?)的方案,遗憾的是也是最不安全的一个方案,因ؓ它以明码传送用户名和密码。它要求一个UsernamePasswordCredentials实例Q可以指定服务器端的讉KI间或采用默认的d信息?br /> Digest
是在HTTP1.1中增加的一个方案,虽然不如Basic得到的Y件支持多Q但q是有广泛的使用。DigestҎ比BasicҎ安全得多Q因它根? ׃通过|络传送实际的密码Q传送的是利用这个密码对从服务器传来的一个随机数(nonce)的加密串。它要求一? UsernamePasswordCredentials实例Q可以指定服务器端的讉KI间或采用默认的d信息?br /> NTLM
JAVA手机|[www.cnjm.net]
q是HttpClient支持的最复杂的认证协议。它M$设计的一个私有协议,没有公开的规范说明。一开始由于设计的~陷QNTLM的安全性比 Digest差,后来l过一个ServicePack补丁后,安全性则比较Digest高。NTLM需要一个NTCredentials实例. 注意Q由于NTLM不用访问空?realms)的概念,HttpClient利用服务器的域名作访问空间的名字。还需要注意,提供l? NTCredentials的用户名Q不要用域名的前~ - ? "adrian" 是正的Q?"DOMAIN"adrian" 则是错的.
NTLM认证的工作机制与basic和digest有很大的差别。这些差别一般由HttpClient处理Q但理解q些差别有助避免在用NTLM认证时出现错误?br />
从HttpClientAPI的角度来看,NTLM与其它认证方式一L工作Q差别是需要提?NTCredentials'实例而不?UsernamePasswordCredentials'(其实Q前者只是扩展了后?

对NTLM认证Q访问空间是q接到的机器的域名,q对多域名主Z有一些麻?只有HttpClientq接中指定的域名才是认证用的域名。徏议将realm设ؓnull以用默认的讄?br />
NTLM只是认证了一个连接而不是一hQ所以每当一个新的连接徏立就要进行一ơ认证,且在认证的过E中保持q接是非帔R要的?因此QNTLM不能同时用于代理认证和服务器认证Q也不能用于http1.0q接或服务器不支持持久连接的情况?br />

6、重定向

׃技术限Ӟ以及Z?.0发布版API的稳定,HttpClientq不能自动处重定向,但对重定向到同一L、同一端口且采用同一协议的情况HttpClient可以支持。不能自动的处理的情况,包括需要h工交互的情况Q或出httpclient的能力?br /> 当服务器重定向指令指C同的LӞHttpClient只是单地重定向状态码作ؓ应答状态。所有的300?99Q包含两端)的返回码Q都表示是重定向应答。常见的有:

301 怹Ud. HttpStatus.SC_MOVED_PERMANENTLY

JAVA手机|[www.cnjm.net]
302 临时Ud. HttpStatus.SC_MOVED_TEMPORARILY

303 See Other. HttpStatus.SC_SEE_OTHER

307 临时重定? HttpStatus.SC_TEMPORARY_REDIRECT
JAVA手机|[www.cnjm.net]

当收到简单的重定向时Q程序应从HttpMethod对象中抽取新的URLq将其下载。另?限制一下重定向ơ数是个好的LQ这可以避免递归循环。新的URL可以从头字段Location中抽取,如下Q?br /> String redirectLocation;
Header locationHeader = method.getResponseHeader("location");
if (locationHeader != null) {
JAVA手机|[www.cnjm.net]
redirectLocation = locationHeader.getValue();
} else {
// The response is invalid and did not provide the new location for
// the resource. Report an error or possibly handle the response
// like a 404 Not Found error.
}

Ҏ重定向:

300 多重选择. HttpStatus.SC_MULTIPLE_CHOICES

304 没有改动. HttpStatus.SC_NO T_MODIFIED

305 使用代理. HttpStatus.SC_USE_PROXY




7、字W编?character encoding)

一个HTTP协议的请求或应答的头?在http协议中,数据包分Z部分Q一部分是头部,׃些名值对构成Q一部分是主?body)Q是真正传办? 的数据(如HTML面{)Q,必须以US-ASCII~码Q这是因为头部不传数据而只描述被要传输的数据的一些信息,一个例外是cookieQ它是数? 但是通过头部q行传输的,所以它也要用US-ASCII~码?br /> HTTP数据包的M部分Q可以用M一U方式进行编码,默认是ISO- 8859-1Q具体可以用头部字段Content-Type指定。可以利?addRequestHeaderҎQ设定编码方式;? getResponseCharSet取得~码方式。对HTML或XML{类型的文档Q它们的本n的Content-Type也可以指定编码方式,主要? 分两者的作用范围以得到正实的解码?br /> URL的编码标准,由RFC1738指定为,只能是由可打??字节的us-ascii字符l成Q?0-ff不是us-ascii字符Q?0-1F是控制字W,q两个区域中用的字符都须加以~码(encoded)?br />
JAVA手机|[www.cnjm.net]

8、Cookies

HttpClient能自动管理cookie,包括允许服务器设|cookieq在需要的时候自动将cookieq回服务器,它也支持手工讄 cookie后发送到服务器端。不q的是,对如何处理cookieQ有几个规范互相冲突QNetscape Cookie 草案, RFC2109, RFC2965Q而且q有很大数量的Y件商的cookie实现不遵循Q何规? Z处理q种状况QHttpClient提供了策略驱动的cookie理方式。HttpClient支持的cookie规范有:
Netscape cookie草案Q是最早的cookie规范Q基于rfc2109。尽这个规范与rc2109有较大的差别Q这样做可以与一些服务器兼容?

rfc2109Q? 是w3c发布的第一个官方cookie规范。理ZԌ所有的服务器在处理cookie(版本1)Ӟ都要遵@此规范,正因如此QHttpClient? 其设为默认的规范。遗憄是,q个规范太严gQ以致很多服务器不正的实施了该规范或仍在作用Netscape规范。在q种情况下,应用兼容规范?br />
JAVA手机|[www.cnjm.net]

JAVA手机|[www.cnjm.net]
兼容性规范,设计用来兼容可能多的服务器Q即使它们ƈ没有遵@标准规范。当解析cookie出现问题Ӟ应考虑采用兼容性规范?br />
JAVA手机|[www.cnjm.net]

JAVA手机|[www.cnjm.net]
RFC2965规范暂时没有被HttpClient支持Q在以后的版本ؓ会加上)Q它定义了cookie版本2Qƈ说明了版?cookie的不IRFC2965有意有久取代rfc2109.
在HttpClient中,有两U方法来指定cookie规范的用,
HttpClient client = new HttpClient();
client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);
q种Ҏ讄的规范只对当前的HttpState有效Q参数可取值CookiePolicy.COMPATIBILITYQCookiePolicy.NETSCAPE_DRAFT或CookiePolicy.RFC2109?br />
JAVA手机|[www.cnjm.net]
System.setProperty("apache.commons.httpclient.cookiespec", "COMPATIBILITY");
此法指的规范Q对以后每个新徏立的HttpState对象都有效,参数可取?COMPATIBILITY","NETSCAPE_DRAFT"?RFC2109"?br /> 常有不能解析cookie的问题,但更换到兼容规范大都能解冟?br />

9、用HttpClient遇到问题怎么?


用一个浏览器讉K服务器,以确认服务器应答正常

JAVA手机|[www.cnjm.net]
如果在代理Q关掉代理试?br />
另找一个服务器来试试(如果q行着不同的服务器软g更好Q?br />
查代码是否按教程中讲的思\~写

讄logU别为debugQ找出问题出现的原因

打开wiretraceQ来q踪客户端与服务器的通信Q以实问题出现在什么地?br />
用telnet或netcat手工信息发送到服务器,适合于猜已l找C原因而进行试验时

netcat以监听方式运行,用作服务器以查httpclient如何处理应答的?br />
利用最新的httpclient试试Qbug可能在最新的版本中修复了

向邮件列表求帮助

向bugzilla报告bug.



10、SSL

借助Java Secure Socket Extension (JSSE)QHttpClient全面支持Secure Sockets Layer (SSL)或IETF Transport Layer Security (TLS)协议上的HTTP。JSSE已经jre1.4及以后的版本中,以前的版本则需要手工安装设|,具体q程参见Sun|站或本学习W记?br /> HttpClient中用SSL非常单,参考下面两个例?
HttpClient httpclient = new HttpClient();
GetMethod httpget = new GetMethod("https://www.verisign.com/");
httpclient.executeMethod(httpget);
System.out.println(httpget.getStatusLine().toString());
Q如果通过需要授权的代理Q则如下Q?br /> HttpClient httpclient = new HttpClient();
httpclient.getHostConfiguration().setProxy("myproxyhost", 8080);
JAVA手机|[www.cnjm.net]
httpclient.getState().setProxyCredentials("my-proxy-realm", " myproxyhost",
new UsernamePasswordCredentials("my-proxy-username", "my-proxy-password"));
GetMethod httpget = new GetMethod("https://www.verisign.com/");
httpclient.executeMethod(httpget);
System.out.println(httpget.getStatusLine().toString());

JAVA手机|[www.cnjm.net]
在HttpClient中定制SSL的步骤如下:

? 供了一个实C org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory接口? socket factory。这?socket factory负责打一个到服务器的端口Q用标准的或第三方的SSL函数库,q进行象q接握手{初始化操作。通常情况下,q个初始化操作在端口被创建时 自动q行的?br />
JAVA手机|[www.cnjm.net]
实例化一个org.apache.commons.httpclient.protocol.Protocol对象。创个实例时Q需要一个合法的协议cd(如https)Q一个定制的socket factoryQ和一个默认的端中?如https?43端口).
Protocol myhttps = new Protocol("https", new MySSLSocketFactory(), 443);
然后Q这个实例可被设|ؓ协议的处理器?br /> HttpClient httpclient = new HttpClient();
httpclient.getHostConfiguration().setHost("www.whatever.com", 443, myhttps);
GetMethod httpget = new GetMethod("/");
httpclient.executeMethod(httpget);


通过调用Protocol.registerProtocolҎQ将此定制的实例Q注册ؓ某一特定协议的默认的处理器。由此,可以很方便地定制自己的协议类?如myhttps)?br /> Protocol.registerProtocol("myhttps",
new Protocol("https", new MySSLSocketFactory(), 9443));
...
HttpClient httpclient = new HttpClient();
GetMethod httpget = new GetMethod("myhttps://www.whatever.com/");
httpclient.executeMethod(httpget);
JAVA手机|[www.cnjm.net]
如果想用自己定制的处理器取代https默认的处理器Q只需要将其注册ؓ"https"卛_?br /> Protocol.registerProtocol("https",
new Protocol("https", new MySSLSocketFactory(), 443));
HttpClient httpclient = new HttpClient();
GetMethod httpget = new GetMethod("https://www.whatever.com/");
httpclient.executeMethod(httpget);

已知的限制和问题

持箋的SSLq接在Sun的低?.4JVM上不能工作,q是׃JVM的bug造成?br />
通过代理讉K服务器时Q非抢先认证Q?Non-preemptive authenticationQ会p|Q这是由于HttpClient的设计缺陷造成的,以后的版本中会修攏V?br />
JAVA手机|[www.cnjm.net]

遇到问题的处?br /> 很多问题Q特别是在jvm低于1.4Ӟ是由jsse的安装造成的?br /> 下面的代码,可作为最l的手Dc?br />
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;

import javax.net.ssl.SSLSocketFactory;

JAVA手机|[www.cnjm.net]
public class Test {

JAVA手机|[www.cnjm.net]
public static final String TARGET_HTTPS_SERVER = "www.verisign.com";
public static final int TARGET_HTTPS_PORT = 443;

public static void main(String[] args) throws Exception {

Socket socket = SSLSocketFactory.getDefault().
createSocket(TARGET_HTTPS_SERVER, TARGET_HTTPS_PORT);
try {
Writer out = new OutputStreamWriter(
socket.getOutputStream(), "ISO-8859-1");
out.write("GET / HTTP/1.1"r"n");
out.write("Host: " + TARGET_HTTPS_SERVER + ":" +
TARGET_HTTPS_PORT + ""r"n");
out.write("Agent: SSL-TEST"r"n");
JAVA手机|[www.cnjm.net]
out.write(""r"n");
out.flush();
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream(), "ISO-8859-1"));
String line = null;
while ((line = in.readLine()) != null) {
JAVA手机|[www.cnjm.net]
System.out.println(line);
JAVA手机|[www.cnjm.net]
}
} finally {
socket.close();
}
}
}



11、httpclient的多U程处理
JAVA手机|[www.cnjm.net]

使用多线E的主要目的Q是Z实现q行的下载。在httpclientq行的过E中Q每个http协议的方法,使用一个HttpConnection? 例。由于连接是一U有限的资源Q每个连接在某一时刻只能供一个线E和Ҏ使用Q所以需要确保在需要时正确地分配连接。HttpClient采用了一U类? jdbcq接池的Ҏ来管理连接,q个理工作?MultiThreadedHttpConnectionManager完成?br /> MultiThreadedHttpConnectionManager connectionManager =
JAVA手机|[www.cnjm.net]
new MultiThreadedHttpConnectionManager();
HttpClient client = new HttpClient(connectionManager);
? 是,client可以在多个线E中被用来执行多个方法。每ơ调用HttpClient.executeMethod() ҎQ都会去链接理器申请一个连接实例,甌成功q个链接实例被签?checkout)Q随之在链接使用完后必须归还理器。管理器支持两个? |:maxConnectionsPerHost 每个L的最大ƈ行链接数Q默认ؓ2
maxTotalConnections 客户端dƈ行链接最大数Q默认ؓ20

理器重新利用链接时Q采取早归还者先重用的方式(least recently used approachQ?br /> ׃是用HttpClient的程序而不是HttpClient本n来读取应{包的主体,所以HttpClient无法军_什么时间连接不再用了Q这也就要求在读完应{包的主体后必须手工昑ּ地调用releaseConnection()来释攄L链接?br /> MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient client = new HttpClient(connectionManager);
...
// 在某个线E中?br /> GetMethod get = new GetMethod("http://jakarta.apache.org/");
try {
client.executeMethod(get);
// print response to stdout
System.out.println(get.getResponseBodyAsStream());
JAVA手机|[www.cnjm.net]
} finally {
JAVA手机|[www.cnjm.net]
// be sure the connection is released back to the connection
// manager
JAVA手机|[www.cnjm.net]
get.releaseConnection();
}
Ҏ一个HttpClient.executeMethodL一个method.releaseConnection()与之匚w.

12、HTTPҎ


HttpClient支持的HTTPҎ?U,下面分述之?br />
1、Options

HTTPҎOptions用来向服务器发送请求,希望获得针对p求URL(request url)标志的资源在h/应答的通信q程可以使用的功能选项。通过q个ҎQ客L可以在采取具体行动之前,可Ҏ一资源军_采取什么动作和/或以? 一些必要条Ӟ或者了解服务器提供的功能。这个方法最典型的应用,是用来获取服务器支持哪些HTTPҎ?br /> HttpClient中有一个类叫OptionsMethodQ来支持q个HTTPҎQ利用这个类的getAllowedMethodsҎQ就可以很简单地实现上述的典型应用?br />

OptionsMethod options = new OptionsMethod("http://jakarta.apache.org");
// 执行Ҏq做相应的异常处?br /> ...
Enumeration allowedMethods = options.getAllowedMethods();
options.releaseConnection();
JAVA手机|[www.cnjm.net]

2、Get

HTTPҎGET用来取回hURIQrequest-URIQ标志的M信息Q以实体(entity)的Ş式)Q?get"q个单词本意是”获取 “的意思。如果请求URI指向的一个数据处理过E,那这个过E生成的数据Q在应答中以实体的Ş式被q回Q而不是将q个q程的代码的q回?br /> 如果 HTTP包中含有If-ModifiedSince, If-Unmodified-Since, If-Match, If-None-Match, ? If-Range{头字段Q则GET也就变成?#8221;条gGET“Q即只有满上述字段描述的条件的实体才被取回Q这样可以减一些非必需的网l传输,或者减 ؓ获取某一资源的多ơ请求(如第一ơ检查,W二ơ下载)。(一般的览器,都有一个时目录,用来~存一些网信息,当再ơ浏览某个页面的时候,只下? 那些修改q的内容Q以加快览速度Q就是这个道理。至于检查,则常用比GET更好的方法HEAD来实现。)如果HTTP包中含有Range头字D,那么? 求URI指定的实体中Q只有决定范围条件的那部分才被取回来。(用过多线E下载工L朋友Q可能比较容易理解这一点)
q个Ҏ的典型应用,? 来从web服务器下载文档。HttpClient定义了一个类叫GetMethod来支持这个方法,用GetMethodcM getResponseBody, getResponseBodyAsStream ? getResponseBodyAsString函数可以取到应{包包体中的文档Q如HTML面Q信息。这q三个函? 中,getResponseBodyAsStream通常是最好的ҎQ主要是因ؓ它可以避免在处理下蝲的文档之前缓存所有的下蝲的数据?br />
GetMethod get = new GetMethod("http://jakarta.apache.org");
// 执行ҎQƈ处理p|的请?
...
InputStream in = get.getResponseBodyAsStream();
// 利用输入来处理信息?br /> get.releaseConnection();
JAVA手机|[www.cnjm.net]

JAVA手机|[www.cnjm.net]
对GetMethod的最常见的不正确的用,是没有将全部的应{主体的数据d来。还有,必须注意要手工明地链接释放?br />
3、Head
JAVA手机|[www.cnjm.net]

HTTP的HeadҎQ与GetҎ完全一_唯一的差别是服务器不能在应答包中包含M(message-body)Q而且一定不能包含主体。? q个ҎQ可以得客h需资源下载回可׃得到一些关于它的基本信息。这个方法常用来查超铄可访问性以及资源最q有没有被修攏V?br /> HTTP的headҎ最典型的应用,是获取资源的基本信息。HttpClient定义了HeadMethodcL持这个方法,HeadMethodcM其它*MethodcMP?getResponseHeaders()取回头部信息Q而没有自qҎҎ?br />
HeadMethod head = new HeadMethod("http://jakarta.apache.org");
// 执行ҎQƈ处理p|的请?
...
// 取回应答包的头字D信?
Header[] headers = head.getResponseHeaders();

JAVA手机|[www.cnjm.net]
// 只取回最后修Ҏ期字D늚信息.
String lastModified = head.getResponseHeader("last-modified").getValue();



4、Post

Post在英文有“zN”的意思,HTTPҎPOST是要求服务器接受请求包中的实体Qƈ其作ؓhURI的下属资源。从本质上说Q这意味着服务 器要保存q个实体信息Q而且通常由服务器端的E序q行处理。PostҎ的设计意图,是要以一U统一的方式实C列功能:
对已有的资源做评?br />
信息发布到BBS、新ȝ、邮件列表,或类似的文章l中

一块数据,提交l数据处理进E?br />
通过q加操作Q来扩展一个数据库
q些都操作期待着在服务器端生一定的“副作?#8221;Q如修改了数据库{?br /> HttpClient定义PostMethodcM支持该HTTPҎQ在httpclient中,使用postҎ有两个基本的步骤Qؓh包准备数 据,然后d服务器来的应{包的信息。通过调用 setRequestBody()函数Q来求包提供数据Q它可以接收三类参数Q输入流、名值对数组或字W串。至于读取应{包需要调? getResponseBody* 那一pd的方法,与GETҎ处理应答包的Ҏ相同?br /> 常见问题是,没有全部应{读取(无论它对E序是否有用Q,或没有释N接资源?

]]>
eclipse+CVS 的基本用方?/title><link>http://www.tkk7.com/gen-sky/archive/2009/06/26/284327.html</link><dc:creator>星期?/dc:creator><author>星期?/author><pubDate>Fri, 26 Jun 2009 10:02:00 GMT</pubDate><guid>http://www.tkk7.com/gen-sky/archive/2009/06/26/284327.html</guid><description><![CDATA[<div>eclipse+cvs的基本用方?/div> <div>转自Qhttp://hi.baidu.com/ayifa/blog/item/e67bc2fc047567fcfd037f42.html</div> <table style="table-layout: fixed;"> <tbody> <tr> <td> <div class="qiwoquu" id="blog_text">很多时候我们在做项目开发时Q会用到cvsQ现在我l大家介l一下关于eclipse下怎么使用cvs理功能Qeclipse本n是自带cvs的,我们只要单设|一下让它连接到cvs服务器上?br />     看下?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs1.jpg" border="0" height="338" width="586" alt="" /><br /> 点击cvs的图标出现此画面后,在空白处点击右键可以,新徏一个资源库位置Q如下图<br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs2.jpg" border="0" height="573" width="800" alt="" /><br /> 输入完信息后Q点d成,徏立好了,跟cvs服务器的q接Q下面我们打开cvs服务器上的目?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs3.jpg" border="0" height="575" width="800" alt="" /><br /> 对于cvs服务器上的目录,我们可以出,一U是Zؓ目Q就会将目录出在eclipse中自动生成一个项?<br /> 也可以将某个目录出到M一个项目中卟뀔检出到〕这个功能,需要注意的是只有检出的文gQ在修改后才可以提交。下面看Ҏ件的操作Q?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs4.jpg" border="0" height="574" width="800" alt="" /><br /> 对于文g来说Q我们最常用的就是比较cvs中各个版本文件的区别Q方便我们查找更新有没有问题Q点MQ何一个文件点d键就可看C面的囄Q然后我们用在资源历史记录中显C,看到下图Q?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs5.jpg" border="0" height="573" width="800" alt="" /><br /> 我们按住ctrl键点击鼠标选择两个版本的文Ӟ然后点击鼠标右键Q点L较就可以比较q个文gq两个版本之间的差异了?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs6.jpg" border="0" height="572" width="800" alt="" /><br /> 下面我们看看怎么h更新cvs服务器上的文Ӟ前面已经讲了Q只有从cvs服务器中出的文g才可以更新和提交Q看下图<br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs7.jpg" border="0" height="600" width="800" alt="" /><br /> ? 目中选中M一个检出的文gQ点击鼠标右键,选择组Q就可以看到提交和更新等很多功能。你只要更改好后Q点L交就可提交到cvs服务器中Q点L? 是从cvs服务器中取文件更新本地文?q里需要注意的是,当我们徏立的目是源代码文g和编译好的类文g是不同目录的时候,是不能传cLӞ传的话会? 致cvs服务器上的文件出问题Q只能将cL件单独复制到专门用来上传的目录上传,因ؓ目在编译的时候会原文g下的cvs目录也编译到cL件下Q所以会 Dq个问题?br /> 下面Z说一个eclipse本地文g的一个历史记录的功能Q看C图中的比较和替换为,是eclipse一个本地的历史记录功能Q帮助你可以恢复以前或者跟以前的文件比较的功能。看下图<img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs8.jpg" border="0" height="561" width="800" alt="" /><br /> 怿大家一看就会明白这个功能?br /> 关于eclipseQcvs的基本功能用其实很单,大家试一下就知道Q我在项目中用得最多的都是它的比较功能Q对于文件上传我q是用cvs的客LE序Q因为源代码目录和类文g目录不同Q所以这h较安全,希望<br /> q些能对各位使用eclipse中的cvs有所帮助。如有问题欢q指出?br />                                                 Q-大肚?nbsp;   <br />                                                               2004.10.9<br /> <div><a ><font color="#000080">eclipse +cvs 的基本用方??</font></a> </div>          在第一部分中讲qC一个问题,关于 目在编译的时候会原文g下的cvs目录也编译到cL件下Q所以会D上传cL件出问题。经q这两天的研I发现这个问题是可以解决的。方法如下:<br /> 点击H口下的首选项看到下图Q?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs11.jpg" border="0" height="600" width="800" alt="" /><br /> 按图上所说的Q已qoCVS目录Q还有就是去掉完全构建时清空文g夹,q样的话在编译文件是׃会将cL件所在的文g夹中的cvs目录删除。做好这两部可以解决问题了?br /> <br /> <div><a ><font color="#000080">eclipse +cvs 的基本用方??</font></a> </div>       我们在多行一个项目进行开发时Q通常会碰C个问题就是两个h从cvs服务器上同时下蝲了同一个文Ӟq行修改Q当一个h先提交而另一个h后提交时? 常就前一个h修改的覆盖掉了,我们看看eclipse中的cvs是怎样处理q个问题的,首先我们从cvs中检Z个目录ؓ目为test然后打开一个文 件test1.txt文g在文件中加了adc如下图:<br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs12.jpg" border="0" height="306" width="800" alt="" /><br /> <br /> 然后我们用cvs的客LE序下蝲同一个test目录Q然后在test1.txt文g中增加bbbQ这L当于两个人同时修改了同一个文Ӟ我们先提交一个。如下图Q?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs13.jpg" border="0" height="327" width="800" alt="" /><br /> <br /> 然后在eclipse中提交同L文gtest1.txtQ如下图<br /> <br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs14.jpg" border="0" height="574" width="800" alt="" /><br /> 会出C个错误:<br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs15.jpg" border="0" height="575" width="800" alt="" /><br /> q个错误表明了你的提交文件失败了Q我再用另外一个功能,是与资源库同步功能Q在前一张图中可以看刎ͼ点击资源库同步后看到下图Q图中有相应的说?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs16.jpg" border="0" height="600" width="800" alt="" /><br /> q样你就可以知道W一个更C改了哪里Q更重要是你也可以覆盖提交,或者覆盖更新本地的文gQ看下图Q?br /> <img src="http://blog.csdn.net/images/blog_csdn_net/iwo99/50561/o_cvs17.jpg" border="0" height="600" width="800" alt="" /></div> </td> </tr> </tbody> </table> <img src ="http://www.tkk7.com/gen-sky/aggbug/284327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/gen-sky/" target="_blank">星期?/a> 2009-06-26 18:02 <a href="http://www.tkk7.com/gen-sky/archive/2009/06/26/284327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> [转]ANT 打包~译部v工具 学习W记http://www.tkk7.com/gen-sky/archive/2009/06/24/283958.html星期?/dc:creator>星期?/author>Wed, 24 Jun 2009 08:08:00 GMThttp://www.tkk7.com/gen-sky/archive/2009/06/24/283958.html1.安装apache-ant-1.5.4或其他版?/p>

2.配置环境变量:

    ANT_HOME=ant安装目录  

    PATH=%PATH%;%ANT_HOME%\bin                 
    讄完成后,输入 ant -v
     昄如下Q?br />               

1Apache Ant version 1.7.1 compiled on June 27 2008
2Buildfile: build.xml does not exist!
3Build failed

      说明成功?nbsp;                                                           

3.build.xml

<!--Ant(another neat tool---另一个整z的工具)-->

<?xml version="1.0"?>
<project default="dist" name="Project A">
    
<description>
        一D|qC息,没有实际作用?br />     
</description>
    
<!--property 元素相当于变量,存放一定的|一旦给定以后不能改变,只能通过控制台命令行l初始倹{?br />                 一般用 value l其赋|q里?nbsp;location 代替 value 是因?nbsp;location 属性专门设
                计用于以q_无关的方式包含文件系l\径,也就是当前\径?/span>-->
    
<property name="srcDir" location="."/>
    
<property name="buildDir" location="classes"/>
    
<property name="distDir" location="dist"/>
    
    
<!--一个target 元素是一个Q务,一个步骤,如果命o行没有指定开始Q务,则由 project 元素?nbsp;default 属性决定要执行的Q?/span>-->
    
<target name="init" description="在元素中指定描述信息Q?>
        
<echo message="q里的信息将被输出到控制収ͼ">
        
<!--tstamp 元素一般不定义属性和内容Q不产生M输出Q相反,它根据当前系l时间和日期讄 Ant 以下属性:
        属?nbsp;               说明                                    例子
        DSTAMP            讄为当前日期,默认格式为yyyymmdd        20031217
        TSTAMP            讄为当前时_默认格式为hhmm            1603
        TODAY            讄为当前日期,带完整的月䆾            2003 q?2 ?7 ?/span>-->
        
<tstamp/>
        
<!--mkdir 元素用来创徏目录 dir 属性用来指定目录\?/span>-->
        
<!--delete 元素用来删除目录 ${buildDir} 引用 property 元素指定?nbsp;name ?nbsp;buildDir 的属性变?/span>-->
        
<mkdir dir="${buildDir}"/>
        
<mkdir dir="${distDir}"/>
        
<!--文g操作Q?br />             <copy file="src/Test.java" tofile="src/TestCopy.java"/> 把文?nbsp;Test.java 拯一?nbsp;TestCopy.java 
            <move file="src/Test.java" tofile="src/TestCopy.java"/> 把文?nbsp;Test.java 重新命名?nbsp;TestCopy.java
            <copy file="src/Test.java" todir="archive"/> 把文?nbsp;Test.java ?nbsp;src 目录复制一份到 archive 目录?br />             <move file="src/Test.java" todir="archive"/> 把文?nbsp;Test.java ?nbsp;src 目录下移动到 archive 目录?br />             <replace file="input.txt" token="old" value="new"/>replace dQ它执行文g中的查找和替换操作?br />             token 属性指定要查找的字W串Q?br />             value 属性指定一个新的字W串Q?br />             查找到的标记字符串的所有实例都被替换ؓq个新的字符?
            替换操作在文g本n之内的适当位置q行。ؓ了提供更详细的输出,可把 summary 属性设|ؓ
            true。这导致该d输出扑ֈ和替换的标记字符串实例的数目?br />             <copy todir="archive">---使用模式匚w复制多个文g
                <fileset dir="src">--fileset 代替 file 属?br />                     <include name="*.java"/>--包含 src 目录下所有的 *.java 文g
                    <exclude name="*.class"/>--不包?nbsp;src 目录下所有的 *.class 文g
                </fileset>
            </copy>
-->
    
</target>

    
<!--target 元素?nbsp;depends 属性用来设|多?nbsp;target 元素之间的依赖关p,如果要执行某个Q务,必须先执?nbsp;depends 属性指定的所?br />         它所依赖?nbsp;target 元素Q只有它所依赖的所?nbsp;target 元素都执行完了才能执行它自己-->
    
<target name="com" depends="init">
        
<!--javac 元素?nbsp;srcdir 指定目录下所?nbsp;*.java 文g~译?nbsp;*.class 文g?nbsp;destdir 指定的目录下Q?br />             如果不指?nbsp;destdir 属性,那么默认~译到同一目录下。其他属性:
             classpathQ等价于javac ?classpath 选项?br />              debug="true"Q指C编译器应该带调试信息编译源文g?br />              fork="true"Q当你希望指定编译器的某些内存选项Q或者需要用一U不同别的~译器的时候。该属性设|ؓ“true”
             executable="d:sdk141injavac"Q指定一个不同的 javac 可执行文件?br />              memoryMaximumSize="128m"Q向上边指定?nbsp;javac 传递一个最大内存设|?/span>-->
        
<javac srcdir="${srcDir}" destdir="${buildDir}"/>
    
</target>

    
<target name="dist" depends="com">
        
<!--jar 元素Q在~译 Java 源文件之后,l果cL仉常被打包到一?nbsp;JAR 文g中,q个文gcM zip 归?br />             件。每?nbsp;JAR 文g都包含一个清单文Ӟ它可以指定该 JAR 文g的属性?br />             q可以把目录下的所有内Ҏ包ؓ WAR 文g
            destfile:打包后的文g全名
            basedir:要打包的文g路径
-->
        
<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
            
<!--manifest 属性允许指定一个用作该 JAR 文g的清单的文g。清单文件的内容q可以?nbsp;manifest
                d在生成文件中指定。这个Q务能够像文gpȝ写入一个清单文Ӟ或者能够实际嵌套在 jar ?br />                 内,以便一ơ性地创徏清单文g?nbsp;JAR 文g?/span>-->
            
<manifest>
                
<attribute name="Built-By" value="${user.name}"/>
                
<attribute name="Main-Class" value="package.Main"/>
            
</manifest>
        
</jar>
        
<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
    
</target>

    
<target name="zip" depends="dist">
        
<!--zip 元素用来创徏 zip 包,?nbsp;jar 元素怼-->
        
<zip destfile="output.zip" basedir="output"/>
        
<!--相同的语法也可用于创?nbsp;tar 文g?nbsp;q可以?nbsp;GZip ?nbsp;BZip d来压~文件?/span>-->
        
<tar destfile="output.tar" basedir="output"/>
        
<gzip src="output.tar" zipfile="output.tar.gz"/>
        
<!--解压~和提取文g同样也很?-->
        
<unzip src="output.tar.gz" dest="extractDir"/>
        
<!--q可以包?nbsp;overwrite 属性来控制覆盖行ؓ。默认设|是覆盖与正在被提取的归文件中的条目相
            匚w的所有现有文件。相关的d名称?nbsp;untar、unjar、gunzip ?nbsp;bunzip2?/span>-->
    
</target>

    
<!--~写一?nbsp;clean目标来从目标目录U除生成的Q何类文g是个很好的习惯。如果想要确
        保所有源文g都已~译Q就可以使用q个d。这U行为刻M Ant 的许多Q务的特点Q?br />         如果某个d能够定所h的操作不需要执行,那么该操作就会被跌?/span>-->
    
<target name="clean">
        
<delete dir="${buildDir}"/>
        
<delete dir="${distDir}"/>
    
</target>
</project>



本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/lip009/archive/2006/09/15/1226931.aspx



]]>
MyEclipse 应有技?/title><link>http://www.tkk7.com/gen-sky/archive/2008/12/08/244969.html</link><dc:creator>星期?/dc:creator><author>星期?/author><pubDate>Mon, 08 Dec 2008 03:11:00 GMT</pubDate><guid>http://www.tkk7.com/gen-sky/archive/2008/12/08/244969.html</guid><wfw:comment>http://www.tkk7.com/gen-sky/comments/244969.html</wfw:comment><comments>http://www.tkk7.com/gen-sky/archive/2008/12/08/244969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/gen-sky/comments/commentRss/244969.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/gen-sky/services/trackbacks/244969.html</trackback:ping><description><![CDATA[<span style="color: red;">1.</span><br /> <br /> 有些时候当我们用MyEclipse 启动 Tomcat ?会直接进?Debug 界面 .自动q行调试.<br /> 解决Ҏ: <br />       打开右侧?breakpoint 界面,所选择的调?全部去除.重新启动Tomcatp?<br /> <span style="color: red;">2.</span><br /> ?Eclipse  出现面q问题Ӟ<br /> 解决ҎQ?br />        点击工程 properties 选项Q在 Resource 选项中,扑ֈ Text file encoding 选择 OtherQ然后在下拉框中扑ֈ自己的编码格式?br /> <img src ="http://www.tkk7.com/gen-sky/aggbug/244969.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/gen-sky/" target="_blank">星期?/a> 2008-12-08 11:11 <a href="http://www.tkk7.com/gen-sky/archive/2008/12/08/244969.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>清空IE~存http://www.tkk7.com/gen-sky/archive/2008/12/02/243884.html星期?/dc:creator>星期?/author>Tue, 02 Dec 2008 03:45:00 GMThttp://www.tkk7.com/gen-sky/archive/2008/12/02/243884.htmlhttp://www.tkk7.com/gen-sky/comments/243884.htmlhttp://www.tkk7.com/gen-sky/archive/2008/12/02/243884.html#Feedback0http://www.tkk7.com/gen-sky/comments/commentRss/243884.htmlhttp://www.tkk7.com/gen-sky/services/trackbacks/243884.html

 查以下ie的设|:  
        internet(选项Q?->常规-->讄-->  
        是否设ؓQ每ơ访问此|?nbsp;
 awaysrain(l对零度)
?  head   区内加入去除~存的代?  
  用客户端缓? 
  HTML  
          <META   HTTP-EQUIV="pragma"   CONTENT="no-cache">  
          <META   HTTP-EQUIV="Cache-Control"   CONTENT="no-cache,   must-revalidate">  
          <META   HTTP-EQUIV="expires"   CONTENT="Mon,   23   Jan   1978   20:52:30   GMT">  
  ASP  
  <%  
          Response.Expires   =   -1  
          Response.ExpiresAbsolute   =   Now()   -   1  
          Response.cachecontrol   =   "no-cache"  
  %>  
  PHP  
          header("Expires:   Mon,   26   Jul   1997   05:00:00   GMT");  
          header("Cache-Control:   no-cache,   must-revalidate");  
          header("Pragma:   no-cache");  
  JSP  
          response.setHeader("Pragma","No-Cache");  
          response.setHeader("Cache-Control","No-Cache");  
          response.setDateHeader("Expires",   0);






]]>
վ֩ģ壺 ߾ѹۿ| ؼAƬëƬѿ| 99þѿƷ| Ʒһ߹ۿ| ҹӰԺþþƷѿһ| ɫһ| avһ㽶 | hƵѹۿ| ŮƵվa| avƬ߹ۿ| ƷƵ| ˳߹ۿa| ޾Ʒþþþþ| 97Ʒѹۿ| ɫWWWվ| Ʒһ24Ƶ| AVþþƷ| 18Ůȴ| ޾Ʒһ| ѹҹ˽Ӱ | þ޹ӰԺվ| ˾þվ| ۺһ| ĻӰԺַ| aëƬƵۿ| A޾Ʒ| **һëƬ| ޾Ʒٸ30P| ŷպþAV| þþþùƷѲ| һ| ҹӰѹۿ| wwwѸƵ| ޾Ʒþþþþþ| ʵƵѹۿ| ׾ƷƵ| avһ| պƷ| òƵ| wwwѻɫ| ޹|