【问题标题】:Jsp is only displaying the headers of my mySQL table not the content of themJsp 只显示我的 mySQL 表的标题而不是它们的内容
【发布时间】:2020-01-02 04:30:06
【问题描述】:

我正在尝试使用 JSP、MySQL、Servlet 和 DAO 在数据库和网站之间建立连接。连接已建立,但仅显示表的标题,而不显示数据。使用 IntelliJ Idea 作为 IDE。

连接已建立,但仅显示标题数据似乎没有被传输,因为所有值都被其默认值替换。

这是 Filme 对象,其他属性确实有 getter 和 setter 以及试图缩短。

package Filme;

public class Film {
    private int idFilme;
    private String Titel;
    private int Laenge;
    private  int Erscheinungsjahr;
    private String Hauptdarsteller;
    private String Produzent;
    private String Studio;
    private String Regiesseur;
    private String Produktionsland;
    private String Cover;
    private String Trailer;

    public int getIdFilme() {
        return idFilme;
    }

    void setIdFilme(int idFilme) {
        this.idFilme = idFilme;
    }

    public String getTitel() {
        return Titel;
    }

    void setTitel(String titel) {
        Titel = titel;
    }



    public int getErscheinungsjahr() {
        return Erscheinungsjahr;
    }

    void setErscheinungsjahr(int erscheinungsjahr) {
        Erscheinungsjahr = erscheinungsjahr;
    }


    @Override
    public String toString() {
        return "Film{" +
                "idFilme=" + idFilme +
                ", Titel='" + Titel +
                ", Laenge=" + Laenge +
                ", Erscheinungsjahr=" + Erscheinungsjahr +
                ", Hauptdarsteller='" + Hauptdarsteller  +
                ", Produzent='" + Produzent  +
                ", Studio='" + Studio  +
                ", Regiesseur='" + Regiesseur  +
                ", Produktionsland='" + Produktionsland  +
                ", Cover='" + Cover +
                ", Trailer='" + Trailer +
                '}';
    }

这是 Film 对象的 Dao,它建立连接并检索数据。出于某种原因,IDE 认为 Filme.Film 的导入未使用,即使我稍后使用该类中的属性。

package Filme;

import Filme.Film;
import java.sql.*;

public class FilmDao {
    public Film getFilm(int idFilme)
    {
        Film a = new Film ();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/filme","root", "root" );
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select * from filme.filme where idFilme=" + idFilme);
            if (rs.next())
            {
                a.setIdFilme(rs.getInt("idFilme"));
                a.setTitel(rs.getString("Titel"));
                a.setErscheinungsjahr(rs.getInt("Erscheinungsjahr"));
            }
        }
        catch (Exception e){System.out.println(e);}

        return a;
    }
}

这是 Servlet。同样的,Film 和 FilmDao 进口显然没有使用。

package Filme;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import Filme.Film;
import Filme.FilmDao;

public class getFilme extends HttpServlet {
    protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        int idFilme = Integer.parseInt(request.getParameter("idFilme"));
        FilmDao dao=new FilmDao();
        Film a1 = dao.getFilm(idFilme);

        request.setAttribute("Film", a1);

        RequestDispatcher rd = request.getRequestDispatcher("Film_fein.jsp");
        rd.forward(request, response);
    }
}

捕获要显示的电影 ID 的页面。 Film_grob.jsp

<%@ page import="Filme.Film" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FML</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
   <%
       Film a1 = (Film)request.getAttribute("Film");

       out.println(a1);
   %>
</body>
</html>

应该显示数据的页面 (Film_fein.jsp)

<%@ page import="Filme.Film" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FML</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
   <%
       Film a1 = (Film)request.getAttribute("Film");

       out.println(a1);
   %>
</body>
</html>

我希望输出是表头和表数据,但只显示表头和默认值。 提前感谢您能给我的任何帮助。

【问题讨论】:

    标签: mysql jsp servlets dao


    【解决方案1】:

    显然我使用了错误的驱动程序并将其存储在错误的位置,但代码工作正常。

    请务必像聪明人一样通过 maven 添加驱动程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多