Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА Web-сервис.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
68.04 Кб
Скачать

2. Использование Web-сервиса

1. Создать Web-проект для клиентского приложения.

File → New → Web → Dynamic Web Project

name → Lab4_JSP

2. Добавить в проект новую JSP-страницу

ф. Project Explorer | Lab4_JSP | кл. пр. кн. мыши → выбр. New → JSP |

ф. New JavaServer Page | File name ← Default | удалить весь код элемента HTML

3. Скопировать в полученный файл весь код из файла Index. jsp из первой лабораторной работы.

4. Скопировать WSDL-файл из soap_server в папку Lab4_JSP / WebContent

5. Сгенерировать клиента Web-службы из скопированного WSDL-файла.

пр. кн. мыши на UniversityService. wsdl → New → Other

ф. New Wizard | разв. Web Services | выбр. Web Service Client → кн. Next → кн. OK

в появившемся окне уст. флажок Java proxy → кн. Finish.

Будет создан Java-прокси, который является Java-классом, способным вызывать Web-службу.

6. Открыть код файла Index. jsp

7. Подключить библиотеки для работы с базами данных и обработки XML-данных:

<%@page import="java. sql.*"%>

<%@page import="java. io.*"%>

<%@page import="java. util.*"%>

<%@ page import="javax. xml. parsers. DocumentBuilderFactory"%>

<%@ page import="javax. xml. parsers. DocumentBuilder"%>

<%@ page import="org. w3c. dom.*"%>

<%@ page import="javax. xml. parsers.*"%>

<%@ page import="javax. xml. transform.*"%>

<%@ page import="javax. xml. transform. dom.*"%>

<%@ page import="javax. xml. transform. stream.*"%>

8. Импортировать Java-прокси (UniversityProxy в папке uni), созданный для взаимодействия с Web-службой:

<%@page import="uni. UniversityProxy"%>

9. Создать экземпляр класса UniversityProxy для получения доступа к методам Web-службы:

UniversityProxy proxy = new UniversityProxy();

10. Создать экземпляр класса DocumentBuilderFactory:

DocumentBuilderFactory dbf = DocumentBuilderFactory. newInstance();

11. На основе класса DocumentBuilderFactory создать новый DOM-парсер:

DocumentBuilder db = dbf. newDocumentBuilder();

12. Создать экземпляр класса Reader и загрузить в него результат выполнения Web-метода faculties, преобразованный в массив данных:

Reader reader=new CharArrayReader(proxy. faculties().toCharArray());

13. Создать экземпляр класса Document – новый DOM-объект – и загрузить в него данные из Reader:

Document faculty = db. parse(new org. xml. sax. InputSource(reader));

14. Создать XML-элемент, соответствующий корневому элементу DOM-объекта faculty со всеми его дочерними элементами:

Element fac = faculty. getDocumentElement();

15. Аналогичным образом создать DOM-объекты, соответствующие данным о специальностях и группах, и создать XML-элементы, соответствующие их корневым элементам.

16. Заполнить раскрывающийся список факультетов данными из XML-элемента fac:

16.1 Задать цикл по дочерним элементам XML-элемента fac:

<%

NodeList childNodes = fac. getChildNodes();

if (childNodes!= null)

{

for (int x=0; x<childNodes. getLength(); x++)

{

16.2 В строковые переменные id и name занести значения одноименных XML-атрибутов:

NamedNodeMap facs = childNodes. item(x) .getAttributes();

String id = facs. item(0).getNodeValue();

String name = facs. item(1).getNodeValue();

%>

16.3 Определить значение переменной id как значение элемента раскрывающегося списка:

<option value="

<%

out. println(id);

%>

">

16.4 Определить значение переменной name как отображаемый текст элемента раскрывающегося списка:

<%

out. println(name);

%>

</option>

<%

}

}

%>

17. Аналогичным образом заполнить раскрывающиеся списки специальностей и групп.

18. Скопировать в проект файл Browse. jsp из первой лабораторной работы. Настроить файл на использование Web-службы soap_server и ее метода uspev для заполнения таблицы об успеваемости студентов выбранной группы (по аналогии с предыдущими пунктами).

19. Проверить работоспособность созданного Web-приложения. Для этого в окне визуальной среды Eclipse выбрать пункт меню

Project → Run as… → Run on Server