Сегодня
попробуем сделать маленький примерчик web приложения, который будет
более-менее “по-науке” структурирован. Напомню, в
прошлый раз мы добились того, что смогли выполнить jsp-ху на Tomcat'е
(все добились? Если что-то у кого-то не получилось, лучше вернуться
на первый шаг, а то дальше будет непонятно).
Задача
Итак,
идея следующая. Делаем jsp, которая для получения данных обращается
к java-классу. Реализация класса вынесена за пределы jsp.
Решение
По
шагам требуется сделать следующее:
В
поддиректории webapps томкэта создаём директорию example_1
Там
делаем файл
index.jsp: ------------------------------------------ <%@
page import="ru.maksim.example1.*"
%> <HTML> <HEAD><TITLE>Example
1</TITLE></HEAD> <BODY> <% MyClass
example1 = new MyClass(); %> <H1>Example
1</H1> <P>Делаем jsp, которая для получения данных
обращается к java-классу. Реализация класса вынесена за пределы
jsp.</P> <P>Вот что возвращает нам метод getName()
класса ru.maksim.example1.MyClass:
<%=example1.getName()%></P> <HR> <A
HREF="mailto:mavilov@hotmail.com">Maksim</A> </BODY> </HTML> ------------------------------------------
Видим
сообщение об ошибке – всё правильно, пакет ru.maksim.example1
не найден. Зато мы видим, что jsp лежит в “правильном”
месте, в дальнейшем это нам поможет при отладке в случае проблем.
Останавливаем
Томкет
Внутри
example_1 создаём директорию WEB-INF (именно БОЛЬШИМИ буквами).
Внутри
WEB-INF создаём директорию classes.
Внутри
classes создаём директорию ru.
Внутри
ru создаём директорию maksim
Внутри
maksim создаём директорию example1.
Внутри
example1 создаём файл MyClass.java с таким содержимым: package
ru.maksim.example1;
/** * Содержит реализацию
единственного метода, возвращающего текстовую строку */ public
class MyClass { /* Некторое строковое значение... */ private
String name = "Just name"; /** * Стандартный
getter */ public String getName() { return name; } }
Компилируем
этот класс командой javac MyClass.java. Убеждаемся, что компиляция
прошла без ошибок и появился файл MyClass.class.