Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Работа Java-программистом: что нужно уметь, кроме Java - выпуск 6


Информационный Канал Subscribe.Ru

Добрый день,

Сегодня попробуем сделать маленький примерчик web приложения, который будет более-менее “по-науке” структурирован. Напомню, в прошлый раз мы добились того, что смогли выполнить jsp-ху на Tomcat'е (все добились? Если что-то у кого-то не получилось, лучше вернуться на первый шаг, а то дальше будет непонятно).

Задача

Итак, идея следующая. Делаем jsp, которая для получения данных обращается к java-классу. Реализация класса вынесена за пределы jsp.

Решение

По шагам требуется сделать следующее:

  1. В поддиректории webapps томкэта создаём директорию example_1

  2. Там делаем файл 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>
    ------------------------------------------

  3. Запускаем Томкэт и немножко ждём его загрузки

  4. Идём браузером на http://localhost:8080/example_1/index.jsp (имя хоста и порт у вас могут, но не должны, отличаться)

  5. Видим сообщение об ошибке – всё правильно, пакет ru.maksim.example1 не найден. Зато мы видим, что jsp лежит в “правильном” месте, в дальнейшем это нам поможет при отладке в случае проблем.

  6. Останавливаем Томкет

  7. Внутри example_1 создаём директорию WEB-INF (именно БОЛЬШИМИ буквами).

  8. Внутри WEB-INF создаём директорию classes.

  9. Внутри classes создаём директорию ru.

  10. Внутри ru создаём директорию maksim

  11. Внутри maksim создаём директорию example1.

  12. Внутри example1 создаём файл MyClass.java с таким содержимым:
    package ru.maksim.example1;

    /**
    * Содержит реализацию единственного метода, возвращающего текстовую строку
    */
    public class MyClass {
    /* Некторое строковое значение... */
    private String name = "Just name";
    /**
    * Стандартный getter
    */
    public String getName() {
    return name;
    }
    }

  13. Компилируем этот класс командой javac MyClass.java. Убеждаемся, что компиляция прошла без ошибок и появился файл MyClass.class.

  14. Снова запускаем Tomcat и идём на http://localhost:8080/example_1/index.jsp

  15. Должны увидеть результат без ошибок. Если что-то не получилось, самостоятельно ищем проблему и добиваемся, чтобы всё заработал о :)

Итог

Если заработало, скажем себе спасибо за точное следование инструкциям и за внимательность, и начинаем улучшать дальше. Что мне тут не понравилось:

  • класс хочу загнать внутрь jar

  • разработка не должна вестись внутри директории Tomcat


Первое начинаем бороть сейчас и успешно преодолеваем (читай дальше :)), а второе переносим на следующий выпуск (смотри ниже анонсированную тему).

Модификация

  1. Останавливаем Tomcat

  2. Копируем директорию example_1 в директорию example_2, где и будем делать изменения

  3. Там идём в WEB-INF/classes и пишем jar -cvf example2.jar ru

  4. Убеждаемся, что создался jar с именем example2.jar

  5. Создаём WEB-INF/lib и копируем jar туда.

  6. Удаляем WEB-INF/classes и не сожалеем об этом :)

  7. Запускаем Tomcat и видим, что работа приложения не изменилась. Естественно, идём по ссылке http://localhost:8080/example_2/index.jsp

  8. Заодно проверим, не сломалась ли http://localhost:8080/example_1/index.jsp

  9. Видим, что забыли поменять имя второго примера с Example 1 на Example 2 (внутри jsp). Самостоятельно меняем


Ура, всё здорово, уже можно собой гордиться!

В следующем выпуске:

Системы сборки. Ant. Пример на основе example_1 из этого выпуска. Почему я не начал с изучения какой-нибудь среды разработки (IDE)?


Максим Авилов, mavilov@hotmail.com


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.employment
Отписаться

В избранное