• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Access Dbase with Http connection

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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) {}
}
}
}
 
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You need to URL-encode the name. See
http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1
On the servlet, you need to escape apostrophes and backslashes before putting the name in your SQL. Precede each apostrophe or backslash with a backslash to escape it. If you don't do this, you have a SQL injection security hole.
You may also have better luck calling os.close() before you open the input stream in your MIDlet. Otherwise, the Nokia 7650 won't send your request properly.
 
Paper beats rock. Scissors beats tiny ad.
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic