Bom dia!!
Pessoal estou com um problema para acessar uma servlet por meio de uma Midlet
segue o codigo da Midlet:
[code]package acessaServlet;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class LoginMidlet extends MIDlet implements CommandListener, Runnable {
private Display display;
private Form tlogin;
private TextField nome;
private TextField senha;
private TextBox tlogado;
private Alert alertalogin;
private Alert alertaerro;
private Command cancelar;
private Command login;
private Thread t = null;
String URL_servidor = "http://localhost:8080/servidor/login.do";
public LoginMidlet() {
tlogin = new Form("Login do Aplicativo");
tlogado = new TextBox("Usuario Validado","", 20, TextField.ANY);
cancelar = new Command("Cancelar", Command.EXIT, 0);
login = new Command("OK", Command.OK, 1);
alertaerro = new Alert("Login Incorreto", "Tente Novamente", null, AlertType.ERROR);
nome = new TextField ("Nome:", "", 20, TextField.ANY);
senha = new TextField ("Senha:", "", 10, TextField.PASSWORD);
}
public void startApp() {
display = Display.getDisplay(this);
tlogin.append(nome);
tlogin.append(senha);
tlogin.addCommand(cancelar);
tlogin.addCommand(login);
tlogin.setCommandListener(this);
display.setCurrent(tlogin);
tlogado.addCommand(cancelar);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void tenteNovamente() {
alertaerro.setTimeout(Alert.FOREVER);
nome.setString("");
senha.setString("");
display.setCurrent(alertaerro, tlogin);
}
public void chamaServlet() throws IOException {
String URL_enviada = URL_servidor+"?nome="+nome.getString()+"&senha="+senha.getString();
HttpConnection conexao = null;
InputStream IS = null;
try {
conexao = (HttpConnection)Connector.open(URL_enviada);
conexao.setRequestMethod(HttpConnection.GET);
conexao.setRequestProperty("IF-Modified-Since", "20 Jan 2001 16:19:14 GMT");
conexao.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
conexao.setRequestProperty("Content-Language", "en-CA");
IS = conexao.openInputStream();
int tamConteudo = (int)conexao.getLength();
byte[] dados = new byte[tamConteudo];
IS.read(dados);
String resposta = new String (dados, 0, tamConteudo);
if (resposta.startsWith("validado")) { //usuario cadastrado
alertalogin = new Alert ("Login","Usuário validado!",null, AlertType.CONFIRMATION);
alertalogin.setTimeout(Alert.FOREVER);
tlogado.setString("Bem vindo(a)!");
tlogado.setCommandListener(this);
display.setCurrent(alertalogin,tlogado);
} else { //usuario não encontrado
tenteNovamente();
}
} finally {
if(IS!= null) {
IS.close();
}
if(conexao != null) {
conexao.close();
}
}
}
private void connectThread(){
t = new Thread(this);
t.start();
}
public void run(){
try{chamaServlet();}catch (Exception e){}
}
public void commandAction(Command c, Displayable d) {
if(c == cancelar) {
destroyApp(true); // fecha a aplicação
}else if(c==login) {
connectThread();
}
}
}[/code]
abaixo o codigo da servlet:
[code]package controle;
import java.io.;
import javax.servlet.;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
String nome = request.getParameter("nome");
String senha = request.getParameter("senha");
String mensagem = "";
System.out.println("dentro doGet");//esta mensagem não esta sendo executada
if (nome.equals("Maria") || senha.equals("123")) {
mensagem = "validado";
}
out.println(mensagem);
}
}[/code]
não consigo recuperar os parametros passados pela midlet para o servlet
se alguem puder me ajudar…agradeço.