2011-11-28 62 views
0

我想创建一个列出我的数据库表的所有项目的Servlet。我想把这些项目放在HTML表格中。所以考虑到目前为止,我可以在我的while循环中添加HTML表格布局,并将它连接到数据库并打印所有项目?如何遍历数据库并打印表中的所有项目

import java.sql.*; 
import database.*; 

public class products 
{ 
    public static void main(String[] args) 
    { 
     DBConnections dataSource = DBConnections.getInstance(); 
     Connection conn = dataSource.getConnection(); 
     Statement stat = null; 
     ResultSet result = null; 
     try 
     { 
      stat = conn.createStatement(); 
      result = stat.executeQuery("SELECT * FROM Products"); 

      string code; 
      string item; 
      float payment; 
      while (result.next()) 
      { 
       proCode = result.get("code"); 
       item = result.get("item"); 
       payment = result.geFloat("Payment"); 
       System.out.println(proCode + "\t" + item + "\t" + payment); 
      } 
     } 
     catch (SQLException ex) 
     { 
      System.err.println("SQLException in Query.java"); 
      ex.printStackTrace(System.err); 
     } 
     finally 
     { 
      DBUtilities.closeResultSet(result); 
      DBUtilities.closeStatement(stat); 
      dataSource.freeConnection(conn); 
     } 
    } 
} 

回答

2

的漂亮和更清洁的方式来做到这一点是:

把你的数据库相关的代码和方法在不同的类例如ProductDao有在productDao.getAllProducts()方法会因为你正在使用JDBC返回List<Product>需要与数据库表映射POJO现在

上的Servlet设置的请求中的属性的产品清单

request.setAttribute("productsToDisplay", listOfProducts); 

提出这一请求,JSP这使得视图

在JSP中使用JSTL来渲染产品


0

你的代码写在一个主要的方法被锁定。那有什么好处?

Servlet是HTTP侦听器。

我认为完成你想要的东西的正确方法是把你的主要方法(改变你处理连接的方式)的代码放到servlet中。然后,您可以发出HTTP请求,通知它执行数据库查询,将响应格式化为HTML,并将其返回。你的客户端将是一个浏览器,它将简单地呈现输出流。

您可能不知道JSP和JSTL。它是Java标准模板库,可让您将动态HTML页面编写为Java Server Pages,并将其编译为servlet。

0

好的,你写的是正确的,但它不是一个servlet。

首先,你需要基础类对HttpServlet类

public class products extends HttpServlet { 

然后,而不是使用您使用doGetmaindoPost响应请求

public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws IOException, ServletException { 

也看到Jigar乔希后在producstDao上。一旦你有了这个列表,你就可以将它传递给一个JSP并生成HTML。

一个真正好的书,这是“深入浅出Servlets和JSP(经过Sun认证的Web组件开发人员考试)”由O'Reilly

您也可以发现这很有http://pdf.coreservlets.com/

有一个相当陡峭的学习曲线,这让我花了一段时间才弄清楚,但一旦你掌握了它,它的工作就很好。

相关问题