|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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[2048];
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[2048];
try{
i=in.read(buffer);
}
catch(IOExceptione){
e.printStackTrace();
i=-1;
}
for(intj=0;j<i;j++){
requestStr.append((char)buffer[j]);
}
System.out.print(requestStr.toString());
returngetUri(requestStr.toString());
}
/**
*<br>办法申明:猎取URI字符
*<br>输出参数:StringrequestString哀求字符
*<br>前往范例:StringURI信息字符
*/
privateStringgetUri(StringrequestString){
intindex1,index2;
index1=requestString.indexOf( |
|