xlink:href='#Autogen_eBook_id142'/>

Рис. 4.32. Компиляция сервлета

5. Скомпилируйте сервлет, выполнив в окне командной строки команду

javac test.java

В результате компиляции в папке, где находится файл test.java, будет создан файл test.class. Этот файл и есть созданный нами сервлет.

...

Внимание!

Далее вы узнаете, как разместить и зарегистрировать сервлет в контейнере сервлетов нашей среды разработки. Если для запуска сервлета вы используете хостинг с поддержкой сервлетов, то при подключении сервлета руководствуйтесь инструкциями провайдера хостинга.

6. Скопируйте файл test.class в папку <Корневая папка Tomcat>webappsROOT

WEB-INFclasses, например C: Program FilesTomcatwebappsROOT WEB-INFclasses (если исходный файл test.java был создан в этой папке, то файл test.class уже находится в нужной папке и копирование не требуется).

...

Внимание!

Обратите внимание на регистр символов: важно, чтобы папка для размещения сервлетов называлась именно classes (не CLASSES и не Classes).

7. Откройте для редактирования (например, с помощью программы Блокнот) файл web.xml, находящийся в папке <Корневая папка Tomcat>webappsROOTWEB-INF.

В этом файле для каждого нового сервлета необходимо добавить в элемент web-app вложенные элементы servlet и servlet-mapping (листинг 4.15).

Листинг 4.15.

Файл web.xml

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<web-app … <Дополнительные атрибуты>…>

<servlet>

<servlet-name><Имя сервлета 1></servlet-name>

<servlet-class><Класс сервлета 1></servlet-class>

</servlet>

<servlet-mapping>

<servlet-name><Имя сервлета 1></servlet-name>

<url-pattern><Адрес сервлета 1></url-pattern>

</servlet-mapping>

<servlet>

<servlet-name><Имя сервлета 2></servlet-name>

<servlet-class><Класс сервлета 2>test</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name><Имя сервлета 2></servlet-name>

<url-pattern><Адрес сервлета 2></url-pattern>

</servlet-mapping>

</web-app>

Элемент servlet должен содержать произвольное имя сервлета и имя класса, заданное в коде сервлета (см., например, листинг 4.14). Элемент servlet-mapping должен содержать то же самое имя сервлета и URL-адрес, по которому будет доступен этот сервлет.

Например, после добавления сервлета test файл web.xml примет следующий вид (листинг 4.16).

Листинг 4.16. Пример файла web.xml

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<web-app …<Дополнительные атрибуты>…>

<servlet>

<servlet-name>test</servlet-name>

<servlet-class>test</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>test</servlet-name>

<url-pattern>/servlet/test</url-pattern>

</servlet-mapping>

</web-app>

8. Запустите Tomcat. Для этого откройте корневую папку Tomcat, далее папку bin и дважды щелкните на значке файла startup.bat.

Чтобы убедиться, что Tomcat работает нормально, запустите Internet Explorer (Пуск → Все программы → Internet Explorer) или любой другой браузер. В адресной строке браузера введите следующий адрес: http://localhost:8080/ – в результате откроется стартовая страница Tomcat (рис. 4.33).

Рис. 4.33. Стартовая страница Tomcat

9. Чтобы запустить сервлет, наберите в адресной строке браузера его адрес, который вы задали в файле web.xml: http://localhost:8080/servlet/test. Вы увидите результат выполнения сервлета: текст «Мой первый сервлет» (рис. 4.34).

Рис. 4.34. Результат выполнения сервлета

Итак, вы научились создавать собственные сервлеты и запускать их. Отмечу, что при изменении ранее созданного сервлета его необходимо перекомпилировать (см. пп. 5–6), а затем перезапустить Tomcat, используя файлы shutdown.bat и startup.bat в папке bin корневой папки Tomcat.

Перейдем теперь к разработке сервлета, взаимодействующего с базой данных MySQL.

Подключение к базе данных

В данном разделе мы рассмотрим простой сервлет, который подключается к базе данных и выводит диагностическое сообщение. Чтобы создать такой сервлет, необходимо импортировать пакеты java.sql.*.

Соединение с базой данных описывается объектом класса Connection. Для создания такого объекта предназначен метод

public static Connection getConnection(“jdbc:mysql://<Имя

хоста>[:<Имя порта>]/<Имя базы данных>[<Параметры>]”)

throws SQLException

класса DriverManager. Параметры соединения задаются в формате

?<Имя параметра>=<Значение>&<Имя параметра>=<Значение>…

Важнейшими параметрами соединения являются user (имя пользователя), password (пароль) и characterEncoding (кодировка).

Если при подключении к базе данных произошла ошибка, метод getConnection() сгенерирует исключение SQLException, о котором подробно будет рассказано в подразделе «Обработка ошибок».

Например, вызов метода

Connection dbh =

DriverManager.getConnection («jdbc:mysql://localhost/SalesDept»

+ «?user=username»

+ «&password=userpassword»

+ «&characterEncoding=cp1251»);

осуществляет подключение к серверу MySQL, работающему на локальном компьютере, используя имя пользователя username и пароль userpassword, устанавливает для взаимодействия с сервером кодировку CP-1251 и выбирает базу данных SalesDept (Отдел продаж) в качестве текущей. Созданному соединению соответствует объект dbh класса Connection.

...

Совет

В целях защиты от несанкционированного доступа рекомендуется подключаться к базе данных не от имени пользователя root, а от имени специально созданного пользователя с минимально необходимыми правами доступа. О регистрации пользователей и настройке прав читайте в главе 4.

Создайте теперь сервлет Connect с исходным кодом, представленным в листинге 4.17.

Листинг 4.17.

Подключение к базе данных

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

public class Connect extends HttpServlet {

public void service(HttpServletRequest request,

HttpServletResponse response) throws IOException, ServletException {

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

PrintWriter out = response.getWriter();

try {

//Подсоединяемся к базе данных

Connection dbh =

DriverManager.getConnection («jdbc:mysql://localhost/SalesDept»

+»? user=username&password=userpassword&characterEncoding=cp1251»);

//Обрабатываем испключение

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату