仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 462|回复: 12
打印 上一主题 下一主题

[学习教程] 发布一篇Java收集编程从进门到精晓(22):完成HTTP摹拟器

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
在会商HTTP协定的详细哀求和呼应头字段之前,让我们先来使用之前所学的常识来完成一个HTTP摹拟器。所谓HTTP摹拟器就是能够在用户输出HTTP的哀求动静后,由这个摹拟器将HTTP哀求发送给响应的服务器,再吸收服务器的呼应动静。这个HTTP摹拟器有几下特性:
1.能够手工输出HTTP哀求,并向服务器发送。
2.吸收服务器的呼应动静。
3.动静头和实体内容分段显现,也就是说,并非象Telnet等客户端一样将HTTP响

应动静全体显现,而是先显现动静头,然后由用户决意是不是显现实体内容。
4.会合发送哀求。这个HTTP摹拟器和Telnet分歧的是,并非一入手下手就毗连服务器,
而是将域名、端口和HTTP哀求动静都输完后,才毗连服务器,并将这些哀求发送给服务器。如许做的能够防备服务器提早封闭收集毗连的征象。
5.能够轮回做上述的操纵。
从以上的形貌看,要完成这个HTTP摹拟器必要以下五步:
1.创建一个年夜轮回,在轮回外部是一个哀求/呼应对。如许就能够向服务器发送屡次哀求/呼应以了。上面的四步都是被包含在轮回外部的。
2.从把持台读取域名和端口,这个功效能够由readHostAndPort(...)来完成。
3.从把持台读取HTTP哀求动静,这个功效由readHttpRequest(...)来完成。
4.向服务器发送HTTP哀求动静,这个功效由sendHttpRequest()来完成。
5.读取服务器回送的HTTP呼应动静,这个功效由readHttpResponse(...)来完成。
上面我们就来慢慢完成这五步:
1、创建一个年夜轮回
在创建这个轮回之前,先创建一其中叫HttpSimulator的类,并在这个类中界说一个run办法用来运转这个程序。完成代码以下:
001 packagehttp;
002
003 importjava.net.*;
004 importjava.io.*;
005
006 publicclassHttpSimulator
007 {
008     privateSocketsocket;
009     privateintport=80;
010     privateStringhost="localhost";
011     privateStringrequest="";//HTTP哀求动静
012     privatebooleanisPost,isHead;
013
014     publicvoidrun()throwsException
015     {
016         BufferedReaderreader=newBufferedReader(newInputStreamReader(
017                 System.in));
018         while(true) //入手下手年夜轮回
019         {
020             try
021             {
022                 if(!readHostAndPort(reader))
023                     break;
024                 readHttpRequest(reader);
025                 sendHttpRequest();
026                 readHttpResponse(reader);
027             }
028             catch(Exceptione)
029             {
030                 System.out.println("err:"+e.getMessage());
031             }
032         }
033     }
034     publicstaticvoidmain(String[]args)throwsException
035     {
036         newHttpSimulator().run();
037     }
038 }
从下面的代码能够看出,第022、024、025和026分离挪用了上述的四个办法。这些办法的详细完成将在前面会商。下面的代码除挪用这四个中心办法外,还做了一些筹办事情。在008至012行界说了一些今后要用到的变量。在016和017利用用把持台的输出流创建了BufferedReader对象,经由过程这个对象,能够间接从把持台读取字符串,而不是一个个地字节。
<p>
在1995年5月23日以“Java”的名称正式发布了。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 13:22:18 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-24 12:43:04 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-1 12:11:53 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
小女巫 该用户已被删除
5#
发表于 2015-2-1 16:06:00 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
简单生活 该用户已被删除
6#
发表于 2015-2-6 18:55:34 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
蒙在股里 该用户已被删除
7#
发表于 2015-2-8 03:55:12 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
若天明 该用户已被删除
8#
发表于 2015-2-24 03:51:03 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
透明 该用户已被删除
9#
发表于 2015-3-5 01:32:24 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
谁可相欹 该用户已被删除
10#
发表于 2015-3-6 19:42:24 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
老尸 该用户已被删除
11#
发表于 2015-3-6 21:57:41 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
柔情似水 该用户已被删除
12#
发表于 2015-3-17 17:11:01 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
再见西城 该用户已被删除
13#
发表于 2015-3-24 14:16:01 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表