|   
| 
| | « | October 2025 | » |  | 日 | 一 | 二 | 三 | 四 | 五 | 六 |  |  |  |  | 1 | 2 | 3 | 4 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |  | |  | 
 |  
| 统计 |  
| blog名称:小雨 日志总数:262
 评论数量:1273
 留言数量:15
 访问次数:4690068
 建立时间:2005年1月8日
 |  |  
 | W3CHINA Blog首页    管理页面    写新日志    退出 
 
 
|  [知识积累]j2me  and servlet |  
| 1 j2me 
/** HttpMidlet.java*/import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.io.*;import java.io.*;
public class test extends MIDlet implements CommandListener,Runnable {//使用默认的URL。用户可以从图形用户接口改变这个值private static String defaultURL = "http://localhost:7001/applications/testServlet";
// 主MIDP 显示private Display myDisplay = null;
// 输入URL的图形用户接口组件private Form requestScreen;private TextField requestField;
// 用于提交请求的图形用户接口组件private List list;private String[] menuItems;
// 用于显示服务器响应的图形用户接口组件private Form resultScreen;private StringItem resultField;
//用于requestScreen的"send"按钮Command sendCommand;// 用于requestScreen的"exit"按钮Command exitCommand;// 用于requestScreen的"back"按钮Command backCommand;
public test(){// 初始化图形用户接口组件myDisplay = Display.getDisplay( this );sendCommand = new Command( "SEND", Command.OK, 1 );exitCommand = new Command( "EXIT", Command.OK, 1 );backCommand = new Command( "BACK", Command.OK, 1 );
//显示请求的URLrequestScreen = new Form( "Type in a URL:" );requestField = new TextField( null, defaultURL, 100, TextField.URL );requestScreen.append( requestField );requestScreen.addCommand( sendCommand );requestScreen.addCommand( exitCommand );requestScreen.setCommandListener( this );
// 选择想要的HTTP请求方法menuItems = new String[] {"GET Request", "POST Request"}; list = new List( "Select an HTTP method:", List.IMPLICIT, menuItems, null );list.setCommandListener( this );
// 先是从服务器上收到的信息resultScreen = new Form( "Server Response:" );resultScreen.addCommand( backCommand );resultScreen.setCommandListener( this );
}//结束HttpMidlet()
public void startApp() {myDisplay.setCurrent(requestScreen);}//结束 startApp()public void run(){   String result; if (list.getSelectedIndex() == 0 ) // 发送一个 GET 请求到服务器 result = sendHttpGet( requestField.getString()); else // 发送一个 POST 请求到服务器 result = sendHttpPost( requestField.getString()); resultField = new StringItem( null, result ); resultScreen.append(resultField); myDisplay.setCurrent(resultScreen);}void start()  {   //display( "Starting to Connect to Server..." );   Thread thread1 = new Thread( this );   try    {    thread1.start();   }   catch( Exception e )   {//    done( "Exception " + e + " trying to start thread." );   }  }public void commandAction( Command com, Displayable disp ) {// 当用户点击"send"按钮if ( com == sendCommand ) {myDisplay.setCurrent( list );} else if ( com == backCommand ) {requestField.setString( defaultURL );myDisplay.setCurrent( requestScreen );} else if ( com == exitCommand ) {destroyApp( true );notifyDestroyed();}//结束 if ( com == sendCommand )
if ( disp == list && com == List.SELECT_COMMAND ) { this.start();}//结束if ( dis == list && com == List.SELECT_COMMAND )}//结束 commandAction( Command, Displayable )
private String sendHttpGet( String url ){HttpConnection hcon = null;DataInputStream dis = null;StringBuffer responseMessage = new StringBuffer();
try {//使用READ权限的标准的 HttpConnectionhcon = ( HttpConnection )Connector.open( url );
//从HttpConnection取得一个 DataInputStreamdis = new DataInputStream( hcon.openInputStream() );
// 从服务器上取回响应int ch;while ( ( ch = dis.read() ) != -1 ) {responseMessage.append( (char) ch );}//结束while ( ( ch = dis.read() ) != -1 )}catch( Exception e ){e.printStackTrace();responseMessage.append( "ERROR" );} finally {try {if ( hcon != null ) hcon.close();if ( dis != null ) dis.close();} catch ( IOException ioe ) {ioe.printStackTrace();}//结束try/catch }//结束try/catch/finallyreturn responseMessage.toString();}//结束sendHttpGet( String )
private String sendHttpPost( String url ){  HttpConnection hcon = null; DataInputStream dis = null; DataOutputStream dos = null; StringBuffer responseMessage = new StringBuffer(); // 请求体 String requeststring = "This is a POST.";  try {    // 使用读写权限的 HttpConnection hcon = ( HttpConnection )Connector.open( url, Connector.READ_WRITE );
 //设置请求方法为POST hcon.setRequestMethod( HttpConnection.POST ); // 取得发送请求字符串的DataOutputStream dos = hcon.openDataOutputStream();
    byte[] request_body = requeststring.getBytes(); // 发送请求字符串到服务器 for( int i = 0; i < request_body.length; i++ ) { dos.writeByte( request_body[i] ); }//结束 for( int i = 0; i < request_body.length; i++ ) //data_Out.writeUTF( text ); //   data = byte_Out.toByteArray(); // 取得做为接收服务器响应的DataInputStream  dis = new DataInputStream( hcon.openInputStream() );  // 从服务器上取回响应 int ch; while( ( ch = dis.read() ) != -1 ) { responseMessage.append( (char)ch ); }//结束while( ( ch = dis.read() ) != -1 ) {; } catch( Exception e ) { e.printStackTrace(); responseMessage.append( "ERROR" );  System.out.println(url); } finally { // 释放输入输出流和HTTP连接 try { if( hcon != null ) hcon.close(); if( dis != null ) dis.close(); if( dos != null ) dos.close(); } catch ( IOException ioe ) { ioe.printStackTrace(); }//结束try/catch  }//结束try/catch/finally System.out.println("zj"); System.out.println(responseMessage.toString()); return responseMessage.toString();}//结束sendHttpPost( String )
public void pauseApp() {}//结束pauseApp()
public void destroyApp( boolean unconditional ) {myDisplay = null;requestScreen = null;requestField = null;resultScreen = null;resultField = null;}//结束 destroyApp( boolean )}//结束HttpMidlet
2 servlet
package zj;import java.io.*;import javax.servlet.http.*;import javax.servlet.*;
public class testServlet extends HttpServlet{public void doPost (HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException  {     ServletInputStream input_Stream = request.getInputStream();  DataInputStream d_Inputstream = new DataInputStream(input_Stream );     int ch;     StringBuffer responseMessage=new StringBuffer();  while( ( ch = d_Inputstream.read() ) != -1 ) {  responseMessage.append( (char)ch );  }//结束while( ( ch = dis.read() ) != -1 ) {;       // String data_MIDlet = d_Inputstream.readUTF();
  d_Inputstream.close();               ByteArrayOutputStream byte_Out =  new ByteArrayOutputStream();  DataOutputStream data_Out = new DataOutputStream( byte_Out );
  data_Out.writeUTF("zj");  byte[] data = byte_Out.toByteArray();  // Set the response headers and data...  response.setContentType("application/octet-stream" );  response.setContentLength(data.length );  response.setStatus(response.SC_OK);  OutputStream out_Stream = response.getOutputStream();  out_Stream.write( data );  out_Stream.close();
  }}
 
 |  
| 
 阅读全文(3825) | 回复(1) | 编辑 | 精华
 |  
 
| 回复:j2me  and servlet |  
| 
| 痞子若鱼发表评论于2007/3/30 23:06:15 |  呵呵 好久没上来看了``
路过`看望哈`随便灌水
 
 |  
| 
 个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 |  
  »  1 » 
 |