发布一篇[JAVA100例]050、一个复杂的Web服务器
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),importjava.io.*;
importjava.net.*;
/**
*<p>Title:发明HTTP内容和文件内容</p>
*<p>Description:取得用户哀求后将用户必要的文件读出,增加上HTTP应对头。发送给客户端。</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:Response.java</p>
*@version1.0
*/
publicclassResponse{
OutputStreamout=null;
/**
*<br>办法申明:发送信息
*<br>输出参数:Stringref哀求的文件名
*<br>前往范例:
*/
publicvoidSend(Stringref)throwsIOException{
byte[]bytes=newbyte;
FileInputStreamfis=null;
try{
//机关文件
Filefile =newFile(WebServer.WEBROOT,ref);
if(file.exists()){
//机关输出文件流
fis=newFileInputStream(file);
intch=fis.read(bytes,0,2048);
//读取文件
StringsBody=newString(bytes,0);
//机关输入信息
StringsendMessage="HTTP/1.1200OK
"+
"Content-Type:text/html
"+
"Content-Length:"+ch+"
"+
"
"+sBody;
//输入文件
out.write(sendMessage.getBytes());
}else{
//找不到文件
StringerrorMessage="HTTP/1.1404FileNotFound
"+
"Content-Type:text/html
"+
"Content-Length:23
"+
"
"+
"<h1>FileNotFound</h1>";
out.write(errorMessage.getBytes());
}
}
catch(Exceptione){
//如不克不及实例化File对象,抛出非常。
System.out.println(e.toString());
}
finally{
if(fis!=null)
fis.close();
}
}
/**
*<br>办法申明:机关器,猎取输入流
*<br>输出参数:
*<br>前往范例:
*/
publicResponse(OutputStreamoutput){
this.out=output;
}
}
importjava.io.*;
importjava.net.*;
/**
*<p>Title:客户哀求剖析</p>
*<p>Description:猎取客户的HTTP哀求,剖析客户所必要的文件</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:Request.java</p>
*@version1.0
*/
publicclassRequest{
InputStreamin=null;
/**
*<br>办法申明:机关器,取得输出流。这时候客户的哀求数据。
*<br>输出参数:
*<br>前往范例:
*/
publicRequest(InputStreaminput){
this.in=input;
}
/**
*<br>办法申明:剖析客户的哀求
*<br>输出参数:
*<br>前往范例:String哀求文件字符
*/
publicStringparse(){
//从Socket读取一组数据
StringBufferrequestStr=newStringBuffer(2048);
inti;
byte[]buffer=newbyte;
try{
i=in.read(buffer);
}
catch(IOExceptione){
e.printStackTrace();
i=-1;
}
for(intj=0;j<i;j++){
requestStr.append((char)buffer);
}
System.out.print(requestStr.toString());
returngetUri(requestStr.toString());
}
/**
*<br>办法申明:猎取URI字符
*<br>输出参数:StringrequestString哀求字符
*<br>前往范例:StringURI信息字符
*/
privateStringgetUri(StringrequestString){
intindex1,index2;
index1=requestString.indexOf( J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 是一种使用者不需花费很多时间学习的语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
页:
[1]