close

Вход

Забыли?

вход по аккаунту

?

Doroshin zhava7

код для вставкиСкачать
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
"Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых"
(ВлГУ)
Кафедра "Вычислительная техника"
Лабораторная работа №7
"Сервлеты и JavaServer Pages (JSP)"
по дисциплине:
"Программное обеспечение распределенных вычислительных систем"
Выполнил:
ст. гр. ВТс-211
Дорошин Станислав
Принял:
Гладьо С.С.
Владимир 2013 г.
Задание
Придумать задачу для реализации ее в виде небольшого сервлета и реализовать его.
Разработать универсальный браузер БД для удаленного выполнения SQL-команд. Минимальный состав SQL-команд: INSERT, SELECT, DELETE, UPDATE.
Листинг программы
package laba7;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;
import oracle.jdbc.*;
import java.util.Locale;
import java.sql.Connection;
import java.sql.DriverManager;
public class stason_laba7 extends HttpServlet {
//final static String connString = "jdbc:oracle:thin:stasondb/666999@localhost:1521:XE";
final static String connString = "jdbc:oracle:thin:@localhost:1521:XE";
private static final String CONTENT_TYPE = "text/html; charset=windows-1251";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public static Connection dbConnect() {
Locale.setDefault(Locale.ENGLISH);
Connection conn = null;
try {
//OracleDataSource ods = new OracleDataSource();
//ods.setURL(connString);
//conn = ods.getConnection();
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(connString, "stasondb","666999");
// "jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass"
//System.out.println("Connection string: \'" + connString + "\'");
} catch(Exception e) {
//System.out.println("Any problem with driver: " + e);
//System.exit(1);
}
return conn;
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
String color = request.getParameter("color");
String sqlquery = request.getParameter("sqlquery");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>stason_laba7</title><style>.table_class { border: 1px outset gray;border-collapse: separate;border-spacing: 2px; }</style></head>");
out.println("<body style='background-color: " + request.getParameter("color") + ";'>");
if (sqlquery != null && sqlquery.length() > 0)
{
String errorMsg = null;
try {
errorMsg = "Query error.";
Connection conn = dbConnect();
Statement stmt = conn.createStatement();
// get query type
int indexOfSelect = sqlquery.toLowerCase(Locale.US).indexOf("select");
if ( (0 <= indexOfSelect) && (indexOfSelect <= 4) ) {
ResultSet query = stmt.executeQuery(sqlquery);
out.println("<h2>Query result:</h2>");
ResultSetMetaData metadata = query.getMetaData();
int numberOfColumns = metadata.getColumnCount();
out.println("Columns: " + numberOfColumns);
out.println("<table class='table_class'><tr>");
// output table header
for (int i = 1; i <= numberOfColumns; i++)
{
out.println("<td class='table_class'>" + metadata.getColumnName(i) + "</td>");
}
out.println("</tr>");
while (query.next())
{
out.println("<tr>");
for (int i = 1; i <= numberOfColumns; i++)
{
out.println("<td class='table_class'>" + query.getString(i) + "</td>");
}
out.println("</tr>");
}
out.println("</table>");
}
else
{
int rowsCount = stmt.executeUpdate(sqlquery);
out.println("Rows updated: " + rowsCount + "<br/>");
}
conn.close();
} catch (SQLException ex) {
out.println("<div style='color: red;'>SQL error: " + errorMsg + "<br/>" + ex + "</div>");
ex.printStackTrace();
}
}
out.println("<hr/><form action=''>Select background color:<br/><input style='width:100%;' name='color' value='" + color + "' />");
out.println("<br/>Enter SQL query:<br/><input style='width:100%;' name='sqlquery' value='" + sqlquery + "' /><br/><input type='submit' /></form><br/>select example: SELECT TaxiPark.Id, TaxiPark.ParkName, Autos.id, Autos.AutoName FROM TaxiPark, Autos WHERE TaxiPark.Id = Autos.park_id ORDER BY TaxiPark.Id ASC<br/>update example: update \"TAXIPARK\" set \"PARKNAME\"='taxi troi4kaaaa2' where \"ID\"=2");
out.println("</body></html>");
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>stason_laba7</title></head>");
out.println("<body>");
out.println("<p>The servlet has received a POST. This is the reply.</p>");
out.println("</body></html>");
out.close();
}
}
Пример вывода программы
Выполнение запроса:
SELECT TaxiPark.Id, TaxiPark.ParkName, Autos.id, Autos.AutoName FROM TaxiPark, Autos WHERE TaxiPark.Id = Autos.park_id ORDER BY TaxiPark.Id ASC
Результат:
Выполнение запроса:
update "TAXIPARK" set "PARKNAME"='testing' where "ID"=2
Результат
Выполнение ошибочного запроса:
select * frm tbl1
Результат:
Краткое описание программы "Универсальный броузер БД"
На стартовой странице приложения предлагается ввести SQL-запрос. После запроса необходимо нажать кнопку "Отправить". Если был введен запрос SELECT, то в результате будет выведена таблица, в первой строке которой будут выведены названия колонок, последующие строки - выбранные запросом записи. Если был введен запрос INSERT, UPDATE или DELETE, то будет выведена информация о количестве затронутых записей. В случае ввода ошибочного запроса, будет выведена соответствующая ошибка.
Выводы
В ходе работы были изучены сервлеты. Реализована тестовая программа для смены цвета фона страницы. Создан универсальный браузер БД для удаленного выполнения SQL-команд, реализован вывод результата выполнения команды SELECT, обработка команд INSERT, UPDATE, DELETE.
Документ
Категория
Рефераты
Просмотров
11
Размер файла
47 Кб
Теги
doroshin, zhava
1/--страниц
Пожаловаться на содержимое документа