Помогите плиз!!!
Есть какая-нибудь страница (допустим 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>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости