Клієнт-сервер java
Створення баз даних за допомогою стандартних бібліотек Java та клієнт-серверних програм. Основні стандартні класи і методи бібліотек SQL та swing, бібліотек, що дозволяють опрацьовувати дані СУБД та навчитись концепціям програмування мовою Java.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | украинский |
Дата добавления | 04.10.2011 |
Размер файла | 215,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Лабораторна робота
з курсу:
«Програмне забезпечення мережевих технологій»
Львів 2011
1. Короткі теоретичні відомості
java серверний мова бібліотека
Багато програмних засобів для Інтернету базуються на використанні TCP/IP протоколу. Цей протокол побудований на основі використання мережевих з'єднань - з'єднання спочатку налагоджується, потім здійснюється передача даних, а після цього з'єднання переривається. При створенні серверної програми використовується мережеве з'єднання до програм, що знаходяться на інших комп'ютерах. При з'єднанні відкривається порт з деяким стандартним номером і програма переходить в стан очікування на під'єднання клієнтських програм. При здійсненні з'єднання між клієнтом і сервером останній пропонує першому продовжити взаємодію через порт з іншим номером (ефемерним портом). Через звільнений порт зі стандартним номером будуть встановлюватись нові зв'язки. Номери портів TCP/IP призначаються комітетом IANA (Internet Assigned Numbers Authority). Стандартні номери знаходяться в діапазоні 1ч1023, ефемерні - 1024ч5000.
TCP/IP - сокети (socket) - порти комп'ютерів - використовуються для реалізації двонаправлених з'єднань між двома вузлами мережі Інтернет. Сокети дозволяють організувати взаємодію повноцінних програм і аплетів Java через мережу Internet. Це створює можливості опрацювання інформації за схемою клієнт - сервер, де в ролі сервера може виступати комп'ютер, під'єднаний до мережі, а не тільки Web-сервер. Робоча станція може виступати одночасно у ролі сервера чи клієнта.
Постановка завдання
1. Створити базу даних, що містить декілька таблиць.
2. Запрограмувати доповнення записів даних в таблицях.,
3. Запрограмувати видалення записів даних.
4. Запрограмувати фільтрацію даних.
5. Написати фрагменти програм доступу до СУБД, формування запитів, отримання таблиць - результатів запитів, перенесення результатів
6. Створити клас клієнта та сервера.
2. Хід виконання роботи
1. Код програми:
import java.io.*;
import java.net.*;
import java.sql.*;
public class hs {
// -add
public static void add (String name, String surname, String group, String institute, Statement st, PrintWriter out)
{
if (name.equals(«»)||surname.equals(«»)||group.equals(«»)||institute.equals(«»))
{
out.println («Невдалий ввід»);
}
else
{
int id_st = 0,
id_gr = 0,
id_in = 0,
count = 0;
try
{
ResultSet rs1 = st.executeQuery («Select id from student»);
while (rs1.next())
{
id_st = rs1.getInt («id»);
}
id_st+=1;
rs1 = st.executeQuery («Select id, group1 from groupdb»);
while (rs1.next())
{
if (group.equals (rs1.getString («group1»))) id_gr = rs1.getInt («id»);
count = rs1.getInt («id»);
}
if (id_gr == 0)
{
id_gr = count+1;
int rs5 = st.executeUpdate («insert into groupdb (group1, id) values ('»+group+«', ' «+id_gr+» ')»);
}
rs1 = st.executeQuery («Select id, institute1 from institute»);
while (rs1.next())
{
if (institute.equals (rs1.getString («institute1»))) id_in = rs1.getInt («id»);
count = rs1.getInt («id»);
}
if (id_in == 0)
{
id_in = count+1;
int rs4 = st.executeUpdate («insert into institute (institute1, id) values ('»+institute+«', ' «+id_in+» ')»);
}
int rs2 = st.executeUpdate («insert into student (name, surname, id) values ('»+name+«', ' «+surname+» ', ' «+id_st+» ')»);
int rs3 = st.executeUpdate («insert into main (id_st, id_gr, id_in) values ('»+id_st+«', ' «+id_gr+» ', ' «+id_in+» ')»);
}
catch (SQLException e) {System.out.println («Error»+e);}
}
out.println («exit»);
}
// -del
public static void del (String id, Statement st, PrintWriter out)
{
try {
int f=0;
ResultSet res = st.executeQuery («Select * from student where id ="+id);
while (res.next())
{
f=1;
}
if (f==1)
{
st.executeUpdate («delete from main where id_st = «+id);
st.executeUpdate («delete from student where id = «+id);
out.println («Добре»);
}
else out.println («Такого id немає в базі»);
}
catch (SQLException e) {System.out.println («Таких записів немає»);}
out.println («exit»);
}
// -vyvid
public static void vyvid (Statement st, PrintWriter out)
{
try {
ResultSet r = st.executeQuery («select * from student join groupdb join institute join main on student.id=main.id_st and groupdb.id = main.id_gr and institute.id = main.id_in»);
while (r.next())
{
out.println (r.getString («id»)+».»);
out.println (r.getString («name»)+»»);
out.println (r.getString («surname»)+»»);
out.println (r.getString («group1»)+»»);
out.println (r.getString («institute1»));
}
} catch (SQLException e) {
System.out.println («Error»+e);
}
out.println («exit»);
}
// -filtr
public static void filtr (Statement st, String tb_name, String f_name, String f_value, PrintWriter out)
{
boolean flag = true;
try {
ResultSet r = st.executeQuery («select * from student join groupdb join institute join main on student.id=main.id_st and groupdb.id = main.id_gr and institute.id = main.id_in and «+tb_name+». «+f_name+» = '»+f_value+ «'»);
while (r.next())
{
out.println (r.getString («name»)+»»);
out.println (r.getString («surname»)+»»);
out.println (r.getString («group1»)+»»);
out.println (r.getString («institute1»)+»\n»);
flag = false;
}
} catch (SQLException e) {}
if (flag) out.println («Записів не знайдено»);
out.println («exit»);
}
// -query
public static void query (String sql, String col, PrintWriter p, BufferedReader in, Statement st)
{
try
{
ResultSet res = st.executeQuery(sql);
while (res.next())
{
p.println (res.getString(col));
}
}
catch (SQLException e) {}
p.println («exit»);
}
// -short_query
public static void short_query (String sql, Statement st, PrintWriter p)
{
try
{
ResultSet res = st.executeQuery(sql);
while (res.next())
{
p.println (res.getString («id»));
p.println (res.getString («name»));
p.println (res.getString («surname»));
}
}
catch (Exception e){}
p.println («exit»);
}
// -global
static Connection conn = null;
static Statement st = null;
// -main
public static void main (String[] args) throws IOException
{
System.out.println («Welcome to Server side»);
BufferedReader in = null;
PrintWriter out= null;
ServerSocket servers = null;
Socket fromclient = null;
try {
servers = new ServerSocket(4444);
} catch (IOException e) {
System.out.println («Couldn't listen to port 4444»);
System.exit(-1);
}
try {
System.out.print («Waiting for a client…»);
fromclient= servers.accept();
System.out.println («Client connected»);
}
catch (IOException e) {
System.out.println («Can't accept»);
System.exit(-1);
}
in = new BufferedReader (new InputStreamReader (fromclient.getInputStream()));
out = new PrintWriter (fromclient.getOutputStream(), true);
String input, output;
try
{
String userName = «root»;
String password = «vonk11»;
String url = «jdbc:mysql://localhost/test»;
Class.forName («com.mysql.jdbc. Driver»).newInstance();
conn = DriverManager.getConnection (url, userName, password);
System.out.println («Database connection established»);
Statement st = conn.createStatement();
while (true)
{
input = in.readLine();
if (input.equals («vyvid»)) vyvid (st, out);
if (input.equals («add»))
{
String a = in.readLine(),
b = in.readLine(),
c = in.readLine(),
d = in.readLine();
add (a, b, c, d, st, out);
}
if (input.equals («del»))
{
String a = in.readLine();
del (a, st, out);
}
if (input.equals («filtr»)) {
String a = in.readLine(),
b = in.readLine(),
c = in.readLine();
filtr (st, a, b, c, out);}
if (input.equals («query»))
{
String a = in.readLine(),
b = in.readLine();
query (a, b, out, in, st);
}
if (input.equals («short»))
{
String a = in.readLine();
short_query (a, st, out);
}
}
}
catch (Exception e) {System.out.println («Error» + e);}
out.close();
in.close();
fromclient.close();
servers.close();
}
3. Протокол виконання програми
Размещено на Allbest.ru
Подобные документы
Історія розвитку мови Java, основні технології та їх застосування для роботи з SQL-серверами. Огляд багатопоточного програмування в Java. Принципи функціонування сервлетів та JSP-сторінок. Зміна розміру графічних об’єктів, робота з кольорами в Java.
курсовая работа [49,3 K], добавлен 29.03.2010Розробка та тестування додатків, які базуються на елементах мови програмування Java, принципи програмування в її середовищі. Вивчення переваг Java-платформи, прикладний програмний інтерфейс та особливості сучасних засобів створення Java-додатків.
дипломная работа [2,8 M], добавлен 22.06.2011Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Общее понятие о пакете "java.net". Логическая структура соединений через сокеты. Создание объекта Socket, соединение между узлами Internet. Способы создания потока. Алгоритм работы системы клиент-сервер. Листинг ServerForm.java, запуск подпроцесса.
лабораторная работа [174,6 K], добавлен 27.11.2013Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.
курсовая работа [502,5 K], добавлен 01.04.2016Робота з клієнт-серверними додатками на основі сокетів. Розробка програм сервера та клієнта для обробки запитів клієнта сервером. Можливості програм сервера та клієнта. Створення гри "хрестики-нулики" на основі сокетів. Програмне забезпечення сервера.
лабораторная работа [181,8 K], добавлен 23.05.2015Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.
реферат [54,8 K], добавлен 09.09.2015Загальна характеристика та особливості програмування сучасних систем автоматизованого проектування. Порівняльна характеристика середовищ розробки прикладних програм на мові JAVA. Ознайомлення з принципами і особливостями роботи певних класів, компонентів.
курсовая работа [2,0 M], добавлен 31.01.2014Сучасний стан автоматизації бібліотек різних статусів. Основні шляхи інтеграції інформаційних технологій в систему шкільних бібліотек. Проблеми створення комп'ютеризованих читальних залів. Етапи впровадження довідково-інформаційного обслуговування.
курсовая работа [52,7 K], добавлен 15.03.2011