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

📄 icomm.java

📁 OO 图书馆系统
💻 JAVA
字号:

import java.net.*;
import javax.xml.parsers.*;
import org.apache.axis.message.SOAPBody;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.w3c.dom.*;
//subject of Comm
//create an interface IComm for both REST and SOAP format
interface IComm {
   //sending request to flickr api
   public void sendRequest();
   //receiving response from flickr api
   public Document getResponse();
}


//real subject of CommSoap for SOAP format
class CommSoap implements IComm {
  //create a request SOAPEvelope object 
  private SOAPEnvelope requestenv;
  //create a response SOAPEvelope object
  private SOAPEnvelope env;
  //create a document object
  private Document doc;
  //create a URL object
  private URL url;
  
  //constructor initialization
  public CommSoap(URL url,SOAPEnvelope env){
  	
  	this.url=url;
  	this.requestenv=env;
  	
  	
  }
  //actual running function of sendRequest() for SOAP 
  public void sendRequest(){
  	
  	 try{
  	 
  	   // build the call.
       Service service = new Service();
       Call call = (Call) service.createCall();
       call.setTargetEndpointAddress(url);
       this.env = call.invoke(requestenv);
     }
     catch (Exception e) {
       e.printStackTrace();
     }
  	
  }
  //actual running function of getResponse() for SOAP
  public Document getResponse(){
  	 
  	  
  	
  	 try{
  	
  	   SOAPBody result = (SOAPBody) env.getBody();

       this.doc = result.getAsDocument();
       
     }
     catch (Exception e) {
       e.printStackTrace();
      
     }
         
  	 return doc;
  }
  
}

//proxy of CommSoap
class CommSoapProxy implements IComm {

  //create a request SOAPEvelope object 
  private SOAPEnvelope requestenv;
  //create a document object
  private Document doc;
  //create a URL object
  private URL url;
  //create a CommSoap object
  private CommSoap commsoap;
  
  //constructor initialization
  public CommSoapProxy(URL url,SOAPEnvelope env){
  	
  	this.url=url;
  	this.requestenv=env;
  	
  	
  }
  
  //proxy sendRequest() of SOAP
  public void sendRequest(){
  	// Use 'lazy initialization' 
    if (commsoap == null)
    {
      commsoap = new CommSoap(url,requestenv);
    }
    
    //using real sendRequest() of class CommSoap
    commsoap.sendRequest();
  	
  }
  
  //proxy getResponse() of SOAP
  public Document getResponse(){
  	
  	//using real getResponse() of class CommSoap 
  	this .doc=commsoap.getResponse();
  	return doc;
  	
  	
  }
  
}


//real subject of CommREST for REST format
class CommREST implements IComm {
  //create a document object
  private Document doc;
  //create a URL object
  private URL url;
  //create a URLConnection object;
  private URLConnection conn;
  
  //constructor initialization
  public CommREST(URL url){
  	
  	this.url=url;
  	
  	
  }
  //actual running function of sendRequest() for REST
  public void sendRequest(){
  	
  	 try{
  	 
  	   // build the call.
         this.conn = url.openConnection();
     }
     catch (Exception e) {
       e.printStackTrace();
     }
  	
  }
  //actual running function of getResponse() for REST
  public Document getResponse(){
  	 
  	  
  	
  	 try{
  	
  	    // Get the response
        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
        DocumentBuilder dber;
        dber = factory.newDocumentBuilder();
        this.doc = dber.parse(conn.getInputStream());
     
     }
     catch (Exception e) {
       e.printStackTrace();
      
     }
         
  	 return doc;
  }
  
}

//proxy of CommREST
class CommRESTProxy implements IComm {

  //create a document object
  private Document doc;
  //create a URL object
  private URL url;
  //create a CommREST object
  private CommREST commrest;
  
  //constructor initialization
  public CommRESTProxy(URL url){
  	
  	this.url=url;
  	
  	
  }
  
  //proxy sendRequest() of REST
  public void sendRequest(){
  	// Use 'lazy initialization' 
    if (commrest == null)
    {
      commrest = new CommREST(url);
    }
    
    //using real sendRequest() of class CommREST
    commrest.sendRequest();
  	
  }
  
  //proxy getResponse() of REST
  public Document getResponse(){
  	
  	//using real getResponse() of class CommREST 
  	this.doc=commrest.getResponse();
  	return doc;
  	
  	
  }
  
}







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -