jQuery + Servlet

7 respostas
S

Olá a todos,
tenho uma página html + jQuery para enviar dados para uma servlet via Post.
Mas meu comando não encontra a servlet:

//chamar servlet $(document).ready(function () { $("#enviar").click(function () { var matricula = $("#matricula"); var matriculaPost = matricula.val(); var nome = $("#nome"); var nomePost = nome.val(); var email = $("#email"); var emailPost = email.val(); $.post("/servletHTTP/servletHTTP", { matricula: matriculaPost, nome: nomePost, email: emailPost }, function (data) { //$("#resposta").html(data); alert("Oi"); } , "html"); }); });

obrigado pela atenção.

7 Respostas

drsmachado

E qual o erro que acusa?
Qual a estrutura de diretórios?

S

Não acusa erro. Simplesmente não acontece nada.
Estou utilizando VS2010 para criar a página HTML5 + jQueryMobile + jQuery + Servlet para tratar as informações (banco de dados) .
Sou iniciante neste assunto, mas a página e a servlet estão Ok!.
Não entendi a pergunta sobre a estrutura de diretórios.
Ai vai o web.xml da servlet:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>servletHTTP</servlet-name> <servlet-class>servletHTTP</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletHTTP</servlet-name> <url-pattern>/servletHTTP</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>

drsmachado

E tentando o bom e velho Teste

S
Assim chamou a página: Clique aqui e veja A servlet está assim:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //processRequest(request, response);
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        //pega parâmetros
        String matricula = null;
        String nome = null;
        String email = null;
        matricula = request.getParameter("matricula");
        nome = request.getParameter("nome");
        email = request.getParameter("email");

        out.println("Olá jQuery, eu sou a Servlet!!!");
        out.close();

        processRequest(request, response);
    }
drsmachado

Assim vai chamar, o que eu perguntei é a chamada sem passar o caminho completo.

<a href="/sei_la_qual_o_nome_da_servlet">SEM HTTP://LOCALHOST</a>

E, perceba como você colocou a url-pattern e como colocou a chamada na função jQuery (não tem coisa demais na função?).

Sei lá, amigo, acho que você está errando coisa pouca aí…

S

Sem o caminho completo não chama.
neste endereço tem uma explicação que vai de encontro com o que você pensa:
http://javafree.uol.com.br/topic-880850-como-faco-pra-chamar-o-meu-servlet-por-post-do-jQuery.html
Não sei o que pode ser, segui o exemplo e não chama.
Vou continuar estudando.
Outra coisa, usando da forma abaixo, funciona:

<form name="form1" id="form1" action="http://localhost:8080/servletHTTP/servletHTTP" method="post"> <div data-role="fieldcontain"> <label for="name">Matrícula</label> <input type="number" name="matricula" id="matricula" value="" /> </div> <div data-role="fieldcontain"> <label for="name">Nome</label> <input type="text" name="nome" id="nome" value="" /> </div> <div data-role="fieldcontain"> <label for="name">email</label> <input type="text" name="email" id="email" value="" /> </div> <div data-role="fieldcontain"> <button type="submit" id="a" data-theme="c">Calcula</button> </div> </form>

S

utilizando a IDE NetBeans para criar o HTML funcionou utilizando o caminho completo:

$.post("http://localhost:8080/servletHTTP/servletHTTP", { matricula: matriculaPost, nome: nomePost, email: emailPost }, function (data) { $("#resposta").html(data); } , "html");

Mas utilizando o VS2010 para construir o HTML, não funciona de jeito nenhum de várias formas:
http://localhost:8080/servletHTTP/servletHTTP”,
“servletHTTP/servletHTTP”
“servletHTTP/”

para mim ficou bom,
mas se alguém puder me ajudar para funcionar no VS2010. É só para não ficar com dúvidas.
Obrigado pela força.

Criado 8 de junho de 2011
Ultima resposta 8 de jun. de 2011
Respostas 7
Participantes 2