快乐着飞舞着

---Nothing to do is doing nothing
随笔 - 93, 文章 - 5, 评论 - 56, 引用 - 0
数据加载中……

2005 10/9 时间花费

09:35 起床
09:35-11:20 洗衣服
11:20-12:00 吃饭
12:00-15:00 上网
15:00-17:00 洗澡吃饭
17:00-19:00 上网
19:00-21:00 看了一点书
21:00-23:00
23:00-23:30 睡觉



玩了一天!

posted @ 2005-10-10 11:21 快乐着飞舞着 阅读(111) | 评论 (0)编辑 收藏

18种回答让你哭笑不得[zz]

18种回答让你哭笑不得
发信站: 南京大学小百合站 (Sun Oct  9 12:35:06 2005)

1、恭喜你呀!你老婆刚刚在医院为你生了个大胖小子,你出去都两年多了,也不回家看看
。 

2、有一天,我和你去探险,遇到了一个食人妖,它先用鼻子闻了闻你,再用鼻子闻闻我,
然后选择吃我,我觉得不公平,就问它为什么,它说它是回族的! 

3、一人喝得烂醉坐车回家,司机是位女士,这人上了车就脱衣服,女司机质问他的行为,
他却大惊道:“你在我家里干什么,我可是有老婆的!” 

4、一位男子悲伤的对酒友说:“没想到我太太对我不忠,她告诉我昨晚她和她的妹妹在一
起,可实际上,昨天晚上我是和她妹妹在一起的!” 

5、女儿:“有人给我介绍一对象,他爸爸是局长,叔叔在外贸部工作,舅舅在香港当经理
!”母亲:“条件真不错啊,那你打算跟哪个结婚呢?” 

6、一架飞机飞过一个精神病院。突然,驾驶员哈哈大笑起来,空中小姐好奇地问“你为什
么笑得那么开心呀?”驾驶员:“要是他们知道我逃出来的话,一定会被气疯的!” 


7、老板:「今天你为什麽迟到?」 

职员:「因为你昨天宣布只许在家里看报。」 

8、母女二人参观女儿男朋友的画展。 

母亲发现其中一幅裸体人像酷似自己的女儿,便问道:“你没有光着身子给他画吧?” 


“啊,没有,”女儿答道,“他是凭记忆画的。” 

9、某县一农民,天天喂*吃泔水,结果被“动物保护协会”罚了一万元---因为孽待动物。
 

后来,农夫改喂*吃天山雪莲,结果又被“动物保护协会”罚了一万元---因为浪费食物。
有一天,领导又来视察,问农民喂什么给*吃。农民说:“我也不知道该喂什么才好了,现
在我每天给它一百块钱,让它自己出去吃。”  

10、鲨鱼看着一个滑浪风帆运动员说:「招待真周到。既有早餐,又有盘子和餐巾。」 


11、非洲原始森林里,探险家跟当地的导游同行。 

旅行家:“这儿安全吗,会不会有食人族?” 

导游:“绝对不可能有!因为在上周最后一个食人族已经被我们吃掉了!” 

12、“汤姆,你挖坑做什么?” 

“我家的金鱼死了,我给它做个坟墓。” 

“这个坑是不是太大啦?” 

“没办法,金鱼在你家猫的肚子里。” 

小蛤蟆看见了青蛙,便问妈妈:“那叔叔长得和咱们一样,可为啥是绿皮肤呀?” 

蛤蟆妈妈:“嘘!小声点,那是因为他老婆和别人过情人节去了。” 

13、公园的椅子上坐着一位老妇人,一个小孩子走过来:“婆婆,您的牙还行吗?” 


“已经不行了,都掉了。” 

于是小孩子拿出一包胡桃说:“请您替我拿一下,我过去玩一会球……” 

14、老师:“如何分辨章鱼的手和脚?” 

学生:“放个屁给它闻,会捂住鼻子的就是手,其他的就是脚。 

15、一个男孩写信给他的女朋友:亲爱的,为了你,我会奋不顾身横渡大洋,毫不犹豫跳
进万丈深渊,我会克服任何困难!星期天我准时找你,如果天不下雨的话! 

16、三个犯人坐在一个斜眼的法官面前。法官威严地问道:“你叫什么名字?!” 

“比尔”,第二个犯人老老实实地答道。 

“我没有问你!”法官咆哮着, 

“可是我什么也没说呀”,第三个犯人委屈地答道。 

17、神父:我的孩子,为你深重的罪行忏悔吧。否则,天堂的大门对你将是关闭的。 


神偷:别担心,天底下还没有我打不开的门。 

18、一辆耀武扬威的大卡车上背着一块大木牌,上书:“本车与他车相撞17次,其中15次
大胜,1次平局,只有1次失利。故诸君在撞我之前要三思而后行!”

posted @ 2005-10-09 14:08 快乐着飞舞着 阅读(149) | 评论 (0)编辑 收藏

[转载] CPU LOGO超清晰大图放送

http://www.bbzc.com/upload/2005/07/15/41822846.snap.jpg

AMD Athlon 32

http://www.bbzc.com/upload/2005/07/15/65491387.snap.jpg

AMD Athlon 64 

http://www.bbzc.com/upload/2005/07/15/20248659.snap.jpg

AMD Sempron

 http://www.bbzc.com/upload/2005/07/15/42969831.snap.jpg

AMD Athlon XP

 

http://www.bbzc.com/upload/2005/07/15/10074969.snap.jpg

AMD Athlon FX 64

 http://www.bbzc.com/upload/2005/07/15/10019211.snap.jpg

Intel Pentium IV

 http://www.bbzc.com/upload/2005/07/15/27286181.snap.jpg

Intel Celeron

 http://www.bbzc.com/upload/2005/07/15/93864336.snap.jpg

Intel Xeon

 http://www.bbzc.com/upload/2005/07/15/83337986.snap.jpg

VIA We connect

 http://www.bbzc.com/upload/2005/07/15/11179108.snap.jpg

VIA C3

 http://www.bbzc.com/upload/2005/07/15/87101808.snap.jpg

VIA C3

 http://www.bbzc.com/upload/2005/07/15/33227005.snap.jpg

Matron

 http://www.bbzc.com/upload/2005/07/15/17959905.snap.jpg

3dfx

http://www.bbzc.com/upload/2005/07/15/48868278.snap.jpg

Nvidia

 http://www.bbzc.com/upload/2005/07/15/26925811.snap.jpg

ATI

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/23634602.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(364) | 评论 (0)编辑 收藏

(转载)如何长胖?我的辛酸路……

如何长胖?

这个问题已经困扰我很多年了

记得妈妈曾经对我说过 俺小时候也是胖乎乎的 贼可爱
可是长大后 就一年不如一年 日见消瘦 衣带渐宽

曾经被妈妈带到医院作检查 医生竟然说:这孩子身体很好 营养过剩 瘦一点 精神!……无语了
曾经被姑婆偏到灵媒处咨询 巫婆竟然说:这孩子眉目清朗 额露青筋 日后非同小可!……吓呆了

慢慢的 我也习惯了 

幼儿园阿姨打饭总会少给我一勺
大班的姐姐总会站到我前面,然后转过头对我说:“我会保护你的”
小学运动会被老师好心的安排到最后面
初中要帮兄弟出头打架 他拍拍我肩膀 说:“心意领了,到时候你放风”
高中语文老师讲夏衍的包身工 提到芦柴棒的时候 有意无意的瞟了我一眼
大学安慰一个痛哭的MM 说:“哭出来吧 会好受些 我可以借给你一个宽厚的肩膀” 结果她扫我一眼 马上破涕为笑

腰带要扣到最后一个扣 鞋要买小码的 衬衫要买横格的


当然 瘦也有瘦的好处

首先 为正处于社会主义初级阶段的中国 节省二十余年的香皂 沐浴露 和布料
其次 为中国减少人均占有土地面积 每当进入学院电梯的时候 总会想要是大家都像我 电梯人数限制可以从13提高到25
并且 为广大挑食青少年提供反面教材 多少次陌生的阿姨一边指着我 一边教育孩子:“要多吃点 不然瘦的象那个哥哥 赶明儿隔壁的狗剩又欺负你……” 然后那傻小子看我一眼 居然真的大吃一口 狠狠的咽下去 握紧拳头 再重重的点一下头
最后 为打麻将的兄弟提供暗语 缺幺鸡都盯着我 多好的一条啊 插进牌里就能胡

为了长胖也曾经煞费苦心

听说晚上吃面可以增重 于是从中学开始一天四顿 最后的加餐雷打不动是面条 老爸费尽心思变花样 各种口味面条都做过了 可是不争气的儿子依然保持埃塞尔比亚难民形象 一点都不能显示陕南大部分地区已经脱贫致富奔小康

听说早上吃牛奶泡面包可以长胖 于是定奶买面包 结果还没坚持到两天 所有食物就被室友抢占一光 还美其名曰:“反正你吃也是浪费国家粮食” 然后一边教育我:“你知道中国还有多少人生活在贫困线以下?多少人没有吃的饿死?” 一边大口的咬我的面包喝我的牛奶  我的心在滴血

听说多运动可以长肌肉 我每天晚上都去129操场跑圈 那时没有遇到靓妹 到是遇到一个胖妞 她热情地告诉我:“坚持跑步可以减肥” 听完之后立即狂奔回宿舍 抬头看着月光先是潸然泪下 然后发出一阵阵嚎叫……(背景音乐:恶狼传说) 

本想顺其自然吧

上一天 心仪的mm对我讲:“听说巴黎那边很乱的……”
我顺口接过来 :“别怕,到时候有我在”
结果她转过头看我一眼:“就凭你的身板?”
我顿时岔了气 丹田中一股寒流侵入奇经八脉 猛然觉得环跳穴 气海穴奇痛(武学障?)
忽然 她媚然一笑 :“我们带个风筝,到时候一起去蓝色海岸放风筝……”
顿时我小心肝大动 本来乱窜的内力泳到全身诸穴 水乳交融 说不出的舒服(任督二脉通了?)
想:苍天厚待我 我的痴情终于让她感动了 刚想按照电视剧所教:揽过她的小蛮腰 深情对视 然后狂吻

没想到 她接口到:“因为有你在 放风筝的时候可以不要线……”
  
  
天 骤然间黑了 眼前为什么有这么多小星星???
 (浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22828496.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(6174) | 评论 (20)编辑 收藏

应用HttpClient来对付各种顽固的WEB服务器(4) [转]

6. 通过HTTP上传文件

httpclient使用了单独的一个HttpMethod子类来处理文件的上传,这个类就是MultipartPostMethod,该类已经封装了文件上传的细节,我们要做的仅仅是告诉它我们要上传文件的全路径即可,下面的代码片段演示如何使用这个类。

MultipartPostMethod filePost = new MultipartPostMethod(targetURL);

filePost.addParameter("fileName", targetFilePath);

HttpClient client = new HttpClient();

//由于要上传的文件可能比较大,因此在此设置最大的连接超时时间

client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

int status = client.executeMethod(filePost);

上面代码中,targetFilePath即为要上传的文件所在的路径。

7. 访问启用认证的页面

我们经常会碰到这样的页面,当访问它的时候会弹出一个浏览器的对话框要求输入用户名和密码后方可,这种用户认证的方式不同于我们在前面介绍的基于表单的用户身份验证。这是HTTP的认证策略,httpclient支持三种认证方式包括:基本、摘要以及NTLM认证。其中基本认证最简单、通用但也最不安全;摘要认证是在HTTP 1.1中加入的认证方式,而NTLM则是微软公司定义的而不是通用的规范,最新版本的NTLM是比摘要认证还要安全的一种方式。

下面例子是从httpclient的CVS服务器中下载的,它简单演示如何访问一个认证保护的页面:

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.UsernamePasswordCredentials;

import org.apache.commons.httpclient.methods.GetMethod;

 

public class BasicAuthenticationExample {

    public BasicAuthenticationExample() {

    }

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

        HttpClient client = new HttpClient();

        client.getState().setCredentials(

            "www.verisign.com",

            "realm",

            new UsernamePasswordCredentials("username", "password")

        );

        GetMethod get = new GetMethod("https://www.verisign.com/products/index.html");

        get.setDoAuthentication( true );

        int status = client.executeMethod( get );

        System.out.println(status+"\n"+ get.getResponseBodyAsString());

        get.releaseConnection();

    }

}

8. 多线程模式下使用httpclient

多线程同时访问httpclient,例如同时从一个站点上下载多个文件。对于同一个HttpConnection同一个时间只能有一个线程访问,为了保证多线程工作环境下不产生冲突,httpclient使用了一个多线程连接管理器的类:MultiThreadedHttpConnectionManager,要使用这个类很简单,只需要在构造HttpClient实例的时候传入即可,代码如下:

MultiThreadedHttpConnectionManager connectionManager =

   new MultiThreadedHttpConnectionManager();

HttpClient client = new HttpClient(connectionManager);

以后尽管访问client实例即可。

参考资料:

httpclient首页:    http://jakarta.apache.org/commons/httpclient/
关于NTLM是如何工作:  http://davenport.sourceforge.net/ntlm.html


(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22216776.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(1337) | 评论 (0)编辑 收藏

应用HttpClient来对付各种顽固的WEB服务器(3) [转]

4. 模拟输入用户名和口令进行登录

本小节应该说是HTTP客户端编程中最常碰见的问题,很多网站的内容都只是对注册用户可见的,这种情况下就必须要求使用正确的用户名和口令登录成功后,方可浏览到想要的页面。因为HTTP协议是无状态的,也就是连接的有效期只限于当前请求,请求内容结束后连接就关闭了。在这种情况下为了保存用户的登录信息必须使用到Cookie机制。以JSP/Servlet为例,当浏览器请求一个JSP或者是Servlet的页面时,应用服务器会返回一个参数,名为jsessionid(因不同应用服务器而异),值是一个较长的唯一字符串的Cookie,这个字符串值也就是当前访问该站点的会话标识。浏览器在每访问该站点的其他页面时候都要带上jsessionid这样的Cookie信息,应用服务器根据读取这个会话标识来获取对应的会话信息。

对于需要用户登录的网站,一般在用户登录成功后会将用户资料保存在服务器的会话中,这样当访问到其他的页面时候,应用服务器根据浏览器送上的Cookie中读取当前请求对应的会话标识以获得对应的会话信息,然后就可以判断用户资料是否存在于会话信息中,如果存在则允许访问页面,否则跳转到登录页面中要求用户输入帐号和口令进行登录。这就是一般使用JSP开发网站在处理用户登录的比较通用的方法。

这样一来,对于HTTP的客户端来讲,如果要访问一个受保护的页面时就必须模拟浏览器所做的工作,首先就是请求登录页面,然后读取Cookie值;再次请求登录页面并加入登录页所需的每个参数;最后就是请求最终所需的页面。当然在除第一次请求外其他的请求都需要附带上Cookie信息以便服务器能判断当前请求是否已经通过验证。说了这么多,可是如果你使用httpclient的话,你甚至连一行代码都无需增加,你只需要先传递登录信息执行登录过程,然后直接访问想要的页面,跟访问一个普通的页面没有任何区别,因为类HttpClient已经帮你做了所有该做的事情了,太棒了!下面的例子实现了这样一个访问的过程。


/*

 * Created on 2003-12-7 by Liudong

 */

package http.demo;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.cookie.*;

import org.apache.commons.httpclient.methods.*;

 

/**

 * 用来演示登录表单的示例

 * @author Liudong

 */

public class FormLoginDemo {

 

    static final String LOGON_SITE = "localhost";

    static final int    LOGON_PORT = 8080;

   

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

        HttpClient client = new HttpClient();

        client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);

      

       //模拟登录页面login.jsp->main.jsp

        PostMethod post = new PostMethod("/main.jsp");

        NameValuePair name = new NameValuePair("name", "ld");    

        NameValuePair pass = new NameValuePair("password", "ld");    

        post.setRequestBody(new NameValuePair[]{name,pass});

       int status = client.executeMethod(post);

        System.out.println(post.getResponseBodyAsString());

        post.releaseConnection(); 

      

       //查看cookie信息

        CookieSpec cookiespec = CookiePolicy.getDefaultSpec();

        Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());

       if (cookies.length == 0) {

           System.out.println("None");   

       } else {

           for (int i = 0; i < cookies.length; i++) {

               System.out.println(cookies[i].toString());   

           }

       }

       //访问所需的页面main2.jsp

        GetMethod get = new GetMethod("/main2.jsp");

        client.executeMethod(get);

        System.out.println(get.getResponseBodyAsString());

        get.releaseConnection();

    }

}

5. 提交XML格式参数

提交XML格式的参数很简单,仅仅是一个提交时候的ContentType问题,下面的例子演示从文件文件中读取XML信息并提交给服务器的过程,该过程可以用来测试Web服务。

import java.io.File;

import java.io.FileInputStream;

 

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.methods.EntityEnclosingMethod;

import org.apache.commons.httpclient.methods.PostMethod;

 

/**

 * 用来演示提交XML格式数据的例子

 */

public class PostXMLClient {

 

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

        File input = new File(“test.xml”);

        PostMethod post = new PostMethod(“http://localhost:8080/httpclient/xml.jsp”);

        // 设置请求的内容直接从文件中读取

        post.setRequestBody(new FileInputStream(input));

       

        if (input.length() < Integer.MAX_VALUE)

            post.setRequestContentLength(input.length());

        else            post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);

       

        // 指定请求内容的类型

        post.setRequestHeader("Content-type", "text/xml; charset=GBK");

       

        HttpClient httpclient = new HttpClient();

        int result = httpclient.executeMethod(post);

        System.out.println("Response status code: " + result);

        System.out.println("Response body: ");

        System.out.println(post.getResponseBodyAsString());

        post.releaseConnection();

    }

}

 

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22216733.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(1014) | 评论 (0)编辑 收藏

应用HttpClient来对付各种顽固的WEB服务器(2) [转]

2. 以GET或者POST方式向网页提交参数

其实前面一个最简单的示例中我们已经介绍了如何使用GET或者POST方式来请求一个页面,本小节与之不同的是多了提交时设定页面所需的参数,我们知道如果是GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开,例如:http://java.sun.com?name=liudong&mobile=123456,但是当使用POST方法时就会稍微有一点点麻烦。本小节的例子演示向如何查询手机号码所在的城市,代码如下:

 

/*

 * Created on 2003-12-7 by Liudong

 */

package http.demo;

 

import java.io.IOException;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

/**

 * 提交参数演示

 * 该程序连接到一个用于查询手机号码所属地的页面

 * 以便查询号码段1330227所在的省份以及城市

 * @author Liudong

 */

public class SimpleHttpClient {

 

    public static void main(String[] args) throws IOException

    {

        HttpClient client = new HttpClient();

        client.getHostConfiguration().setHost("www.imobile.com.cn", 80, "http");

 

        HttpMethod method = getPostMethod();//使用POST方式提交数据

        client.executeMethod(method);

       //打印服务器返回的状态

        System.out.println(method.getStatusLine());

        //打印结果页面

        String response =

           new String(method.getResponseBodyAsString().getBytes("8859_1"));

       //打印返回的信息

        System.out.println(response);

        method.releaseConnection();

    }

    /**

     * 使用GET方式提交数据

     * @return

     */

    private static HttpMethod getGetMethod(){

        return new GetMethod("/simcard.php?simcard=1330227");

    }

    /**

     * 使用POST方式提交数据

     * @return

     */

    private static HttpMethod getPostMethod(){

        PostMethod post = new PostMethod("/simcard.php");

        NameValuePair simcard = new NameValuePair("simcard","1330227");

        post.setRequestBody(new NameValuePair[] { simcard});

        return post;

    }

}

在上面的例子中页面http://www.imobile.com.cn/simcard.php需要一个参数是simcard,这个参数值为手机号码段,即手机号码的前七位,服务器会返回提交的手机号码对应的省份、城市以及其他详细信息。GET的提交方法只需要在URL后加入参数信息,而POST则需要通过NameValuePair类来设置参数名称和它所对应的值

3. 处理页面重定向

在JSP/Servlet编程中response.sendRedirect方法就是使用HTTP协议中的重定向机制。它与JSP中的<jsp:forward …>的区别在于后者是在服务器中实现页面的跳转,也就是说应用容器加载了所要跳转的页面的内容并返回给客户端;而前者是返回一个状态码,这些状态码的可能值见下表,然后客户端读取需要跳转到的页面的URL并重新加载新的页面。就是这样一个过程,所以我们编程的时候就要通过HttpMethod.getStatusCode()方法判断返回值是否为下表中的某个值来判断是否需要跳转。如果已经确认需要进行页面跳转了,那么可以通过读取HTTP头中的location属性来获取新的地址。

状态码
 对应HttpServletResponse的常量
 详细描述
 
301
 SC_MOVED_PERMANENTLY
 页面已经永久移到另外一个新地址
 
302
 SC_MOVED_TEMPORARILY
 页面暂时移动到另外一个新的地址
 
303
 SC_SEE_OTHER
 客户端请求的地址必须通过另外的URL来访问
 
307
 SC_TEMPORARY_REDIRECT
 同SC_MOVED_TEMPORARILY
 


下面的代码片段演示如何处理页面的重定向

client.executeMethod(post);

        System.out.println(post.getStatusLine().toString());

        post.releaseConnection();

       

        //检查是否重定向

        int statuscode = post.getStatusCode();

        if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||

            (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||

            (statuscode == HttpStatus.SC_SEE_OTHER) ||

(statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {

//读取新的URL地址

            Header header = post.getResponseHeader("location");

            if (header != null) {

                String newuri = header.getValue();

                if ((newuri == null) || (newuri.equals("")))

                    newuri = "/";

                GetMethod redirect = new GetMethod(newuri);

                client.executeMethod(redirect);

                System.out.println("Redirect:"+ redirect.getStatusLine().toString());

                redirect.releaseConnection();

            } else

                System.out.println("Invalid redirect");

        }

我们可以自行编写两个JSP页面,其中一个页面用response.sendRedirect方法重定向到另外一个页面用来测试上面的例子。

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22216676.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(3683) | 评论 (5)编辑 收藏

应用HttpClient来对付各种顽固的WEB服务器(1) [转]

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE问题的处理。我们知道目前流行的动态网页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用java.net.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的“顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了!

我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。

Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所有问题。

1. 读取网页(HTTP/HTTPS)内容

下面是我们给出的一个简单的例子用来访问某个页面

/*

 * Created on 2003-12-14 by Liudong

 */

package http.demo;

 

import java.io.IOException;

 

import org.apache.commons.httpclient.*;

import org.apache.commons.httpclient.methods.*;

/**

 * 最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面

 * @author Liudong

 */

public class SimpleClient {

 

    public static void main(String[] args) throws IOException

    {

        HttpClient client = new HttpClient();   

        //设置代理服务器地址和端口    

        //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);

        //使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https

        HttpMethod method = new GetMethod("http://java.sun.com");

        //使用POST方法

        //HttpMethod method = new PostMethod("http://java.sun.com");

        client.executeMethod(method);

        //打印服务器返回的状态

        System.out.println(method.getStatusLine());

        //打印返回的信息

        System.out.println(method.getResponseBodyAsString());

        //释放连接

        method.releaseConnection();

    }
}

 

在这个例子中首先创建一个HTTP客户端(HttpClient)的实例,然后选择提交的方法是GET或者POST,最后在HttpClient实例上执行提交的方法,最后从所选择的提交方法中读取服务器反馈回来的结果。这就是使用HttpClient的基本流程。其实用一行代码也就可以搞定整个请求的过程,非常的简单!

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22216549.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(354) | 评论 (0)编辑 收藏

有用的国外开源项目网址 [转]

sourceforge http://www.sourceforge.net
java.net http://www.java.net

www.eclipse.org

www.opensource.org

Lomboz http://www.objectlearn.com/index.jsp (J2EE plugin for Eclipse)
htmlArea http://sourceforge.net/projects/itools-htmlarea/ (所见即所得的在线HTML编辑器)
XmlBuddy http://www.xmlbuddy.com/ (XML Editor plugin for Eclipse)
JFreeChart http://www.jfree.org/ (用于生成图表的项目)
EclipseME http://eclipseme.sourceforge.net/ (J2ME Developmnt Plugin for Eclipse)
mvnForum http://sourceforge.net/projects/mvnforum/ (论坛)
jChatBox http://www.javazoom.net/index.shtml (用servlet实现的WEB聊天引擎)
POI http://jakarta.apache.org/poi/index.html (用于处理Excel,WORD等文档的项目)
FileUpload http://jakarta.apache.org/commons/fileupload/ (用于处理HTTP文件上传得项目)
PDFBox http://sourceforge.net/projects/pdfbox/ (处理PDF文档的项目)
Lucene http://jakarta.apache.org/lucene/index.html (搜索引擎)
Digester http://jakarta.apache.org/commons/digester/ (处理XML信息的项目)
DBCP http://jakarta.apache.org/commons/dbcp/ (数据库连接池)
AXIS http://ws.apache.org/axis/ (WebService 的实现框架)
Jetspeed http://portals.apache.org/jetspeed-1/ (Portal)
HSQLDB http://sourceforge.net/projects/hsqldb/ (Im memory Database Engine)
CEWOLF http://sourceforge.net/projects/cewolf/ (一套标签库实现Web报表,使用的是jFreeChart引擎)
Struts Menu http://sourceforge.net/projects/struts-menu/ (基于Struts的Web菜单项目)
htmlparser http://sourceforge.net/projects/htmlparser/ (用于解析HTML信息的项目)
Mondrian http://sourceforge.net/projects/mondrian/(Open Source OLAP Database)
ProGuard http://sourceforge.net/projects/proguard/(Java的混淆器)
InfoGlue http://sourceforge.net/projects/infoglue/ (J2EE 内容管理系统)
JPivot http://sourceforge.net/projects/jpivot/ (基于WEB的OLAP 展现)
http://java-source.net/

(5)几个常用JAVA开源项目的地址荟萃:
Lomboz      http://www.objectlearn.com/index.jsp (J2EE plugin for Eclipse)
htmlArea    http://sourceforge.net/projects/itools-htmlarea/ (所见即所得的在线HTML编辑器)
XmlBuddy   http://www.xmlbuddy.com/ (XML Editor plugin for Eclipse)
JFreeChart http://www.jfree.org/ (用于生成图表的项目)
EclipseME   http://eclipseme.sourceforge.net/ (J2ME Developmnt Plugin for Eclipse)
mvnForum  http://sourceforge.net/projects/mvnforum/ (论坛)
jChatBox    http://www.javazoom.net/index.shtml (用servlet实现的WEB聊天引擎)
POI            http://jakarta.apache.org/poi/index.html (用于处理Excel,WORD等文档的项目)
FileUpload http://jakarta.apache.org/commons/fileupload/ (用于处理HTTP文件上传得项目)
PDFBox      http://sourceforge.net/projects/pdfbox/ (处理PDF文档的项目)
Lucene      http://jakarta.apache.org/lucene/index.html (搜索引擎)
Digester    http://jakarta.apache.org/commons/digester/ (处理XML信息的项目)
DBCP         http://jakarta.apache.org/commons/dbcp/  (数据库连接池)
AXIS          http://ws.apache.org/axis/ (WebService 的实现框架)
Jetspeed   http://portals.apache.org/jetspeed-1/ (Portal)
HSQLDB    http://sourceforge.net/projects/hsqldb/ (Im memory Database Engine)
CEWOLF   http://sourceforge.net/projects/cewolf/  (一套标签库实现Web报表,使用的是jFreeChart引擎)
Struts Menu http://sourceforge.net/projects/struts-menu/  (基于Struts的Web菜单项目)
htmlparser   http://sourceforge.net/projects/htmlparser/   (用于解析HTML信息的项目)
Mondrian     http://sourceforge.net/projects/mondrian/  (Open Source OLAP Database)
ProGuard     http://sourceforge.net/projects/proguard/ (Java的混淆器)
InfoGlue      http://sourceforge.net/projects/infoglue/  (J2EE 内容管理系统)
JPivot          http://sourceforge.net/projects/jpivot/  (基于WEB的OLAP 展现)
HttpClient   http://jakarta.apache.org/commons/httpclient/  处理http客户端的接口

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22215741.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(736) | 评论 (2)编辑 收藏

***JAVA面试题目***

题目:

第一,谈谈final, finally, finalize的区别
第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)
第四,&和&&的区别
第五,HashMap和Hashtable的区别
第六,Collection 和 Collections的区别
第七,什么时候用assert。
第八,GC是什么? 为什么要有GC?第九,String s = new String("xyz");创建了几个String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?面试题都是很变态的,要做好受虐的准备
第十二,sleep() 和 wait() 有什么区别?搞线程的最爱
第十三,Java有没有goto?
第十四,数组有没有length()这个方法? String有没有length()这个方法?
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
第十七,给我一个你最常见到的runtime exception。
第十八,error和exception有什么区别?
第十九,List, Set, Map是否继承自Collection接口?
第二十,abstract class和interface有什么区别?
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
第二十三,启动一个线程是用run()还是start()?
第二十四,构造器Constructor是否可被override?
第二十五,是否可以继承String类?
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是
否可进入此对象的其它方法?
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
第二十八,编程题: 用最有效率的方法算出2乘以8等於几?(有C背景的程序员特别喜欢问这种问题。)
第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的
属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,编程题: 写一个Singleton出来。

(浏览全文  引用此文)
文章来源:http://www.blogcn.com/user28/reene/blog/22155378.html

posted @ 2005-10-09 13:07 快乐着飞舞着 阅读(358) | 评论 (0)编辑 收藏

仅列出标题
共10页: First 2 3 4 5 6 7 8 9 10 

Clicky