📄 httpresponse.java
字号:
package http;
import java.io.*;
import java.net.*;
import java.util.Hashtable;
import container.servlet.*;
import container.staticsou.*;
import container.chat.*;
public class HttpResponse{
HttpRequest httprequest;
HttpStatusCodes HttpStatus=new HttpStatusCodes();
String HttpStatusMsg=null;
PrintStream sendmsg=null;
static Hashtable chatStream=new Hashtable();
Socket Client;
HttpResponse(Socket Client,HttpRequest httprequest){
this.Client = Client;
this.httprequest=httprequest;
try{
sendmsg =new PrintStream(Client.getOutputStream());
}catch (IOException e) {
CloseConnect();
}//end catch
}//end HttpResponse()
public void Toclient(){
if ( httprequest.HttpMethomd.equals("GET") ){
dealGet();}
if( httprequest.HttpMethomd.equals("POST") ){
dealPost();
return;
}
if (httprequest.statuscode!=200){
sendmsg.print(HttpStatus.toString(httprequest.statuscode)+"\r\n\r\n");
sendmsg.print( HttpStatus.toString(httprequest.statuscode));
return;
}
if (httprequest.RequestSouc.startsWith("/servlet/")){ //是否是 servlet 的目录映射
ServletHold servlethold= new ServletHold(httprequest);
servlethold.LoadClasses(httprequest.RequestSouc);
return;
}//end if
if (httprequest.RequestSouc.startsWith("/chat/")){ //是否是 chat 的目录映射
chatStream.put(Client,sendmsg );
System.out.print("accept From " + Client.getInetAddress().getHostAddress() + "\n");
chat newchat= new chat(sendmsg,chatStream);
newchat.send();
return;
}//end if
if ( httprequest.HttpMethomd.equals("GET") ){
dealLocalFile FileHandle= new dealLocalFile(httprequest.RequestSouc);
if (FileHandle.FileExists()==0){
sendmsg.print(HttpStatus.toString(404)+"\r\n\r\n");
sendmsg.print( HttpStatus.toString(404));
return;
}
byte[] msg = FileHandle.GetContent();
sendmsg.print(HttpStatus.toString(200)+"\r\n");
sendmsg.print("Connection: close \r\n");//ddddd
sendmsg.print(jwsconf.GetMime(httprequest.RequestSouc)+"\r\n\r\n" );
sendmsg.write(msg,0,msg.length);
}//end if
return;
}
public void dealGet(){
return;
}
public void dealPost(){
if (httprequest.RequestSouc.startsWith("/chat/")){ //是否是 chat 的目录映射
chat newchat= new chat(sendmsg,chatStream);
newchat.getPost((String)(httprequest.ReadFromClient.lastElement()));
sendmsg.print("Connection: close\r\n");//ddddd
sendmsg.print( HttpStatus.toString(204)+"\r\n\r\n");
return;
}//end if
sendmsg.print( HttpStatus.toString(405)+"\r\n\r\n");
sendmsg.print( HttpStatus.toString(httprequest.statuscode));
return;
}
void CloseConnect(){
try{
sendmsg.close();
Client.close();
}catch (IOException e) {}//end catch
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -