Java 使用ArrayList从数据库检索数据并在JSP中显示
使用MySQL数据库服务器。数据库名称:library,表名称:book。 表包含具有给定类型和顺序的以下列: titlevarchar, authorvarchar, 图书标识-主键, 计数int, favs int 我想在servlet和JSP中使用ArrayList查看该表的所有记录。 这是我的密码: ViewBookservletJava 使用ArrayList从数据库检索数据并在JSP中显示,java,mysql,jsp,servlets,arraylist,Java,Mysql,Jsp,Servlets,Arraylist,使用MySQL数据库服务器。数据库名称:library,表名称:book。 表包含具有给定类型和顺序的以下列: titlevarchar, authorvarchar, 图书标识-主键, 计数int, favs int 我想在servlet和JSP中使用ArrayList查看该表的所有记录。 这是我的密码: ViewBookservlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import j
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import p1.*;
public class ViewBook extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException
{
PrintWriter out=res.getWriter();
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3307/library", "root", "admin");
PreparedStatement ps=con.prepareStatement("select * from book");
ResultSet rs=ps.executeQuery();
ArrayList<Book> books=new ArrayList<Book>();
while(rs.next())
{
Book b= new Book();
b.bookID=rs.getInt(3);
b.bookTitle=rs.getString(1);
b.bookAuthor=rs.getString(2);
b.bookCopies=rs.getInt(4);
b.bookFavs=rs.getInt(5);
books.add(b);
}
req.setAttribute("bookslist",books);
con.close();
RequestDispatcher rd=req.getRequestDispatcher("/view_book.jsp");
rd.forward(req,res);
}
catch(Exception e)
{
out.println(e);
}
}
请求被分派到的JSP-view_book.JSP:
<html>
<body>
<head>
<title>
View Books
</title>
</head>
<body>
<table border=2>
<tr>
<th>Book ID</th>
<th>Title</th>
<th>Author</th>
<th>No. of copies AVAILABLE</th>
<th>Number of favourites</th>
</tr>
<%
ArrayList<Book> dbooks=(ArrayList)request.getAttribute("bookslist");
Iterator it=dbooks.iterator();
while(it.hasNext())
{
Book b=(Book)it.next();
%>
<tr>
<td><%=b.bookID%></td>
<td><%=b.bookTitle%></td>
<td><%=b.bookAuthor%></td>
<td><%=b.bookCopies%></td>
<td><%=b.bookFavs%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
servlet和JSP不工作。我知道这是个模糊的问题。请指出所犯的错误。如果可能的话,还有解决方案 无法编译JSP文件,因为ArrayList需要导入指令:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*" %>
您必须在JSP中导入书籍、ArrayList和迭代器。否则您的JSP文件将无法编译
您可以使用导入多个类,而不是;就像在java中一样。如果您指定;然后您将抛出异常
<%@ page import="java.util.ArrayList,java.util.Iterator, p1.Book" %>
导入java.util.*;在jsp中导入ArrayList类。然后,也导入所需的类,例如Book类。它应该可以工作。问题很简单:您不需要随时执行servlet。您必须从另一个.jsp调用servlet,然后在该servlet内调用另一个jsp。什么不起作用?服务器日志中是否有错误?显示错误?输出错误?我们需要知道您正在处理的确切错误,以便提供帮助。您是否连接到数据库但提取了错误的信息?java.lang.ClassNotFoundException:org.apache.jsp.view\u 005fbook\u jsp exception:org.apache.jasper.jasper.jaspereexception:java.lang.ClassNotFoundException:org.apache.jsp.view\u 005fbook\u jsp org.apache.jasper.servlet.JspServletWrapper.getServletJspServletWrapper.java:176java:375 org.apache.jasper.servlet.JspServletWrapper.serviceJspServletWrapper.java:375 org.apache.jasper.servlet.JspServlet.serviceJspFileJspServlet.java:396首先,我需要知道代码在逻辑上是否正确。Servlet正在编译。Jsp不是。
<%@ page import="java.util.ArrayList,java.util.Iterator, p1.Book" %>