Meus cumprimentos a todos!!! Eh o seguinte: nao to conseguindo fazer estah servlet e midlet comunicar corretamennte segue os codigos abaixo
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;
public class Midlet extends MIDlet implements CommandListener,Runnable
{
Display display = null;
private TextField fieldNome,fieldEndereco,fieldTelefone,tfLogin,tfNome;
private Form formCadastro,fmMain;
private String url = "http://localhost:8084/Servlet/";
static String tipo="";
static final Command sendCommand = new Command("Enviar", Command.OK, 2);
static final Command clearCommand = new Command("Limpar", Command.STOP, 3);
static final Command cmConectar = new Command("Conectar", Command.SCREEN, 1);
static final Command cmSair= new Command("Sair", Command.EXIT, 2);
String sNome,sEndereco,sTelefone,errorMsg;
private Alert alError;
public Midlet() {
display = Display.getDisplay(this);
fieldNome = new TextField("Nome:", "", 25, TextField.EMAILADDR);
fieldEndereco = new TextField("Endereço:", "", 25, TextField.ANY);
fieldTelefone = new TextField("Fone:", "", 12, TextField.ANY);
tfLogin = new TextField("Senha", "", 3, TextField.NUMERIC);
tfNome = new TextField("Nome", "", 10, TextField.ANY);
fmMain = new Form("Login");
fmMain.addCommand(cmConectar);
fmMain.addCommand(cmSair);
fmMain.append(tfNome);
fmMain.append(tfLogin);
fmMain.setCommandListener(this);
//componentes do form que cadastra
formCadastro = new Form("Cadastro de Cliente");
formCadastro.addCommand(clearCommand);
formCadastro.addCommand(sendCommand);
formCadastro.append(fieldNome);
formCadastro.append(fieldEndereco);
formCadastro.append(fieldTelefone);
formCadastro.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException {
display.setCurrent(fmMain);
//display.setCurrent(formCadastro);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
void invokeServlet(String url) throws IOException {
HttpConnection http = null;
StringBuffer b = new StringBuffer();
OutputStream os = null;
if(this.tipo.equals("login"))
{
url = url + "?" + "login=" + tfLogin.getString() + "&" +
"Nome=" + tfNome.getString();
System.out.print(url);
//REQUISAO DO URL
http = (HttpConnection)Connector.open(url);
// TIPO DE REQUISIÇAO
http.setRequestMethod(HttpConnection.GET);
// SEM CABEÇALHO
// SEM DADOS.VAI NA URL
//RESPOSTA SERVIDOR
if(http.getResponseCode() == HttpConnection.HTTP_OK)
{
display.setCurrent(formCadastro);
}
else
{
alError = new Alert("Error ",http.getResponseCode() + http.getResponseMessage(), null, AlertType.ERROR);
alError.setTimeout(Alert.FOREVER);
display.setCurrent(alError, fmMain);
}
}
else
{
try {
http = (HttpConnection)Connector.open(url);
// TIPO DE REQUESIÇAO
http.setRequestMethod(HttpConnection.POST);
// CABEÇALHO
http.setRequestProperty("IF-Modified-Since", "09 Aug 2007 10:00:00 GMT");
http.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.1");
http.setRequestProperty("Content-Language", "en-CA");
http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//DADOS
os = http.openOutputStream();
os.write(("Nome"+ sNome).getBytes());
os.write(("Endereco" + sEndereco).getBytes());
os.write(("Telefone" + sTelefone).getBytes());
os.flush();
// RESPOSTA DO SERVIDOR
[color=blue][b]DataInputStream is =(DataInputStream)http.openDataInputStream();
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = is.read()) != -1) {
buf.append((char) ch);
}
Alert a = new Alert("Mensagem:");
a.setString(buf.toString());
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);[/b][/color]
}
finally {
if(os != null) {
os.close();
}
if(http != null) {
http.close();
}
}
}
}
public void commandAction(Command c, Displayable d) {
String label = c.getLabel();
if(label.equals("Limpar"))
{
destroyApp(true);
}
else if (label.equals("Enviar"))
{
this.tipo = "Enviar";
sNome = fieldNome.getString();
fieldNome.setString("");
sEndereco = fieldEndereco.getString();
fieldEndereco.setString("");
sTelefone = fieldTelefone.getString();
fieldTelefone.setString("");
Thread t = new Thread(this);
t.start();
}
if(label.equals("Sair"))
{
destroyApp(false);
notifyDestroyed();
}
if(label.equals("Conectar"))
{
this.tipo = "login";
Thread t = new Thread(this);
t.start();
}
}
public void run() {
try {
invokeServlet(url);
}
catch(IOException e) {}
}
}
import java.io.*;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Servlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
String sNome = request.getParameter("Nome");
String sEndereco = request.getParameter("Endereco");
String sTelefone = request.getParameter("Telefone");
System.out.println("Enviados: "+ sNome);
//trabalha aki com os dados
/*
String db = in.readUTF();
String user = in.readUTF();
String pwd = in.readUTF();
*/
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("cadastro feito....");
out.close();
out.flush();
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
System.out.println("recebendo dados");
String login = request.getParameter("Login");
String nome = request.getParameter("Nome");
if((nome == null) || (login == null))
{
response.sendError(response.SC_BAD_REQUEST, "login errado");
return;
}
//response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.write("Login ok ...");
out.close();
}
}
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("cadastro feito....");
out.close();
out.flush();
nao eh enviado à midlet.Ela imprime no codigo
DataInputStream is =(DataInputStream)http.openDataInputStream();
StringBuffer buf = new StringBuffer();
int ch;
while ((ch = is.read()) != -1) {
buf.append((char) ch);
}
Alert a = new Alert("Mensagem:");
a.setString(buf.toString());
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
o index.jsp.Nao quero que a midlet imprima o index.jsp e sim CADASTRO FEITO, por ex.
Alguem pode me ajudar?? Estou usando o netbeans 5.5.1
Valeu