Estou tentado fazer com que dados resgadatos por um servlet seja exibidos no JSP.
Como devo chamar na determanda pagina do JSP?E qual o erro neste,codigo, pois tb náo esta retornando nenhum dado!
Segue abaixo os codigos
Servlet
imports...
public class Curriculo extends HttpServlet {
Aluno a= new Aluno();
CurriculoDAO cd = new CurriculoDAO();
Curriculo curri= new Curriculo();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher view;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
// PARA BUSCA
String nome=null;
nome=request.getParameter(nome);
curri.setNome(nome);
cd.consulta(curri.getNome());
out.print(cd.nome);
}
catch(Exception e)
{
out.print(e.getMessage());
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
Metodo para a busca, no arquivo .java
public void consulta(String x)
{
try{
con = getConnection();
stmt = con.prepareStatement("select nome from teste2 where nome=?");
stmt.setString(1,n);
rs = stmt.executeQuery();
int flag=0;
if (rs.next())
{
nome = rs.getString("nome");
flag=1;
}
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:
Como você está chamando seu Servlet a partir do JSP?
Estou chamando o servlet na JSP assim:
<form action=“Curriculo” method=“Post”>
Repasse os dados da requisição para a JSP:
RequestDispatcher view = request.getRequestDispather("/suaJSP.jsp");
view.forward(request,response);
Estou tentado fazer um codigo que o servlet resgata um nome do banco de dados ( nome que seja igual a Maria)Porém nada me retorna, no jsp.Se coloco o out.println retorna, mas quando mando retornar ao JSP, não retorna.
Usei o que foi postado, mas ão esta funcionando…
package Controller;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Resgate extends HttpServlet {
private String erro;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","root");
stmt = con.prepareStatement("select nome from teste2 where nome=maria");
stmt.setString(1,n);
rs = stmt.executeQuery();
String nome;
int flag=0;
if (rs.next())
if(flag==0)
{
request.setAttribute("nome",rs.getString("nome"));
RequestDispatcher view= request.getRequestDispatcher("/index.jsp");
view.forward(request, response);
flag=1;
}
if (flag==1)
{
erro="Nao Encontrado";
}
}
catch(Exception e)
{
erro = e.getMessage();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
JSP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<% String dado = request.getParameter("nome");%>
<body>
<form action="Resgate" method="Post">
<h1>JSP Page</h1>
<%=dado%>
<input name="confirmar" type="submit" id="confirmar" value="Confirmar!">
</form>
</body>
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:
Você já tentou debugar para saber se está retornando os dados do banco?
Utilize EL (${}) no lugar de expressões ( <%= %>).
Quando usava <%= dado %> retornava null.
Porem usando ${dados} náo retorna nada.
Pelo que observei, fazendo alguns testes, o <% String dado = request.getParameter(“nome”);%> náo esta resgatando o que o servlet esta enviando.
Então você tem que verificar (via debug) se está retornando os dados do banco corretamente.