Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 432
Ильдар Шаукатович Хабибуллин
□ page — произвольный объект класса Object;
□ exception — исключение класса Throwable.
В листинге 27.3 приведена страница JSP, использующая скриптлеты и встроенные объекты для организации запроса к базе СДО, описанной в предыдущей главе.
Листинг 27.3. Страница JSP, использующая скриптлеты
<%@ page import="java.sql.*"
contentType="text/html;charset=windows-1251" %>
<html><head><title>Запрос к базе СДО</title></head>
<body>
<h2> Здравствуйте
<%= (request.getRemoteUser() != null ? ", " + request.getRemoteUser() : "") %>!
</h2><hr><p>
<%
try{
Connection conn =
DriverManager.getConnection(
(String)session.getValue("connStr"), "sdoadmin", "sdoadmin"); Statement st = conn.createStatement ();
ResultSet rs = st.executeQuery ("SELECT name, mark " +
"FROM students ORDER BY name");
if (rs.next()){
%>
<table border=1>
<tr>
<th width=200> <1>Ученик</1> </th>
<th width=100> <Й>Оценка</С> </th>
</tr>
<tr>
<td> <%= rs.getString(1) %> </td> <td> <%= rs.getInt(2) %> </td>
</tr>
<%
while (rs.next()){
%>
<tr>
<td> <%= rs.getString(1) %> </td>
<td> <%= rs.getInt(2) %> </td>
</tr>
<%
}
%>
</table>
<%
}else{
%>
<p> Извините, но сведений нет! </p>
<%
}
rs.close(); st.close();
}catch(SQLException e){
out.println(,,<p>Cшибка при выполнении запроса:"); out.println ("<pre>" + e + "</pre>");
}
%>
</body></html>
Обращение к компоненту JavaBean
Из страницы JSP можно обращаться к объектам Java, оформленным как компоненты JavaBeans. Это выполняется тегом
<jsp:useBean id="HM#
[ scope="page
/>
"Имя экземпляра компонента" id определяет имя JavaBean, уникальное в заданной атрибутом scope области. По умолчанию принимается область page — текущая страница JSP и включенные в нее страницы.
Компонент хранится как атрибут контекста указанной атрибутом scope области и вызывается методом getAttribute () соответствующего контекста.
□ Если атрибут scope равен "page", то компонент хранится как один из атрибутов объекта класса PageContext.
□ Если атрибут scope равен "request", то компонент хранится как атрибут объекта типа
ServletRequest.
□ Если атрибут scope равен "session", то компонент будет атрибутом объекта типа
HttpSession.
□ Наконец, если атрибут scope равен "application", то компонент станет атрибутом типа ServletContext.
Определенное в атрибуте id имя используется при обращении к свойствам и методам компонента JavaBean. Обязательный атрибут "класс компонента" описывается одним из трех способов:
□ class="полное
□ beanName="
□ type="полное
При обращении к компоненту JavaBean в теле элемента можно задавать и другие элементы.