Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSP列出数据?_Java_Jsp_Servlets - Fatal编程技术网

Java 如何使用JSP列出数据?

Java 如何使用JSP列出数据?,java,jsp,servlets,Java,Jsp,Servlets,我的lista-dados.jsp有问题: 我的Servlet: package br.com.cad.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServ

我的lista-dados.jsp有问题: 我的Servlet:

 package br.com.cad.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.com.cad.basica.Contato;
import br.com.cad.dao.ConsultaDados;

public class PesquisaCPF extends HttpServlet{
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                         throws ServletException, IOException{

        HttpSession session = request.getSession(); 
        Contato user = null;

        String cpf = request.getParameter("cpf"); 
        System.out.println(cpf);
        try {
            ConsultaDados dao = new ConsultaDados(); 
            user = dao.getContato(cpf);
        }
        catch ( Exception e ){
             System.out.println(e.getMessage()); 
        }


        if ( user == null ) {
            session.invalidate();
            request.setAttribute("msg", "CPF não encontrado");
            request.getRequestDispatcher("checa.jsp" ).forward(request, response);

        }
        else{

            session.setAttribute("user", user);
            request.getRequestDispatcher("checa.jsp" ).forward(request, response);
        }

    }

}
我的刀:

 package br.com.cad.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import br.com.cad.basica.Contato;
public class ConsultaDados extends ConnectDb{

public Contato getContato(String cpf ){

        Connection c = this.getConnection();
        PreparedStatement ps = null;
        ResultSet rs = null;
        try{


            ps = c.prepareStatement("select * from dados_cadastro where pf_cpf = ?");

            ps.setString(1, cpf);

            rs = ps.executeQuery();

            if ( rs.next() ){
                Contato user = new Contato();
                user.setEmail(rs.getString("pf_email"));
                user.setSenha(rs.getString("pf_senha"));
                user.setNome( rs.getString("pf_nome") );
                user.setSobrenome( rs.getString("pf_ultimonome") );
                user.setCpf( rs.getString("pf_cpf") );
                user.setRg( rs.getString("pf_rg") );
                //user.setDataNascimento("pf_dt_nasc");
                user.setTelefone( rs.getString("pf_telefone") );
                user.setCelular( rs.getString("pf_celular") );
                user.setSexo( rs.getString("pf_sexo") );
                user.setEndereco( rs.getString("pf_endereco") );
                user.setBairro( rs.getString("pf_bairro") );
                user.setCidade( rs.getString("pf_cidade") );
                user.setEstado( rs.getString("pf_estado") );
                user.setSangue( rs.getString("pf_sangue") );
                user.setAlergia( rs.getString("pf_alergia") );
                user.setCirurgia( rs.getString("pf_cirugia") );
                user.setDiabete( rs.getString("pf_diabete") );
                user.setSoropositivo( rs.getString("pf_soro_positivo") );
                return user;
            }
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally{
            if (rs != null ) {
                try { rs.close(); } catch (SQLException e) { ; }
                rs = null;
            }
            if (ps != null ) {
                try { ps.close(); } catch (SQLException e) { ; }
                ps = null;
            }
            if (c != null ) {
                try { c.close(); } catch (SQLException e) { ; }
                c = null;
            }
        }
        return null;
    }
}
我有一个网络表单来查看特定的数据:

    <body>
<form action="lista-dados.jsp" method="POST"> 
<label for="cpf">Busque o CPF</label>
<br>
<input type="text" id="cpf" required name="cpf">
<button type="submit">Consultar</button><...>

布斯克天然气处理厂

领事
My lista-dados.jsp:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="br.com.cad.servlet.PesquisaCPF,br.com.cad.dao.ConsultaDados" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8" />
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="dao" class="br.com.cad.dao.ConsultaDados"/>

<table>

${dao.cpf}
<tr>
<td>${user.nome}</td>
<td>${user.email}</td>
<td>${user.endereco}</td>

</tr>

</table>


</body>
</html>

在此处插入标题
${dao.cpf}
${user.nome}
${user.email}
${user.endereco}
我可以通过servlet登录到my home.jsp。我对我的lista-dados.jsp有一些疑问,当我输入cpf号码并按下提交按钮时,我得到了错误:

    exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /lista-dados.jsp at line 17

14: 
15: <table>
16: 
17: ${dao.cpf}
18: <tr>
19: <td>${user.nome}</td>
20: <td>${user.email}</td>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause

javax.el.PropertyNotFoundException: Property 'cpf' not found on type br.com.cad.dao.ConsultaDados
    javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237)
    javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214)
    javax.el.BeanELResolver.property(BeanELResolver.java:325)
    javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
    org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
    org.apache.el.parser.AstValue.getValue(AstValue.java:183)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
    org.apache.jsp.lista_002ddados_jsp._jspService(lista_002ddados_jsp.java:85)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
异常
org.apache.jasper.jaspereException:在第17行处理JSP页面/lista-dados.JSP时发生异常
14: 
15: 
16: 
17:${dao.cpf}
18: 
19:${user.nome}
20:${user.email}
堆栈跟踪:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javaservlet.http.HttpServlet.service(HttpServlet.java:728)
根本原因
javax.el.PropertyNotFoundException:在类型br.com.cad.dao.consultados上找不到属性“cpf”
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237)
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214)
属性(BeanELResolver.java:325)
getValue(BeanELResolver.java:85)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
org.apache.el.parser.AstValue.getValue(AstValue.java:183)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
org.apache.jasper.runtime.PageContextImpl.proprietaryeevaluate(PageContextImpl.java:1026)
org.apache.jsp.lista_002ddados_jsp._jsp服务(lista_002ddados_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javaservlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javaservlet.http.HttpServlet.service(HttpServlet.java:728)

使用
${dao.cpf}
意味着在类中应该有一个名为
cpf
的实例变量和一个getter方法作为
getCpf(){return this.cpf}

在您的
ConsultaDados
类中,我看不到任何名为cpf的变量。它在哪里?是在超级类中吗?@RasoulTaheri但是在我的类Contato中,我没有放在这个线程中,有一个名为cpf的变量,带有getter/setters方法。当您使用
${dao.cpf}
时,我的类consultados调用这个公共Contato getContato(字符串cpf)的实例,这意味着您有一个名为cpf的变量,它是public或hava getter method。当您使用${dao.cpf}时,它将在您的dao对象中调用
getCpf()
方法。虽然您的dao对象(ConsultaDados类)没有任何具有此名称的方法。@RasoulTaheri您有一个建议如何实现它?webservices是最好的选项或servlet?这应该是一个注释而不是答案,因为它没有提供问题的解决方案。此外,接下来,您应该使用EL和JSTL或
,不能同时使用两者,但建议您使用JSTL而不是
@LuiggiMendoza,我不明白我在lista dados中使用了什么。jsp@LuiggiMendoza如何在此线程中的注释中添加一段代码?