Clicar em um input type=button, chamar um metodo em um servlet

5 respostas
A

COMO FAÇO PARA UM INPUT TYPE=BUTTON CHAMAR UM METODO EM UM SERVLET.

NO CASO ABAIXO QUERIA QUE O BUTTON CHAMASSE O METODO
public void atualiza(String cidade,String tipo,String numero,String votos)

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Lancar extends HttpServlet {
    Connection con;
    Statement stm;
    ResultSet res;
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String cidade=request.getParameter("cidade");
        String tipo=request.getParameter("tipo");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost/resul_eleicoes","root","");
            stm=con.createStatement();
            res=stm.executeQuery("select * from "+tipo+" where cidade='"+cidade+"'");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Lancar Votos</title>");
            out.println("</head>");
            out.println("<body bgcolor=#CDC9C9><center>");
            out.println("<h2>Lancar Votos</h2><table border='1' width='150'>");
            out.println("<table border='1' width='330'>");
            while(res.next()) {
                out.println("<tr><td><b>"+res.getString("nome")+":</b></td><td> <input type='text' name='"+res.getString("numero")+"' id='"+res.getString("numero")+"' value='"+res.getString("votos")+"' size='6' maxlength='6'></td>");
                out.println("<td><input type='button' name='"+res.getString("numero")+"' value='Atualizar'></td></tr>");
            }
            out.println("</table>");
            out.println("<br><br><a href=lancavotos.jsp>Voltar</a>");
            out.println("</center></body>");
            out.println("</html>");
        } catch (SQLException e) {
        } catch (ClassNotFoundException e) {
        } finally {
            out.close();
        }
    }
    
    public void atualiza(String cidade,String tipo,String numero,String votos) {
        try {
            stm.executeUpdate("update "+tipo+" set votos='"+votos+"' where cidade='"+cidade+"' and numero='"+numero+"'");
        } catch (SQLException e) {
        }
    }

    // <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

5 Respostas

G

ola

se vc ja configurou seu servlet no web.xml

quando o tipo é button eu faço da seguinte maneira

<input type="button" name="qqnome" value="Clique Aqui" onClick="javascript:window.location='seu_servletname'"/>

veja atende sua necessidade.

vlw

A

neste caso ai, será chamado o construtor do servlet??

se for vai ficar tranquilo resolver o resto.

G

dai tudo depende da sua tag form

na tag form vc tem um atributo chamado method … se nao tiver nada o default é get. Isso significa que seu servlet irá chamar o doGet(__ , _) … se vc colocar post. O seu servlet ira chamar o doPost( , _).

no seu caso vc colocou tanto no doGet quanto no doPost para chamar o processRequest …

J

Porque não usar type=SUBMIT ao invés do type=Button? Assim você não precisa ficar fazendo javascript para chamar o servlet.

G

dai vc colocaria o atributo action no form

&lt;form action="seu_servletname"&gt;
Criado 27 de outubro de 2008
Ultima resposta 27 de out. de 2008
Respostas 5
Participantes 3