2012-03-05 10 views
0

私が作成するJava EE Webサービスに接続する必要があるAndroid/Javaアプリケーションを作成しようとしています。私はそれをStringに渡し、アクションを呼び出し、その文字列に基づいてdtabaseをスキャンし、java/androidアプリケーションに別の文字列を返す必要があります。JavaからJava EE Webアプリケーションに文字列を渡して文字列を返す

私はこれまで、文字列をJSPページに送信して文字列を返すことができました。私は文字列をアクションにルーティングする方法を知る必要があるので、WebアプリケーションでDBクエリなどを実行できます。以下は私がこれまで持っていたものです。

JSP

java.util.Enumeration e = request.getParameterNames(); 
while (e.hasMoreElements()) 
{ 
String pName = (String)e.nextElement(); 
String pValue = request.getParameter(pName); 
String theURL = "index.do"+ "?Parameter1=" + pValue; 

//theURL = response.encodeRedirectURL(theURL); 

//response.sendRedirect(theURL); 
%> 

Value :<%=theURL%><% 
break; 
} 

Javaクラス 輸入java.net。 ; import java.util。; import java.io. *;

/** * HTTPでのPOSTメソッドの例。
*/ パブリッククラスメイン {

public static void main (String[] args) throws Exception 
{ 
    // Populate the hashtable with key value pairs of 
    // the parameter name and 
    // value. In this case, we only have the parameter 
    // named "CONTENT" and the 
    // value of CONTENT will be "HELLO JSP !" 

    Hashtable h = new Hashtable(); 
    h.put("CONTENT", "I like stuff"); 
    h.put("ONEMORECONTENT", "HELLO POST !"); 

    // POST it ! 
    String output = POST("xxxxxxxxxxx.jsp", 
         h); 

    System.out.println(output); 
} 

/** 
* The POST method. Accepts 2 parameters 
* @param targetURL : The URL to POST to. 
* @param contentHash : The hashtable of the paramters to be posted. 
* 
* @return The String returned as a result of POSTing. 
*/ 
public static String POST(String targetURL, Hashtable contentHash) throws Exception 
{  
    URL url; 
    URLConnection conn; 

    // The data streams used to read from and write to the URL connection. 
    DataOutputStream out; 
    DataInputStream in; 

    // String returned as the result of the POST. 
    String returnString = ""; 

    // Create the URL object and make a connection to it. 
    url = new URL (targetURL); 
    conn = url.openConnection(); 

    // Set connection parameters. We need to perform input and output, 
    // so set both as true. 
    conn.setDoInput (true); 
    conn.setDoOutput (true); 

    // Disable use of caches. 
    conn.setUseCaches (false); 

    // Set the content type we are POSTing. We impersonate it as 
    // encoded form data 
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

    // get the output stream to POST to. 
    out = new DataOutputStream (conn.getOutputStream()); 
    String content = ""; 

    // Create a single String value to be POSTED from the parameters passed 
    // to us. This is done by making "name"="value" pairs for all the keys 
    // in the Hashtable passed to us. 
    Enumeration e = contentHash.keys(); 
    boolean first = true; 
    while(e.hasMoreElements()) 
    {    
     // For each key and value pair in the hashtable 
     Object key = e.nextElement(); 
     Object value = contentHash.get(key); 

     // If this is not the first key-value pair in the hashtable, 
     // concantenate an "&" sign to the constructed String 
     if(!first) 
      content += "&"; 

     // append to a single string. Encode the value portion 
     content += (String)key + "=" + URLEncoder.encode((String)value); 

     first = false; 
    } 

    // Write out the bytes of the content string to the stream. 
    out.writeBytes (content); 
    out.flush(); 
    out.close(); 

    // Read input from the input stream. 
    in = new DataInputStream (conn.getInputStream()); 

    String str;   
    while (null != ((str = in.readLine()))) 
    { 
     returnString += str + "\n"; 
    } 

    in.close(); 

    // return the string that was read. 
    return returnString; 
} 

}

出力: 値:?index.doパラメータ1は=私は事前に

おかげものが好き!

答えて

0

問題を解決する最も簡単な方法は、HttpServletを実装することです。あなたの例のクライアントを使うことができます。 doPost(request、response)メソッドを実装する必要があります。

あなたは、単に標準的なWebサービスを使用しているスタッフを行うための

for (String parameterName : request.getParameters()) { 
    String value = request.getParameter(parameterName); 
    // store parameter values in any structure you need 
    ... 
} 
// here you cann access any class from your web application to perform 
// DB operations. 
... 
// to propagate result to client obtain an OutputStream from response object 
// and simply write data to it 
OutputStream os = response.getOutputStream(); 
os.write(your data); 

他の方法を呼び出すことにより、パラメータにアクセスすることができます。私はAndroidプログラミングについて知らないが、このリンクは良い例を示すようだ:http://www.ibm.com/developerworks/webservices/library/ws-android/index.html?ca=drs-

関連する問題