2015-08-27 2 views
0

Используется сервер MySQL DB. Название базы данных: library, имя таблицы: book. таблица содержит следующие столбцы с заданным типом и порядок:Извлечение данных из базы данных с использованием ArrayList и отображение их в JSP

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

Я хочу, чтобы просмотреть все записи этой таблицы, используя ArrayList в servlet и JSP. Вот мои коды: ViewBook ​​(сервлет)

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); 
    } 
} 

}

Пакет p1 содержит следующий класс:

Book.java

package p1; 

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

} 

СПЯ, к которому запрос отправляется-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> 

Сервлет и JSP не работают. Я знаю, что это неопределенный вопрос. Пожалуйста, укажите ошибки. И решения, если это возможно!

+1

Что такое "не работает"? Есть ли ошибки в журнале сервера? Ошибки на дисплее? Неверный выход? – RealSkeptic

+0

Нам нужно знать точные ошибки, с которыми вы имеете дело, поэтому мы можем помочь. Вы подключаетесь к БД, но не получаете неправильную информацию? – Sterls

+0

java.lang.ClassNotFoundException: org.apache.jsp.view_005fbook_jsp исключение: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.view_005fbook_jsp \t org.apache.jasper.servlet. JspServletWrapper.getServlet (JspServletWrapper.java:176) \t org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:375) \t org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:396) –

ответ

0

файл JSP не могу собрать, потому что ArrayList нужна директива импорта:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ page import="java.util.*" %> 
0

Вы должны импортировать Book и ArrayList и Iterator в вашем JSP. В противном случае ваш файл JSP не будет компилироваться.

вы можете импортировать несколько классов, используя , вместо ; как в java. Если вы укажете ;, то вы получите JSP Исключение.

<%@ page import="java.util.ArrayList,java.util.Iterator, p1.Book" %> 
0

Import java.util.*; импортировать ArrayList класс в СПЯ. Затем также импортируйте требуемые классы, например. класс Book тоже. Он должен работать.

0

Проблема довольно проста: вы не выполняете сервлет в любое время. Вы должны вызвать сервлет из другого .jsp, затем внутри этого сервлета вызовите другой jsp.

Смежные вопросы