JAVA编程:基于Jave的Web服务事情机制(2)
主要缺点就是:速度比较慢,没有C和C++快HTTP呼应(Responses)和哀求相似,一个HTTP呼应也包括三个部分:
协定形态代码描叙(Protocol-Statuscode-Description)
呼应包头(Responseheaders)
实体(Entitybody)
上面是HTTP呼应的一个复杂典范:
HTTP/1.1200OK
Server:Microsoft-IIS/4.0
Date:Mon,3Jan199813:13:33GMT
Content-Type:text/html
Last-Modified:Mon,11Jan199813:23:42GMT
Content-Length:112
<html>
<head>
<title>HTTPResponseExample</title></head><body>
WelcometoBrainySoftware
</body>
</html>
第一行的呼应包头和下面的哀求包头很类似。第一行告知我们,协定是利用的HTTP1.1,呼应哀求已乐成(200暗示乐成),统统已OK。
呼应包头和哀求包头类似,也包括一些有效的信息。呼应的实体是HTML那一部分的内容。包头和实体也都是被CRLF序列分别开的。
Socket类
套接字(socket)是收集毗连的一个端点。它使得使用程序可以经由过程收集举行读和写的操纵。经由过程在毗连上发送和承受字撙节,两个位于分歧盘算机的软件程序可以相互互相通信。为了发送一个动静到另外一个程序,你必要晓得对方呆板的IP地点和socket端标语。在JAVA中,一个socket是由java.net.Socket类所暗示的。
为了创立一个套接字,你可使用Socket类的机关函数来完成。这些机关函数承受主机名和端口:
publicSocket(Stringhost,intport)
host暗示远程盘算机名大概IP地点,port暗示该远程使用的端标语。好比,要在80端口毗连到yahoo.com,你必要机关上面的socket:
newSocket("yahoo.com",80);
一旦你乐成创立了一个Socket类的实例,就能够利用它来发送和承受字撙节了。要发送字撙节,必需起首挪用Socket类的getOutputStream办法来取得一个java.io.OutputStream对象。要发送一个文本到远程使用程序,常常要机关一个从OutputStream对象前往的java.io.PrintWriter对象。要吸收毗连另外一真个字撙节,要挪用Socket类的getInputStream办法,该办法是从java.io.InputStream前往的。
上面的程序段创立了一个socket,和当地HTTP服务器(127.0.0.1代表当地)举行通信,发送一个HTTP哀求,然后从服务器吸收一个呼应。它创立了一个StringBuffer来保留呼应,并将它打印到把持台。
Socketsocket =newSocket("127.0.0.1","8080");
OutputStreamos=socket.getOutputStream();
booleanautoflush=true;
PrintWriterout=newPrintWriter(socket.getOutputStream(),autoflush);
BufferedReaderin=newBufferedReader(
newInputStreamReader(socket.getInputStream()));
//sendanHTTPrequesttothewebserver
out.println("GET/index.jspHTTP/1.1");
out.println("Host:localhost:8080");
out.println("Connection:Close");
out.println();
//readtheresponse
booleanloop =true;
StringBuffersb=newStringBuffer(8096);
while(loop){
if(in.ready()){
inti=0;
while(i!=-1){
i=in.read();
sb.append((char)i);
}
loop=false;
}
Thread.currentThread().sleep(50);
}
//displaytheresponsetotheoutconsole
System.out.println(sb.toString());
socket.close();
要从服务器失掉一个切实的呼应,你必要发送一个遵守HTTP协定划定规矩的HTTP哀求。假如你浏览了下面的那段"超文本传输协定(HTTP)",那末你就应当可以了解方才下面创建socket的代码。
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 是一种为 Internet发展的计算机语言 Java 编程语言的风格十分接近C、C++语言。 是一种将安全性(Security)列为第一优先考虑的语言 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页:
[1]