Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Po_Tp.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать

4. Сервлет, работающий с информацией из базы данных

Проверить работу сервлета example_db (исходный текст см. ниже), объяснить, что происходит в блоке try-catch. В заголовках уровня 2 генерируемого html-файла указать, какое действие происходит в каждой секции (ненужное вычеркнуть).

/*------------- Пример 1. Файл example_db.java -------------*/

package examples; // пакет для сервлета-примера

// способы вызова клиентом класса example.example_db через строку адреса окна браузера

// http://avanta.vvsu.ru/servlets/examples.example_db

// предполагается, что сервлет находится в директории сервлетов на WWW-сервере avanta.vvsu.ru

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

public class example_db extends HttpServlet

{

public void doGet (HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException

{

// передача типа генерируемого сервлетом содержимого

response.setContentType("text/html; charset=windows-1251");

// получение выходного потока для вывода генерируемого содержимого

Writer out=new BufferedWriter(new OutputStreamWriter(response.getOutputStream(),"Cp1251"));

// начало формирования результата в формате html-файла

out.write("<HTML><HEAD><TITLE>Пример сервлета</TITLE></HEAD><body>\n");

// формирование содержимого

out.write("<h1>Пример работы сервлета, использующего JDBC</h1>\n");

//------------- Что происходит в этом блоке try-catch? ------------------------

try

{

String query;

Statement stmt;

PreparedStatement pstmt;

CallableStatement cstmt;

ResultSet rset;

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

java.sql.Connection

conn=DriverManager.getConnection("jdbc:oracle:thin:@uran:1521:ORCL","scott","tiger");

// ------------------------------------------------------------------------

out.write("<h2>Результат работы <<статичного запроса,параметризированного запроса, хранимой процедуры(или функции)>>(ненужное удалить!!!)</h2>\n");

query="select CITY,COUNTRY,POPULATION from WORLD_CITIES order by COUNTRY";

stmt = conn.createStatement ();

rset = stmt.executeQuery (query);

while (rset.next ())

{

out.write("<p><font color=\"green\">");

out.write(rset.getString(2)+", "+rset.getString(1)+", "+rset.getString(3));

out.write("</font></p>\n");

}

rset.close();

stmt.close();

// ------------------------------------------------------------------------

out.write("<h2>Результат работы <<статичного запроса,параметризированного запроса, хранимой процедуры (или функции)>>(ненужное удалить!!!)</h2>\n");

query="select CITY,POPULATION from WORLD_CITIES where COUNTRY=? order by CITY";

pstmt = conn.prepareStatement (query);

pstmt.setString(1,"Australia");

rset = pstmt.executeQuery ();

while (rset.next ())

{

out.write("<p><font color=\"blue\">");

out.write(rset.getString(1)+" -- "+rset.getString(2));

out.write("</font></p>\n");

}

rset.close();

pstmt.close();

// ------------------------------------------------------------------------

out.write("<h2>Результат работы <<статичного запроса,параметризированного запроса, хранимой процедуры (или функции)>>(ненужное удалить!!!)</h2>\n");

query="{?=call summa(?,?)}";

cstmt = conn.prepareCall(query);

cstmt.registerOutParameter(1,java.sql.Types.INTEGER);

cstmt.setInt(2,7);

cstmt.setString(3,"8");

cstmt.executeUpdate();

int res=cstmt.getInt(1);

out.write("<p><font color=\"teal\">Итог ..?чего?.. = "+res+"</font></p>\n");

cstmt.close();

conn.close();

}

catch(SQLException e)

{

out.write("<p>Обращение к базе данных вызвало следующее исключение: "+e.toString());

}

finally

{

// завершение формирования результата и закрытие потока

out.write("</body></html>\n");

out.flush(); out.close();

return;

}

}

}

/*--------------------------*/

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