无法使用JSP从mySQL数据库获取数据

时间:2018-06-14 18:53:56

标签: java html mysql jsp jstl

我尝试使用JSP从我的数据库中检索数据并将它们投影到html页面。我正在使用servlet scriptlet,但发现JSTL是一种更好的方式,所以我去了。问题是,编译时页面确实会返回错误:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

我尝试使用标准java从同一个数据库中获取数据并且它有效...但是在这里它没有。我的特定页面的源代码是:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="java.sql.*" %>
<%@page import="java.lang.String" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Main Menu</title>
</head>

<style>
    body {
        background-color: lightblue;
    }
</style>

<sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
                   url = "jdbc:mysql://127.0.0.1:3306/CARDATA"
                   user = "toomlg4u"/>

<sql:query dataSource = "${snapshot}">USE CARDATA;</sql:query>

<sql:query dataSource = "${snapshot}" var = "result">
    SELECT * FROM Users;
</sql:query>

<table border = "1" width = "100%">
    <tr>
        <th>ID</th>
        <th>Full Name</th>
        <th>Password</th>
        <th>Email</th>
    </tr>

<c:forEach var = "row" items = "${result.rows}">
    <tr>
        <td> <c:out value = "${row.userId}"/></td>
        <td> <c:out value = "${row.realName}"/></td>
        <td> <c:out value = "${row.userName}"/></td>
        <td> <c:out value = "${row.passWord}"/></td>
        <td> <c:out value = "${row.email}"/></td>
    </tr>
</c:forEach>
</table>

</body>
</html>

感谢所有的帮助!

P.S:这只是一个不专业的小项目。

修改

我将jconnector复制到$ CATALINA_HOME的lib文件夹,所以现在它显示了表但没有值......奇怪的是我上面的两个查询......

1 个答案:

答案 0 :(得分:1)

您尚未在文件中导入taglib

添加

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> 

到页面顶部。

此外,您的表格有5列,但只有4个标题列。

您也可以删除&lt;%@页面导入标记