2009-12-02 5 views

Répondre

2

d'abord créer une classe Javabean qui représente une ligne de la table. Je ne sais pas quelles sont les données dont vous parlez, mais nous allons prendre un User comme exemple du monde réel:

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

Ce qui précède est bien sûr un exemple. Vous devez nommer la classe et les propriétés en conséquence ce que les données réelles représentent.

Créez maintenant la classe DAO qui effectue la tâche d'interaction de base de données souhaitée à l'aide de JDBC. Vous devez uniquement vous assurer que vous avez le pilote SQL Server JDBC correct dans le chemin de classe. Je peux recommander jTDS pour cela car il est beaucoup mieux et plus rapide que les propres pilotes JDBC de Microsoft. OK, supposons que vous voulez énumérer tous les User s qui ont la même 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; 
} 

maintenant créer une classe Servlet UsersServlet qui fait le pré-traitement des données dans la méthode 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); 
} 

Plan servlet dans web.xml comme suit:

<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> 

Notez le <url-pattern>, vous pouvez exécuter cette servlet par http://example.com/context/users.

Créez maintenant un fichier JSP users.jsp que vous placez dans le dossier WEB-INF afin que personne ne puisse y accéder directement sans utiliser le servlet. Vous pouvez utiliser JSTLc:forEach pour itérer sur une 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> 

Execute par http://example.com/context/users. Cela devrait être ça.

Questions connexes