Читать «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 или request или session или application" ]

Класс компонента

/>

"Имя экземпляра компонента" id определяет имя JavaBean, уникальное в заданной атрибутом scope области. По умолчанию принимается область page — текущая страница JSP и включенные в нее страницы.

Компонент хранится как атрибут контекста указанной атрибутом scope области и вызывается методом getAttribute () соответствующего контекста.

□ Если атрибут scope равен "page", то компонент хранится как один из атрибутов объекта класса PageContext.

□ Если атрибут scope равен "request", то компонент хранится как атрибут объекта типа

ServletRequest.

□ Если атрибут scope равен "session", то компонент будет атрибутом объекта типа

HttpSession.

□ Наконец, если атрибут scope равен "application", то компонент станет атрибутом типа ServletContext.

Определенное в атрибуте id имя используется при обращении к свойствам и методам компонента JavaBean. Обязательный атрибут "класс компонента" описывается одним из трех способов:

□ class="полное имя класса" [ type="полное имя суперкласса" ]

□ beanName="полное имя класса или выражение JSP"

type="полное имя суперкласса"

□ type="полное имя суперкласса"

При обращении к компоненту JavaBean в теле элемента можно задавать и другие элементы.