Сетевые средства Java
d8671b56

П.3 . Сервлет, выполняющий запрос к базе Oracle i



Листинг П.3

. Сервлет, выполняющий запрос к базе Oracle i



import java.io.*; 

import javax.servlet.*; 

import javax.servlet.http.*; 

import java.util.*; 

import j ava.sql.*;

public class JdbcServlet extends HttpServlet{ static) 

try{

DriverManager.registerDriver(

new oracle.j dbc.driver.OracleDriver());
 

)catch(SQLException e){



System.err.println(e) ; 

)

private Vector results = new Vector();
 

private int n;

public void doPost(HttpServletRequest req, HttpServletResponse resp)

throws IOException{ 

ServletExceptionf String url = req.getParameter("url") , 

login = req.getParameter("login") , 

password = req.getParameter("password") , 

query = req.getParameter("query");

// Задаем MIME-тип и кодировку для выходного потока pw 

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

PrintWriter pw = resp.getWriter();
 

try{

Connection con =

DriverManager.getConnection(url, login, password);
 

Statement st = con.createStatement();
 

ResultSet rs = st.executeQuery(query);
 

ResultSetMetaData rsmd = rs.getMetaData();
 

n = rsmd.getColumnCount();
while (rs.next()){ 

String s = " "; 

for (int i = 1; i <= n; i++)

s += " " + rs.getObject(i);
 

results.addElement(s);
}

rs.close();
 

st.close();
 

con.close();
 

}catch(SQLException e){

pw.println("From doPostf): " + e) ; 

}

pw.println("<html>
<head>
<title>
Answers</titlex/head>
");
 

рw.рrintln("<body>
<h2>
Результаты 3anpoca</h2>
");
 

n = results.size();
 

for (int i = 0; i < n; i++)

pw.println((String)results.elementAt(i) + "<br>
");
 

pw.println("</bodyx/html>
") ; 

pw.flush() ; 

pw.close () ; 

}

Применение сервлета позволило "облегчить" клиент — браузер не загружает апплет, а только отправляет запрос и получает ответ. Вся обработка запроса ведется в сервлете на сервере.

В системе J2SDKEE (Java 2 SDK Enterprise Edition) HTML-файл и сервлет образуют один Web-компонент. Они упаковываются в один файл с расширением war (web archive) и помещаются в так называемый Web-контейнер, управляемый Web-сервером, расширенным средствами J2SDKEE.



Содержание раздела