Java 如何在JSP页面中显示数据库表

Java 如何在JSP页面中显示数据库表,java,mysql,jsp,Java,Mysql,Jsp,我试图将我的用户表显示在JSP页面中的一个表上。但是当我运行JSP页面时,数据没有显示 我有一个名为“eyetracker”的mySQL模式和一个名为“user”的表。谢谢你的帮助。。如果可能的话,我想使用servlet检索mySQL数据并将其显示在JSP页面中 <%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.Statement" %> <%@ page import="java.s

我试图将我的用户表显示在JSP页面中的一个表上。但是当我运行JSP页面时,数据没有显示

我有一个名为“eyetracker”的mySQL模式和一个名为“user”的表。谢谢你的帮助。。如果可能的话,我想使用servlet检索mySQL数据并将其显示在JSP页面中

<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>

<form method="post">

<table border="2">
   <tr>
        <td>user ID</td>
        <td>Birthday</td>
        <td>Gender</td>
        <td>First Name</td>
        <td>Last Name</td>
   </tr>
   <%
   try
   {
       Class.forName("com.mysql.jdbc.Driver");
       String url="jdbc:mysql://localhost:3306/eyetracker";
       String username="root";
       String password="root";
       String query="select * from eyetracker";
       Connection conn=DriverManager.getConnection(url, username, password);
       Statement stmt=conn.createStatement();
       ResultSet rs=stmt.executeQuery(query);
       while(rs.next())
       {
   %>
           <tr><td><%rs.getInt("userID"); %></td></tr>
           <tr><td><%rs.getDate("dob"); %></td></tr>
           <tr><td><%rs.getString("gender"); %></td></tr>
           <tr><td><%rs.getString("firstName"); %></td></tr>
           <tr><td><%rs.getString("lastName"); %></td></tr>

   <%
       }
   %>
   </table>
   <%
        rs.close();
        stmt.close();
        conn.close();
   }
   catch(Exception e)
   {
        e.printStackTrace();
   }
   %>
</form>`

用户ID
生日
性别
名字
姓
`

在JSP中,如果要将动态内容添加到HTMLDOM,则需要这样做

<tr><td><%=rs.getInt("userID"); %></td></tr>
<tr><td><%=rs.getDate("dob"); %></td></tr>
<tr><td><%=rs.getString("gender"); %></td></tr>
<tr><td><%=rs.getString("firstName"); %></td></tr>
<tr><td><%=rs.getString("lastName"); %></td></tr>

Expression标记将用于在JSP页面中显示值。表达式标记转换为Java语句。但您使用的Scriptlet标记允许您在JSP服务器页面中嵌入任何有效的Java源代码

它的结果来自数据库,然后它将被正确显示

<tr><td><%=rs.getInt("userID"); %></td></tr>
<tr><td><%=rs.getDate("dob"); %></td></tr>
<tr><td><%=rs.getString("gender"); %></td></tr>
<tr><td><%=rs.getString("firstName"); %></td></tr>
<tr><td><%=rs.getString("lastName"); %></td></tr>

如果类路径中没有jdbc驱动程序,则错误会进入应用程序服务器输出,因为您有一行
e.printStackTrace()。
尝试更改:

catch(Exception e) {
   e.printStackTrace();
}
与:

catch(异常e){
e、 printStackTrace();
out.println(“错误:+e.getMessage()+”);
}

要查看jdbc驱动程序是否有问题,请更新小代码,如下所示:

%>




不仅表达式标记转换为Java,而且完整的JSP文件转换为Servlet,因此使用任意一个表达式或Scriptlet标记。

伟大的解决方案,在我的表上尝试了相同的方法,但

 <tr><td><%=rs.getString("column1") %></td
 <td><%=rs.getInt("column2") %></td></tr>

您是否检查了
结果集rs
是否有任何行?也就是说,您是否在
循环时输入了
?将查询更改为
select*from user
,并确保已将mysql jar放入
WEB-INF/lib
。您可能需要添加更改的原因和内容。这会让事情变得更清楚。
catch(Exception e) {
   e.printStackTrace();
   out.println("<h1> error: "+ e.getMessage()+"</h1>");
}
       <tr><td><%out.println(rs.getInt("userID")); %></td></tr>
       <tr><td><%out.println(rs.getDate("dob")); %></td></tr>
       <tr><td><%out.println(rs.getString("gender")); %></td></tr>
       <tr><td><%out.println(rs.getString("firstName")); %></td></tr>
       <tr><td><%out.println(rs.getString("lastName")); %></td></tr>
       <tr><td><%=rs.getInt("userID"); %></td></tr>
       <tr><td><%=rs.getDate("dob"); %></td></tr>
       <tr><td><%=rs.getString("gender"); %></td></tr>
       <tr><td><%=rs.getString("firstName"); %></td></tr>
       <tr><td><%=rs.getString("lastName"); %></td></tr>
 <tr><td><%=rs.getString("column1") %></td
 <td><%=rs.getInt("column2") %></td></tr>