Java 如何在JSP页面中显示数据库表
我试图将我的用户表显示在JSP页面中的一个表上。但是当我运行JSP页面时,数据没有显示 我有一个名为“eyetracker”的mySQL模式和一个名为“user”的表。谢谢你的帮助。。如果可能的话,我想使用servlet检索mySQL数据并将其显示在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
<%@ 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>