I am new to J2ME and have come across a problem regarding Http connection. I simply want to pass a parameter from a Palm to the server, this parameter is then used to query the database and the information is sent back to the Palm top.
I managed to pass the parameter to a
JSP page, which I then changed and passed back to the Palm top. However when trying to use this parameter to query the database, the results are not sent back to the Palm top. Even though when I execute the JSP with the parameter attached to the end of the URL it works fine? I'll attach the code. If anyone could help I would appreciate it.
JSP:
name = (request.getParameter("name"));
name2 = name + "2";
type = name;
java.util.Date today = new java.util.Date();
out.println("Got: "+name);
out.println("Name2: "+name2);
out.println("Date&time: "+today);
String connectionURL = "jdbc:mysql://localhost:3306/CCS?user=marikaludmann;password=ludmann";
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "", "");
statement = connection.createStatement();
rs = statement.executeQuery("SELECT * FROM VALVE_TYPE WHERE TYPE = '" + name + "'");
while (rs.next()) {
type = rs.getString("type");
out.println("type: "+type);
id = rs.getInt("valve_type_id");
out.println("ID: "+id);
}
rs.close();
%>
MIDlet:
public class InvokeJSPMidlet extends MIDlet implements CommandListener {
Display display = null;
TextField name = null;
Form form;
String url = "http://127.0.0.1:8080/ccs_midp/today.jsp";
static final Command callCommand = new Command("date?", Command.OK, 2);
static final Command clearCommand = new Command("clear", Command.STOP, 2);
String myname;
public InvokeJSPMidlet() {
display = Display.getDisplay(this);
name = new TextField("Name:", " ", 25, TextField.ANY);
form = new Form("Invoke JSP");
}
public void startApp() throws MIDletStateChangeException {
form.append(name);
form.addCommand(clearCommand);
form.addCommand(callCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
void invokeJSP(String url) throws IOException {
HttpConnection c = null;
InputStream is = null;
OutputStream os = null;
StringBuffer b = new StringBuffer();
TextBox t = null;
try {
c = (HttpConnection)Connector.open(url);
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("IF-Modified-Since", "25 Nov 2001 15:17:19 GMT");
c.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language", "en-CA");
c.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
os = c.openOutputStream();
os.write(("name="+myname).getBytes());
// os.flush();
is = c.openDataInputStream();
int ch;
while ((ch = is.read()) != -1) {
b.append((char) ch);
System.out.print((char)ch);
}
t = new TextBox("Date", b.toString(), 1024, 0);
t.setCommandListener(this);
} finally {
if(is!= null) {
is.close();
}
if(os != null) {
os.close();
}
if(c != null) {
c.close();
}
}
display.setCurrent(t);
}
public void commandAction(Command c, Displayable d) {
String label = c.getLabel();
if(label.equals("clear")) {
destroyApp(true);
} else if (label.equals("date?")) {
myname = name.getString();
try {
invokeJSP(url);
}catch(IOException e) {}
}
}
}