📄 booktitleserviceviaservlets.java
字号:
// Fig. 14.10: BookTitleServiceViaServlets.java.// BookTitleServiceViaServlets connects to a servlet that// makes a request to the Book Titles Web service.package com.deitel.jws1.j2me.client;// import J2ME packagesimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.io.*;import java.io.*;// import Deitel packagesimport com.deitel.jws1.services.BookTitles;public class BookTitleServiceViaServlets implements BookTitles { // URL of servlet that accesses Book Titles Web service private final static String SERVICE_URL = "http://localhost:8080/j2me/BookTitlesProxy"; // invoke Book Titles Web service via servlet public String[] getBookTitles() { // invoke Web service and convert result to String array try { // establish HTTP connection to servlet HttpConnection httpConnection = ( HttpConnection ) Connector.open( SERVICE_URL ); // receive server data String titles[] = getData( httpConnection ); httpConnection.close(); // close connection return titles; } // handle exception communicating with HTTP server catch ( IOException ioException ) { ioException.printStackTrace(); return null; } } // end method getBookTitles // open DataInputStream to receive data private String[] getData( HttpConnection httpConnection ) throws IOException { StringBuffer data = new StringBuffer(); // open input stream from connection InputStream inputStream = ( DataInputStream ) httpConnection.openDataInputStream(); int inputCharacter = inputStream.read(); // read all data while ( inputCharacter != -1 ) { data.append( ( char ) inputCharacter ); inputCharacter = inputStream.read(); } inputStream.close(); // close stream // convert data to String array return parseData( data.toString(), '\n' ); } // end method getData // string tokenizer parses String into sub-String array private String[] parseData( String data, char delimiter ) { int newLines = 0; // determine number of delimiter characters in String for ( int i = 0; i < data.length(); i++ ) // increase number of delimiters by one if ( data.charAt( i ) == delimiter ) newLines++; // create String array to hold String tokens String list[] = new String[ newLines ]; int oldNewLineIndex = 0; int currentNewLineIndex; // store Strings into array based on demiliter for ( int i = 0; i < newLines; i++ ) { // determine index where delimiter occurs currentNewLineIndex = data.indexOf( delimiter, oldNewLineIndex ); // extract String within delimiter characters list[ i ] = data.substring( oldNewLineIndex, currentNewLineIndex - 1 ); oldNewLineIndex = currentNewLineIndex + 1; } return list; } // end method parseData} // end class BookTitleServiceViaServlets
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -