Como recuperar valor do input?

9 respostas
B

Ola pessoal.
Esta é minha primeira mensagem no forum.
Estou iniciando em java… venho do php.
Minha duvida eh a seguinte:

/*
 * Created on 08/12/2004
 */
package pesquisa;

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

public class PesquisaVaga extends HttpServlet{
	
	public Connection con = null;
	public Statement stm;
	public String array[];
	public List resultado = null;
	public String palavra = null;

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
		palavra = request.getParameter("palavra");
	}
		
	//abre conexao com o banco de dados
	public PesquisaVaga(){
		try{
			Class.forName("org.gjt.mm.mysql.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/banco","root","root");
			stm = con.createStatement(); 

			String SQL = "select bla,bla,bla";
			ResultSet rs = stm.executeQuery(SQL);
			
			List lista = new ArrayList();
			
			while(rs.next()){
                String[] colunas = new String[3];
                colunas[0] = rs.getString("id");
                colunas[1] = rs.getString("titulo")+ " [" + palavra + "]";
                colunas[2] = rs.getString("descricao");
                lista.add(colunas);				
			}
			resultado = lista;
		
		}
		catch(Exception e){
		}
	}
	  
	public List getPesquisa(){
		return resultado;
	}
	
}

seguinte:
nao estou conseguindo passar o valor do campo
para o servlet.

jsp:

<%@page contentType="text/html"%>
<%@page import="java.util.*" %> 
<jsp:useBean id="con" class="pesquisa.PesquisaVaga" scope="request"/>

<html>
<body>
<style>
table{ font:12px verdana; }
</style>

	<table cellpadding="1" cellspacing="1" border="0" width="100%">
		<tr>
			<td>
			<FORM NAME="LOGIN" ACTION="pesquisaVaga.jsp" METHOD="POST">>
					Pesquisar vaga: <input type="text" id="palavra" value="testepalavra">
					<input type="submit" value="Pesquisar">
				</form>
			</td>
		</tr>
		<tr><td><br><br></td></tr>

		<%
		List tabela = con.getPesquisa();
		for(int i = 0, n = tabela.size(); i < n; i++) {
			String value[] = (String[])tabela.get(i);
		%>
	        
			<tr>
	            <td><b><%=value[1]%></b></td>
	        </tr>
			<tr>
				<td><%=value[2]%></td>
			</tr>
			<tr><td><br><br></td></tr>
		<%
		}
		%>
				
	</table>

</body>
</html>

9 Respostas

danieldestro

Ao invés de:

<input type=“text” id=“palavra” value=“testepalavra”>

use:

<input type=“text” name=“palavra” value=“testepalavra”>

B

Continua retornando null…
Obrigado

danieldestro

Então você errou em algum ponto aí. Verifica o nome do campo e o nome do parâmetro que você recupera no Servlet.

DICA: O Seu Servlet (ou HttpServlet) nunca deve implementar o construtor. Ao contrário, coloca a implementação no método init().

B

Nao entendi a dica… post um exemplo pleeeeasseeee !!! :slight_smile:

danieldestro
/*
 * Created on 08/12/2004
 */
package pesquisa;

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

public class PesquisaVaga extends HttpServlet{
	
	public Connection con = null;
	public Statement stm;
	public String array[];
	public List resultado = null;
	public String palavra = null;

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
		palavra = request.getParameter("palavra");
	}
		
	//abre conexao com o banco de dados
	public void init(ServletConfig config) throws ServletException {
		try{
			Class.forName("org.gjt.mm.mysql.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/banco","root","root");
			stm = con.createStatement(); 

			String SQL = "select bla,bla,bla";
			ResultSet rs = stm.executeQuery(SQL);
			
			List lista = new ArrayList();
			
			while(rs.next()){
                String[] colunas = new String[3];
                colunas[0] = rs.getString("id");
                colunas[1] = rs.getString("titulo")+ " [" + palavra + "]";
                colunas[2] = rs.getString("descricao");
                lista.add(colunas);				
			}
			resultado = lista;
		
		}
		catch(Exception e){
		}
	}
	  
	public List getPesquisa(){
		return resultado;
	}
}
B

Entendi… mas pq isso ???
Ahhhh continua sem funcionar… ja verifiquei o cod. esta tudo certo…
Valeu !!!

ERRO:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NullPointerException
	org.apache.jsp.pesquisaVaga_jsp._jspService(pesquisaVaga_jsp.java:75)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
danieldestro

Esse erro parece ser de um JSP e não de um Servlet. Veja direito.

E sobre usar o método init() ao invés do Construtor. Isso está em todas as literaturas sobre o assunto. Não sei bem o porquê.

B

OK… vou dar uma pesquisada.
Mas é estranho… java.lang.NullPointerException… parece nao estar retornando nada ou fazendo alguma requisicao errada…

danieldestro

Dá uma olhada no arquivo pesquisaVaga.jsp.

Criado 9 de dezembro de 2004
Ultima resposta 9 de dez. de 2004
Respostas 9
Participantes 2