WEB приложение на Java

Вы наверняка слышали о том, что сайты можно делать на PHP, Python и довольно не плохие сайты. Но как же Java? Да на java тоже можно делать очень даже офигенные сайты, а если быть точней то используют java для разработки крупных ресурсов. В этом уроке я покажу как создать простое web-приложение на java.

Что нам потребуется для создания web-приложения?

1) Любой сервер приложений в нашем случае это будет Tomcat 7.0.

2) Верная и надежная Intellij IDEA.

3) Желание создать своё первое WEB-приложение.

 

Шаг 1

Создаем обычный Maven проект, назовем его MyFirstWebProject. Структура проекта следующая:

Давайте теперь разберем структуру проекта: src/java/servlets — тут будут лежать сервлеты(сервлеты будут рассматриваться в Шаг 2.) src/resources — тут будут лежать все ресурсные файлы которые буду нужны для проекта. src/webapp — тут лежат все файлы которые будут использоваться во view (к примеру img, css).

 

Шаг 2

Теперь разберем что такое Servlet? Servlet — это Java-интерфейс, реализация которого расширяет функциональные возможности сервера. Servlet взаимодействует с клиентами посредством принципа запрос-ответ за частую это запросы GET, POST по протоколу HTTP/HTTPS. Для создания сервлета нам нужно подключить зависимости в Maven.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0-alpha-1</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javaee</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5</version>
</dependency>

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

А также не забудьте указать:

<packaging>war</packaging>

это говорит Maven-у что собирать надо в WEB проект, по умолчанию он собирает jar.

Теперь нужно добавить 2 плагина который позволяет откомпилировать и собрать проект в war архив.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.5</source>
        <target>1.5</target>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

Полный листинг pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>MyFirstWebProject</groupId>
    <artifactId>MyFirstWebProject</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>3.0-alpha-1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javaee</groupId>
            <artifactId>javaee-api</artifactId>
            <version>5</version>
        </dependency>

        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Теперь создадим класс MyServlet который унаследуем от HttpServlet.

@WebServlet("/s")
public class MyServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                          throws ServletException, IOException {
        super.doPost(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                         throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("Hello Word");
    }
}

Как вы видите тут есть два метода doPost и doGet, как я уже упоминал сервлеты взаимодействуют с клиентом по средством запрос-ответ, так вот в основном это GET и POST. Внимание! Главное не допускать такую ошибку, что всего есть два метода GET/POST их на самом деле 9, это OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, PATCH. И так рассмотрим эти методы методы: Как вы уже поняли метод doPost принимает и отправляет посредством запроса POST, doGet по средством запроса GET. У обоих методов есть входящие параметры типы которых — HttpServletRequest и HttpServletResponse. HttpServletRequest request — это запрос со стороны клиента; HttpServletResponse response — это ответ со стороны сервера.

Аннотация @WebServlet(«/s») указывает на то что данный сервлет будет доступет по адресу <URL>/s.

 

Шаг 3

Не забываем, что метод GET срабатывает когда мы просто заходим по URL на страничку, а пост чаще всего используется при передачи данных с формы, но при условии что медот передачи даных формы указан POST. Создадим «Hello Word»:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                     throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("Hello Word");
}

response.setContentType("text/html") — в этой строке мы говорим про то что отображать мы будем страничку как html. PrintWriter out = response.getWriter() — тут мы создаем врайтер который поможет нам осуществить ответ с сервера. out.println("Hello Word") — ну и отправляем ответ с сервера клиенту.

 

Шаг 4

Теперь соберите проект в Maven:

 

Шаг 5

Установка и настройка Tomcat 7.0.

1. Идем сюда http://tomcat.apache.org/download-70.cgi и качаем Tomcat 7.0.

2. Извлекаем с архива;

3. Настроить Intellij IDEA что бы деплоить приложение на сервер с нее.

Нажимаем плюсик выбираем Tomcat Server -> Local после чего нажимаем Configure… и выбираем корневую папку где лежит Tomcat 7.0.

В Startup Page — указываем стартовую страничку загрузки в нашем случае это localhost:8080/s (где s это наш про аннотированиый сервлет).

Дальше заходим во вкладкуDeployment:


И выбираем ваш собранный проект, лежит он в корне проекта в папке target/<name>.war

4. Запускаем:

 

Шаг 6

Завяжем на наш сервлет jsp страничку.

Для этого мы должны создать в папке src/main/webapp нашу страничку, в нашем случае это index.jsp.

И теперь с помощью метода GET отправим на нее тот же текст «<h1>Hello World!</h1> <p>It JSP.<p>»

Вот так будет выглядеть наш метод сервлета doGet():

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                                                throws ServletException, IOException {
        response.setContentType("text/html");

        String varTextA = "Hello World!";
        request.setAttribute("textA", varTextA);
        String varTextB = "It JSP.";
        request.setAttribute("textB", varTextB);

        RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
        dispatcher.forward(request, response);
}

С помощью RequestDispatcher мы отправляем наш response request клиенту.

А так будет выглядеть index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
${textA}
${textB}
</body>
</html>

С помощью конструкции ${<var>} мы принимаем данные с сервера.

После этого вы получите ту же по виду страничку, только это уже будет не сервлет отображать а  jsp.

Урок создан: 29 марта 2013 | Просмотров: 142976 | Автор: Александр Барчук | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии:

  • 21 апреля 2013 в 07:23

    Павел

    Статья из серии «Как нарисовать сову» — вначале рисуем два овала, а потом дорисовываем всё остальное…
    Распишите по подробнее шаг 1.

    • 21 апреля 2013 в 12:50

      Александр Барчук

      Что именно вас интересует в шаге 1? Если создание Maven проекта то там есть ссылка на уже ране написанный урок по этой теме.

      • 23 июля 2014 в 03:22

        alex

        было бы не плохо еще в начале объяснить где эти депенденси лежат, и как их можно обновить случае необходимости
        ато у меня чето не находит такую версию http://floomby.ru/s1/bW3UEF/full/

  • 28 мая 2013 в 11:46

    Simple

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

  • 04 июня 2013 в 23:30

    Довбня Олег

    Привет, хорошая статья.

  • 12 июня 2013 в 10:08

    Криль Олег

    Не знаю что кому не нравиться, все норм описано. Если не хватает знаний по чему-то, то их нужно пополнять с поисковиков, так как автор не может знать кто чего не знает. Статья конкретная, мне понравилось.

  • 28 июня 2013 в 21:11

    Romario

    НЕ получается собрать проект стопорюсь на И выбираем ваш собранный проект, лежит он в корне проекта в папке target/.war У меня просто нет этого файла та и папок меньше чем в скачанном с сайта примера. В чем может быть проблема???

    • 28 июня 2013 в 23:26

      Александр Барчук

      Обновил в уроке 4-й Шаг, Выполните его и думаю все будет.

      • 29 июня 2013 в 00:10

        Romario

        Спасибо за ответ но не совсем понятно. Можно поподробней ))

        • 29 июня 2013 в 01:53

          Александр Барчук

          Вы собрали ваш проект с помощью Maven?

          • 29 июня 2013 в 10:05

            Romario

            Нет просто непонятно как добраться до тех настроек clear и install которые указаны на картинке в 4 шаге

            • 29 июня 2013 в 12:48

              Александр Барчук

              Справа есть кнопка Maven, посмотрите 4 Шаг я обновил картинку.

              • 29 июня 2013 в 12:54

                Romario

                Да все супер. Теперь все получилось. Быстрей бы Ваш курс вышел бы. )) Надеюсь он будет захватывать такие же темы а не только java core как в основном в других курсах.

            • 27 сентября 2015 в 12:53

              Никита

              У меня по умолчанию была скрыта кнопка «Maven Projects». Чтобы её открыть надо выбрать в меню пункт View —> Tool Window —> Maven Projects
              Чтобы закладка всегда показывалась: View —> Tool Buttons

  • 15 июля 2013 в 14:39

    Стас

    Все очень коротко и ясно) Хочу еще =)

    ЗЫ: Шаг 6: Для этого мы должны создать в папке src/webapp нашу страничку -> ошибка src/main/webapp

  • 18 сентября 2013 в 14:00

    Gelez

    спасибо.. приятно понять всю картину.. Написано доходчиво и кратко, продолжайте в том же духе. Я так понял автор использует сервлеты версии 3.0. Хотелось бы узнать, в реальных проектах используются они или более старой версии 2.5?

    • 18 сентября 2013 в 17:39

      Александр Барчук

      И вам спасибо, что учитесь с нами :) Да Servlet 3,0 используются но только в новых проектах так как старые трудоемко переписывать на эту версию.

  • 18 сентября 2013 в 14:14

    Gelez

    Еще такой вопрос, как дебажить веб-приложения? Поставил брекпоинт на doGet() когда выполняю запрос по этому HttpServlet ничего не происходит.

  • 14 ноября 2013 в 11:18

    Maksim

    Включительно по 5 шаг все работает, выводит Hello world, сделал все как в 6 шаге и уже не работает, ошибка 404 не найден index.jsp

  • 23 января 2014 в 16:07

    aka_kira

    Спасибо за внятное объяснение материала!

    • 17 апреля 2014 в 08:00

      Алена

      Здравствуйте, Александр! Подскажите пожалуйста, почему после запуска проекта он выдает мне ошибку 404, The requested resource (/s) is not available? Хотя я скачала ваши исходники, только сервер у меня Jboss.

      • 17 апреля 2014 в 09:59

        Александр Барчук

        Здравствуйте! Попробуйте проверить с каким контекст неймом вы деплоите, у меня в Idea стоял /s возможнол вы с другим задеплоили. Если не разберётесь, то напишите в группу ВК или мне лично помогу.

  • 17 июня 2014 в 09:04

    Дмитрий

    К чему все эти депенденси? Особенно javaee-api?

  • 15 июля 2014 в 02:14

    miraclefoxx

    Шаг 4 — не понятен. Где искать это меню? И какой смысл в мавене, если все равно сначала собираем, потом деплоим и все руками?

    • 15 июля 2014 в 16:35

      maks1m

      Ну там вже все стрелками показано :) В идеи справа есть вертикальные кнопки, на одной из них написано maven, вам туда ;)

  • 23 июля 2014 в 12:38

    Андрей

    Большое вам спасибо.
    Отличная статья и очень полезный сайт в целом.

  • 23 июля 2014 в 14:34

    Артур

    После того как подключил зависимости в maven все равно не видит servlet. Подскажите, что делать

  • 28 июля 2014 в 12:22

    Максим

    Было бы неплохо написать пример интеграции JPA и AJA. с добавлением элемента в базу и чтением элементов от туда.

  • 25 августа 2014 в 10:06

    IP696@mail.ru

    ‘javax.servlet:javax.servlet-api:3.0.1»’ not found
    я скачал javaEE 7 JDK и указал в идеи к нему путь. но не находит. идея предлагает скачать. вот качаю 129 мб какието файлы с репозитория. это нормально или все библиотеки должны автоматически найтись? спасибо

  • 28 августа 2014 в 23:47

    Александр

    Сделал все как в мануале, не работает! Колупал, колупал — заработало! Поделюсь опытом, может быть, у кого-то такая же проблема. При собирании проекта мавеном выдавало 2 варнинга.
    Первый исправил добавив явное указание версии плагина:

    maven-compiler-plugin
    2.3.2

  • 29 августа 2014 в 20:04

    d_fly

    Долго искал как создаются директории:
    — src/java/servlets для sources;
    — src/resources для resources;
    — src/webapp для webapp — *.jsp, *.xhtml, *.html;
    Потому что по умолчанию при создании нового maven-проекта, нет папочки «webapp» и нигде на сайте про это не написано (не нашел).
    Может кому-нибудь поможет -> Project Structure -> Modules -> «+» -> Web
    Спасибо за уроки!

  • 10 октября 2014 в 22:56

    Сергей

    Доброго время суток. Не знаю в чем проблема, но у меня почему-то «${textA}
    ${textB}» так и выводятся. Хотя я их создаю в сервлете. Может что то знаете в чем может быть проблема.

    • 14 декабря 2014 в 15:39

      Евгений

      та же проблема

  • 05 декабря 2014 в 13:39

    pavel

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

  • 07 февраля 2015 в 11:24

    samsim

    Ваш вариант решения этой задачи буде немного попроще чем тот вариант который мне предлагали ранее.

  • 23 февраля 2015 в 22:59

    Глеб

    Добрый день! Все классно написано, но у меня в конце не получилось подключить jsp
    Т.е. если мы после того как в сервлете передаем строки в index.jsp
    1. я пересобрал проект при помощи maven (clean + install)
    2. запустил tomcat
    3. выдало ошибку HTTP Status 500 — java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

  • 25 февраля 2015 в 11:04

    Александр

    Саша, ты молодец. Не копируешь без-думно всякую ерезь с просторов а пишешь свое. Я уже год занимаюсь Java, и очень много еще белых пятен в понимании. А тво стать иногда очень прям по душе приходятся. Ты правильно делаешь. Рассказывая все для дурака. Умный человек лишний раз что то прочтет повторит, а глупый хоть понять сможет. Я пока отношу себя ко вторым, и очень важно иногда сделать прям по шагам не упуская , мелочей -который как многие авторы полагают , человек который занимается Java и так знает. Короче молодец, продолжай в том же духе. Статьи твои читать люблю. Сайт и видео блог в закладках))

    • 25 февраля 2015 в 11:45

      Александр Барчук

      Спасибо) НАдеюсь запущу новую версию сайта и буду более активно писать статейки.

      • 06 марта 2015 в 16:06

        Олег

        Нет абсолютно никакой разницы, что делать проект самому, что пробовать импортировать скачанный. На 6 шаге всегда вылетает HTTP Status 500 — java.lang.ClassNotFoundException: org.apache.jsp.index_jsp. Как это решается?

        • 22 марта 2015 в 18:09

          Роман

          Пробовал свой сервлет писать,все с идеи прекрасно запускается и в мазиле отображается. Захотел сделать свой проект,начал делать все по статье,даже без добавления жсп, не запускается мазила.Поробовал руxками через http://localhost:8080/ добавить и запустить. Такая же ошибка:
          http://gyazo.com/3a4a63dc7612195be8159fc177bb4eed
          Без понятия что и где не так.

          • 26 марта 2015 в 14:35

            vlad

            Поменяйте томкат с 8го на 7й. Мне помогло.

  • 26 марта 2015 в 11:02

    vlad

    Некорректно отобразились ссылки на скрины:
    http://i11.pixs.ru:/storage/3/8/2/Untitledpn_4578645_16647382.png
    http://i11.pixs.ru:/storage/3/8/3/Untitled1p_2723521_16647383.png

  • 13 апреля 2015 в 16:58

    cyc10ne

    Огромное спасибо автору, за его бесценный труд!! У меня вопрос по поводу плагинов maven-war-plugin где должен лежать файл немного непонятно?

  • 26 апреля 2015 в 16:22

    Александр

    Все сделал по примеру, неработает:
    [INFO] Final Memory: 9M/245M
    [INFO] ————————————————————————
    [ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException

    Почему так?

    • 18 февраля 2017 в 22:51

      Андрей

      UTF-8

      • 09 мая 2017 в 18:48

        Александр

        Где то не написал UTF-8?? Проверил — в pom.xml есть.

  • 26 апреля 2015 в 16:32

    Александр

    Вернее даже так (не пойму что за фигня, ведь мне нужно это только для того чтобы по-тренить фронт-энд — JSTL)

  • 26 апреля 2015 в 16:34

    Александр

    MyServlet.java — все красное, вот ссылка на скрин: http://hkar.ru/ADVE

    • 27 сентября 2015 в 14:22

      Никита

      Добрый день, потому что надо импортировать модули, подчеркнутые красным. щёлкните мышью по «красному» слову и нажмите Alt + Tab, далее разберётесь сами)

  • 26 апреля 2015 в 16:49

    Александр

    Вроде б избавился от ошибок, (был дубликат, я недосмотрел), теперь билдит норм, но http://localhost:8080/s все равно не работает!! почему?

  • 16 мая 2015 в 14:50

    Андрей

    Хороший туториал

  • 09 июля 2015 в 12:21

    Павел

    Спасибо большое очень понятная статья)))

    • 18 сентября 2015 в 16:53

      Sergey

      Подскажите, как запустить данный пример на сервере Glassfish?

  • 22 сентября 2015 в 13:49

    AD

    Очень хорошая и полезная статья

  • 19 октября 2015 в 11:44

    Аноним

    зй

  • 03 ноября 2015 в 12:35

    Максим

    Добрый день! Прошу помощи, сделал данный пример на ноутбуке, все отлчино получилось. Пытаюсь создать данный проект на ПК, и на
    этапе pom/ файла мавен подсвечивает красным версии 3.0-alpha-1
    javaee-web-api
    6.0
    maven-war-plugin
    2.1.1
    пробовал ставить другие, не помогает. Даже перенес работающий проект с ноубука, открыл на пк, и все равно подсвечивает. Подскажите в чем проблема может быть? Спасибо

    • 19 ноября 2015 в 19:25

      Артём

      пропиши их руками

  • 07 декабря 2015 в 09:32

    дмитрий

    Отличный мануал! Да возникают сложности со сборкой проекта. Но после 5 минут тыкания, можно понять как правильно его собирать.
    Спасибо за труд!

    • 18 января 2016 в 07:01

      Амир

      Очень внятный туториал. В гугле похожего описанного до мелочей не нашел. Я сам то почти нуль в джаве, а эту статью понял. Спасибо что пишите так что даже чайники как я понимают!

  • 01 мая 2016 в 00:28

    Дмитрий

    Александр, спасибо за ваш труд!

  • 25 мая 2016 в 21:58

    Александр

    Спасибо, было понятно и полезно

  • 23 июня 2016 в 13:52

    Артем

    HTTP Status 404 — /s

    type Status report

    message /s

    description The requested resource is not available.

    Apache Tomcat/9.0.0.M8

    Делал проект пошагово, скачал Ваш, ошибка одни и та же в итоге

    • 27 июля 2016 в 09:48

      Алексей

      Написано: Запрашиваемый ресурс недоступен.
      @WebServlet(«/s») у Вас так?
      По такому адресу http://localhost:8080/s обращаетесь в браузере?

    • 23 декабря 2016 в 15:15

      Иван

      У васшего пользователя, который запусил IDEA или Tomcat и делает деплой war файла нету прав доступа на запись в папку Tomcat\webapps.
      Переустановите Tomcat в папку C:\Tomcat и проблема будет решена. =)

  • 10 июля 2016 в 12:54

    Александр

    Не указали что в Idea community edition — нет возможности диплоить как указано на картинках. Нужна обязательно платная версия. Ну и некоторые моменты не освещены по которым приходится отдельно гуглить.

    • 31 августа 2016 в 19:23

      Никита

      Можно использовать для этого gradle

  • 05 августа 2016 в 15:34

    Володимир

    Шикарна стаття.
    Ще б було класно добавити код по роботі з БД. Це дуже важлива частина любої програми.

  • 19 августа 2016 в 08:09

    Никита

    Помогите решить проблему с сервлетами и jstl. Есть вебстраница в которой с помошью c:foreach выводится список строк. Если эти строки указать железно в коде java, то при установке этого списка в request.setAttribute(«list», list), то эти строки отображаются иероглифами(как выяснилось они почему-то кодируются в CP1251). А если сделать, чтобы можно было добавлять строки в список путем отправки формы, то строки отправленные из html формы на странице с foreach отображаются нормально. Выставил utf-8 уже где только можно, не помогло. Подскажите пожалуйста где еще нужно выставить utf-8, чтобы сервлет кодировал аттрибуты в utf-8. Спасибо.

    • 26 августа 2016 в 12:57

      Никита

      Проблему решил. Java компилятор компилировал классы в cp1251, хотя все файлы были в UTF-8, т.о. строка выходила кривой уже из самого класса. Решение: установить параметр file.encoding=UTF-8 для компилятора.

  • 05 сентября 2016 в 03:00

    Jack

    Отлично все показано и рассказано. Собрал за 2 минуты)Ваще красавчик Александр)

  • 29 сентября 2016 в 09:27

    Михаил

    Здравствуйте! Помогите разобраться с ошибкой 404. Всё сделал как описано в уроке, но при запуске выдаёт 404 ошибку.
    Адрес правильный. Порт не занят.

  • 02 апреля 2017 в 16:00

    Дмитрий

    Добрый день.
    Воспользовался уроком, только действительно в бесплатной идеи нет поддержки tomcat. Но я просто копировал war файл проекта в webapp и смотрел в браузере. Спасибо за урок.

  • 02 мая 2017 в 21:25

    Искатель

    Классная статья, а главное современная. А то в ютубе, один сидит на Eclipse, второй на древней IDEA. Из минусов идеи — это то что она платная (для javaEE) но это все решаемо (смекаааете? это я про демо период на 30 дней ;-))
    Разобрался за полчаса, правда до этого убил несколько часов на ютуб. Сенкс ребзя