⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpresponse.java

📁 用JAVA编写的一个聊天程序
💻 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 + -