Pertama buat kelas Javabean yang mewakili satu baris tabel. Saya tidak tahu data apa yang Anda bicarakan, tetapi mari kita gunakan User
sebagai contoh dunia nyata:
public class User {
private Long id;
private String name;
private Integer age;
// Add/generate public getters and setters.
}
Di atas tentu saja adalah contoh. Anda perlu memberi nama kelas dan properti yang sesuai dengan apa yang diwakili oleh data aktual.
Sekarang buat kelas DAO yang melakukan tugas interaksi basis data yang diinginkan dengan bantuan JDBC. Anda hanya perlu memastikan bahwa Anda memiliki driver SQL Server JDBC yang benar di classpath. Saya dapat merekomendasikan jTDS untuk ini karena jauh lebih baik dan lebih cepat daripada driver JDBC Microsoft sendiri. Oke, anggap saja Anda ingin membuat daftar semua User
s yang memiliki age
yang sama :
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;
}
Sekarang buat kelas Servlet UsersServlet
yang melakukan pra-pemrosesan data di doGet()
metode.
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);
}
Petakan servlet ini di web.xml sebagai berikut:
<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>
Perhatikan <url-pattern>
, Anda dapat menjalankan servlet ini dengan http://example.com/context/users
.
Sekarang buat file JSP users.jsp
yang Anda tempatkan di WEB-INF
folder sehingga tidak ada yang bisa langsung mengaksesnya tanpa menggunakan servlet. Anda dapat menggunakan JSTL c:forEach
untuk mengulangi 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>
Jalankan dengan http://example.com/context/users
. Seharusnya begitu.