Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
388 views
in Technique[技术] by (71.8m points)

java me - save data from servlet to recordstore in j2me

I am developing an j2me application which is communicating with the database using servlet. I want to store the data received from servlet into record store and display it.how this can be achieved?Please provide code examples. Thank you in advance

 public void viewcon()
 {
  StringBuffer sb = new StringBuffer();

  try {
  HttpConnection c = (HttpConnection) Connector.open(url);
  c.setRequestProperty("User-Agent","Profile/MIDP-1.0, Configuration/CLDC-1.0");
  c.setRequestProperty("Content-Language","en-US");
  c.setRequestMethod(HttpConnection.POST);
  DataOutputStream os = (DataOutputStream)c.openDataOutputStream();

  os.flush();
  os.close();

  // Get the response from the servlet page.
  DataInputStream is =(DataInputStream)c.openDataInputStream();
  //is = c.openInputStream();
   int ch;
   sb = new StringBuffer();
   while ((ch = is.read()) != -1) {
   sb.append((char)ch);
       }
  // return sb;
   showAlert(sb.toString());//display data received from servlet 

    is.close();
    c.close();

              } catch (Exception e) {
                  showAlert(e.getMessage());
              }
        }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Put this function call where you show the response data alert

writeToRecordStore(sb.toString().getBytes());

The function definition is as below:

private static String RMS_NAME = "NETWORK-DATA-STORAGE";
private boolean writeToRecordStore(byte[] inStream) {
    RecordStore rs = null;
    try {
        rs = RecordStore.openRecordStore(RMS_NAME, true);
        if (null != rs) {
            //Based on your logic either ADD or SET the record
            rs.addRecord(inStream, 0, inStream.length);
            return true;
        } else {
            return false;
        }
    } catch (RecordStoreException ex) {
        ex.printStackTrace();
        return false;
    } finally {
        try {
            if (null != rs) {
                rs.closeRecordStore();
            }
        } catch (RecordStoreException recordStoreException) {
        } finally {
            rs = null;
        }
    }
}

After you have saved the data, read the records store RMS-NAME and check the added index to get the response data.

.

NOTE: The assumption is the network response data is to be appended to the record store. If you want to set it to a particular record modify the method writeToRecordStore(...) accordingly.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...