首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ArrayList从数据库中检索数据并将其显示在JSP中

问使用ArrayList从数据库中检索数据并将其显示在JSP中
EN

Stack Overflow用户
提问于 2015-08-28 03:37:24
回答 4查看 18.1K关注 0票数 0

使用的MySQL DB服务器。数据库名:library,表名:book。表中包含具有给定类型和顺序的以下列:

title(varchar), author(varchar), book_id(int)- primary key, count (int), favs (int).

我想在servlet和JSP中使用ArrayList查看该表的所有记录。下面是我的代码: ViewBook (servlet)

代码语言:javascript
复制
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);
    }
}

}

Package p1包含以下类:

Book.java

代码语言:javascript
复制
package p1;

public class Book
{
    public int bookFavs,bookID, bookCopies;
    public String bookTitle;
    public String bookAuthor;

}

将请求分派到的JSP - view_book.jsp:

代码语言:javascript
复制
<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不工作。我知道这是个模糊的问题。请指出所犯的错误。如果可能的话,还有解决方案!

EN

回答 4

Stack Overflow用户

发布于 2015-08-28 05:29:54

无法编译JSP文件,因为ArrayList需要导入指令:

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*" %>
票数 0
EN

Stack Overflow用户

发布于 2015-08-28 13:50:26

你必须在你的JSP中导入你的Book、ArrayList和Iterator。否则,您的JSP文件将无法编译。

您可以使用,来导入多个类,而不是像java中那样使用;。如果你指定了;,那么你的JSP将抛出异常。

代码语言:javascript
复制
<%@ page import="java.util.ArrayList,java.util.Iterator, p1.Book" %>
票数 0
EN

Stack Overflow用户

发布于 2016-07-25 17:47:28

在jsp中导入ArrayList类的Import java.util.*;。然后,还要导入所需的类,例如Book类。应该能行得通。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32258069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档