2009-12-02 70 views

回答

2

首先創建其表示表的一行一個JavaBean類。我不知道你在說什麼數據,但讓我們的User作爲現實世界的例子:

public class User { 
    private Long id; 
    private String name; 
    private Integer age; 
    // Add/generate public getters and setters. 
} 

以上是當然的一個例子。您需要相應地命名類和屬性實際數據所代表的內容。

現在創建DAO類,它在JDBC的幫助下完成所需的數據庫交互任務。您只需確保在類路徑中具有正確的SQL Server JDBC驅動程序。我可以推薦jTDS,因爲它比微軟自己的JDBC驅動更好更快。 OK,讓我們假設你想列出所有User S的具有相同age

public List<User> listByAge(Integer age) throws SQLException { 
    Connection connection = null; 
    PreparedStatement statement = null; 
    ResultSet resultSet = null; 
    List<User> users = new ArrayList<User>(); 

    try { 
     connection = database.getConnection(); 
     statement = connection.prepareStatement("SELECT id, name, age FROM user WHERE age = ?"); 
     statement.setInt(1, age); 
     resultSet = statement.executeQuery(); 
     while (resultSet.next()) { 
      User user = new User(); 
      user.setId(resultSet.getLong("id")); 
      user.setName(resultSet.getString("name")); 
      user.setAge(resultSet.getInt("age")); 
      users.add(user); 
     } 
    } finally { 
     if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {} 
     if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {} 
     if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} 
    } 

    return users; 
} 

現在創建一個Servlet類UsersServlet它確實在doGet()方法的數據預處理。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    List<User> users = userDAO.list(); 
    request.setAttribute("users", users); 
    request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response); 
} 

地圖這個servlet在web.xml如下:

<servlet> 
     <servlet-name>users</servlet-name> 
     <servlet-class>mypackage.UsersServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>users</servlet-name> 
     <url-pattern>/users</url-pattern> 
    </servlet-mapping> 

注意<url-pattern>,您可以通過http://example.com/context/users執行這個servlet。

現在創建一個JSP文件users.jsp,您將其放置在WEB-INF文件夾中,以便沒有人可以在不使用該servlet的情況下直接訪問它。您可以使用JSTLc:forEach遍歷一個List

<table> 
    <thead> 
     <tr><th>ID</th><th>Name</th><th>Age</th></tr> 
    </thead> 
    <tbody> 
     <c:forEach items="${users}" var="user"> 
      <tr><td>${user.id}</td><td>${user.name}</td><td>${user.age}</td></tr> 
     </c:forEach> 
    </tbody> 
</table> 

通過http://example.com/context/users執行它。應該是這樣的。