eu nao sai de um problema ainda e queria ajuda forte na verdade
:roll:
eu tenho uma middlet no celular q tem q acessar um servlet simples e comparar login senha, ainda nao eh o sistema real, eh pra que eu aprenda isto.
mas ta dificil…
kero uma teoria primeiro:
o middlet acessa o servlet pelo http num caminho tipo http://localhost:8080/servlet.loginservlet
ou http://localhost:8080/servlet/loginservlet.jsp
?
me falaram q era sem jsp. porem todo acesso q eu faço no servlet ele abre o jsp… como eu faço pra minha middlet entra direto no .class?
por favor eu me enroskei ja no começo :???:
codigo do servlet:
public class LoginServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
String login = req.getParameter(“login”), senha = req.getParameter(“senha”);
String loginSistema, senhaSistema;
loginSistema = new String(“nome”);
senhaSistema = new String(“123”);
if (login == loginSistema && senha == senhaSistema)
{
res.setContentType(“text/plain”);
PrintWriter out = res.getWriter();
out.print(“Conectado”);
out.close();
}
else
{
res.sendError(HttpServletResponse.SC_BAD_REQUEST,“Não foi possível”);
return;
}
}
public String getServletInfo()
{
return “Autenticação de Usuário - Compels”;
}
}
Codigo da middlet
public class LoginMiddlet extends MIDlet implements CommandListener {
private Display display;
private Form fmMain;
private Command cmGet;
private Command cmExit;
private TextField tfLogin;
private TextField tfSenha;
private String errorMsg = null;
private LoginGet loginGet;
public LoginMiddlet()
{
display = Display.getDisplay(this);
cmGet = new Command("Logar", Command.SCREEN, 2);
cmExit = new Command("Sair", Command.SCREEN, 1);
tfLogin = new TextField("User:", "", 10, TextField.ANY);
tfSenha = new TextField("Senha:", "", 10, TextField.ANY | TextField.PASSWORD);
fmMain = new Form("Login ao Sistema");
fmMain.addCommand(cmExit);
fmMain.addCommand(cmGet);
fmMain.append(tfLogin);
fmMain.append(tfSenha);
fmMain.setCommandListener(this);
}
protected void startApp(){
display.setCurrent(fmMain);
}
protected void pauseApp(){
}
protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException{
}
public void commandAction( Command c , Displayable s ){
if ( c == cmGet ){
try{
loginGet = new LoginGet(tfLogin.getString(), tfSenha.getString());
verificaConexao();
} catch ( Exception e ){
System.err.println("Msg: " + e.toString());
}
}
if ( c == cmExit ){
try{
destroyApp(false);
} catch ( MIDletStateChangeException e ){
e.printStackTrace();
}
notifyDestroyed();
}
}
public void verificaConexao(){
try{
if ( loginGet.getHttp().getResponseCode() == HttpConnection.HTTP_OK ){
loginGet.setInStream(loginGet.getHttp().openInputStream());
int lenght = (int) loginGet.getHttp().getLength();
if ( lenght > 0 ){
byte dados[] = new byte[lenght];
char data[] = new char[lenght];
int j = 0;
loginGet.getInStream().read(dados);
for (int i = 0; i < lenght; i++ ){
data[j] = (char) dados[i];
j++;
}
String dadosRetorno = new String(data);
if ( dadosRetorno.trim().equals("ok") ){
Alert alert = new Alert("Ok", "Conectado", null, AlertType.CONFIRMATION);
alert.setTimeout(5000);
display.setCurrent(alert, fmMain);
}
}
} else
fmMain.append("Nao Conectado");
} catch ( IOException e ){
e.printStackTrace();
}
}
}
class LoginGet extends Thread {
String login, senha;
HttpConnection http = null;
OutputStream outStream = null;
InputStream inStream = null;
public String getLogin()
{
return login;
}
public String getSenha()
{
return senha;
}
public HttpConnection getHttp()
{
return http;
}
public OutputStream getOutStream()
{
return outStream;
}
public InputStream getInStream()
{
return inStream;
}
public void setHttp( HttpConnection http ){
this.http = http;
}
public void setInStream( InputStream inStream ){
this.inStream = inStream;
}
public void setLogin( String login ){
this.login = login;
}
public void setOutStream( OutputStream outStream ){
this.outStream = outStream;
}
public void setSenha( String senha ){
this.senha = senha;
}
public LoginGet( String login , String senha ) {
this.login = login;
this.senha = senha;
}
public void run(){
boolean ret = false;
String url = "http://127.0.0.1:8080/Servlets.LoginServlet" + "?" + "login=" + login + "&" + "senha=" + senha;
try{
http = (HttpConnection) Connector.open(url);
http.setRequestMethod( ( HttpConnection.GET ));
}catch ( IOException e ){
//TODO
} finally{
if ( inStream != null )
try{
inStream.close();
} catch ( IOException e1 ){
e1.printStackTrace();
}
if ( outStream != null )
try{
outStream.close();
} catch ( IOException e2 ){
e2.printStackTrace();
}
if ( http != null )
try{
http.close();
} catch ( IOException e3 ){
e3.printStackTrace();
}
}
}
}
Meu web.xml
<?xml version=“1.0”?>
<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd”>
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>Servlets.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Servlets/LoginServlet</url-pattern>
</servlet-mapping>
<security-role>
<role-name>JBossAdmin</role-name>
</security-role>
</web-app>
sei que fui retardado em por tudo.
mas o desespero ja chegou neste ponto
:oops: