Сначала создайте класс Javabean, который представляет одну строку таблицы. Я понятия не имею, о каких данных вы говорите, но давайте возьмем User
в качестве реального примера:
public class User {
private Long id;
private String name;
private Integer age;
// Add/generate public getters and setters.
}
Выше приведен пример. Вам необходимо дать имя классу и свойствам соответственно тому, что представляют собой фактические данные.
Теперь создайте класс DAO, который выполняет нужную задачу взаимодействия с базой данных с помощью JDBC . Вам нужно только убедиться, что у вас есть правильный драйвер JDBC для SQL Server в пути к классам. Я могу порекомендовать jTDS для этого, так как это намного лучше и быстрее, чем собственные драйверы JDBC от Microsoft. Хорошо, давайте предположим, что вы хотите перечислить все User
с одинаковыми 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;
}
Теперь создайте класс сервлета 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);
}
Отобразите этот сервлет в 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
.
Теперь создайте файл JSP users.jsp
, который вы поместите в папку WEB-INF
, чтобы никто не мог получить к нему прямой доступ без использования сервлета. Вы можете использовать JSTL c: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
. Это должно быть.