Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JAVA.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
509.86 Кб
Скачать

Скриплеты jsp

Если вы хотите сделать что-то большее чем просто вставку выражений, то скриплеты JSP дадут вам возможность вставить любой код в метод сервлета, который будет создан при обработке данной страницы. В данном случае Вы можете использовать большинство конструкций Java. Скриплеты также имеют доступ к тем же заранее определённым переменным, что и выражения. Поэтому, например, если вы хотите вывести что-нибудь на страницу, вы должны использовать заранее определённую переменную out.

<%

String queryData = request.getQueryString();

out.println("Дополнительные данные запроса: " + queryData);

%>

Обратите внимание на то, что код внутри скриплета вставляется в том виде, как он был записан, и весь статический HTML (текст шаблона) до или после скриплета конвертируется при помощи оператора print. Например, следующий фрагмент JSP содержит смешанный текст шаблона и скриплета:

<% if (Math.random() < 0.5) { %>

<B>Удачного</B> вам дня!

<% } else { %>

<B>Неудачного</B> вам дня!

<% } %>

После преобразования скриплета код будет выглядеть следующим образом:

if (Math.random() < 0.5) {

out.println("<B>Удачного</B> вам дня!");

} else {

out.println("<B>Неудачного</B> вам дня!");

}

Это означает, что скриплеты не обязательно должны содержать завершённые фрагменты Java, и что оставленные открытыми блоки могут оказать влияние на статический HTML вне скриплета.

Директивы jsp

JSP страница может послать сообщение соответствующему контейнеру с указаниями какие действия необходимо провести. Эти сообщения называются директивами. Все директивы начинаются с <%@, затем следует название директивы и один или несколько атрибутов со значениями, и заканчиваются %>. Директивы в JSP странице приводят к тому, что контейнер пошлёт заявку на исполнение определённой службы, которая в генерированном документе не объявляется. Форму записи директив можно изобразить следующим образом:

<%@ директива атрибут="значение" %>

Вы также можете объединить установку нескольких атрибутов для одной директивы:

<%@ директива атрибут1="значение1"

атрибут2="значение2"

...

атрибутN="значениеN" %>

Существует три основных типа директив: page, которая позволяет вам совершать такие операции, как импорт классов, изменение суперкласса сервлета, и т. п.; include, которая даёт вам возможность вставить файл в класс сервлета при трансляции JSP файла в сервлет; и taglib, позволяющий расширить множество тегов своими собственными, которые JSP контейнер способен истолковать.

24. JDBC.

JDBC (англ. Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql, входящего в состав Java SE.

JDBC основан на концепции так называемых драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Драйверы могут загружаться динамически (во время работы программы). Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер отвечает.

JDBC API содержит два основных типа интерфейсов: первый — для разработчиков приложений и второй (более низкого уровня) — для разработчиков драйверов.

Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection.

Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.

Существуют следующие виды типов Statement, различающихся по назначению:

  • java.sql.Statement — Statement общего назначения;

  • java.sql.PreparedStatement — Statement, служащий для выполнения запросов, содержащих подставляемые параметры (обозначаются символом '?' в теле запроса);

  • java.sql.CallableStatement — Statement, предназначенный для вызова хранимых процедур.

Интерфейс java.sql.ResultSet позволяет легко обрабатывать результаты запроса.

Преимуществами JDBC считают:

  • Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает;

  • Код не меняется, если компания переходит на другую базу данных;

  • Не нужно устанавливать громоздкую клиентскую программу;

  • К любой базе можно подсоединиться через легко описываемый URL.

Примеры кода

Данный пример использует свободный драйвер JDBC для MySQL, который легко устанавливается в большинстве дистрибутивов Linux через стандартные репозитории.

JDBC для MySQL

package javaapplication1;

import java.sql.*;

public class Main {

public static void main(String[] args) throws SQLException {

/**

* эта строка загружает драйвер DB.

* раскомментируйте если прописываете драйвер вручную

*/

//Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/db_name",

"user", "password");

if (conn == null) {

System.out.println("Нет соединения с БД!");

System.exit(0);

}

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM users");

while (rs.next()) {

System.out.println(rs.getRow() + ". " + rs.getString("firstname")

+ "\t" + rs.getString("lastname"));

}

/**

* stmt.close();

* При закрытии Statement автоматически закрываются

* все связанные с ним открытые объекты ResultSet

*/

stmt.close();

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]