Помогите плиз!!!
Есть какая-нибудь страница (допустим index.jsp), на которой должны выводить блоки с информацией. Конкретнее - нужно сделать комбо бокс со списком -все возможные значения одного поля базы данных. Я знаю как эту информацию выгрузить с помощью запроса из БД, через Java Servlet. Но как сделать, чтобы просто при запуске tomcata на первой же странице был этот комбо бокс не понимаю. Т.е. хотелось бы чтобы когда заходишь на страницу, инфа сама вытаскивалась из БД и выводилась в jsp.
Это очень плохая идея, так как нарушает принцип разделения кода и данных, но это возможно:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<html>
<head>
<title>Hello, SQL!</title>
</head>
<body>
<sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:postgresql://localhost/some_database"
user="username" password="password"/>
<sql:query dataSource="${dataSource}" var="resultSet">
select id, name from some_table;
</sql:query>
<select>
<c:forEach var="row" items="${resultSet.rows}">
<option value="${row.id}">${row.name}</option>
</c:forEach>
</select>
</body>
</html>
Более разумный способ - использование вспомогательного объекта:
package com.example;
public class OptionsBean implements Serializable {
private static final String SQL_QUERY = "select name from some_table;";
private List<String> options;
public OptionsBean() {
options = new ArrayList<>();
try (Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost/some_database","username","password")) {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(SQL_QUERY);
while (rs.next()) {
options.add(rs.getString("name"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public String getOptions(){
return options;
}
}
И тогда в коде страницы:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Hello, SQL!</title>
</head>
<body>
<jsp:useBean id="optionsBean" class="com.example.OptionsBean" />
<select>
<c:forEach var="option" items="${optionsBean.options}">
<option>${option}</option>
</c:forEach>
</select>
</body>
</html>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сгенерировать таблицу, с необходимым количеством столбцов, равным количеству элементов массива?
ЗдравствуйтеПишу дипломный проект, после проверки получил замечание что в моём случае lazy не будет работать
Необходимо при нажатии кнопки на форме изменять значение primaryStagesetTitle();
Как в активити подгружать один из фрагментов? Имеется три LinearLayout ,каждый из которых содержит несколько элементов, мне необходимо из активити...