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 | Просмотров: 157823 | Автор: Александр Барчук | Правила перепечатки


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

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

Ваш 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 и проблема будет решена. =)

      • 21 августа 2017 в 22:45

        Наталья

        Наконец-то хоть где-то нашелся ответ! У меня Tomcat был распакован в program files и тоже была ошибка 404. Скопировала папку на C:/Tomcat и заработало. Я уже думала, что даже helloWorld мне не по силам

    • 06 июня 2017 в 18:22

      Alex

      Проверьте, чтобы Tomcat обращался непосредственно к файлу MyFirstWebProject.war, а не к папке MyFirstWebProject. В настройках деплоя томкат изначально прописана только папка, а не сам вар файл.

  • 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 дней ;-))
    Разобрался за полчаса, правда до этого убил несколько часов на ютуб. Сенкс ребзя

  • 06 июня 2017 в 18:15

    Alex

    Спасибо, очень доступно и понятно!

  • 16 июня 2017 в 13:40

    Расул

    Автор красавчик!
    СПС за материал. Все понятно!

  • 27 июня 2017 в 00:53

    Крис

    Пробовал запустить данный пример на 2х осях, пробуя разные конфигурации.
    Не знаю, уж намеренно ли ты сделал это, автор, но тем не менее. Благодаря твоему гайду моё желание изучать Java упало ниже чем на пол-шестого.
    P.S. Пробовал на win 8.1 (получилось с матом всё до подключения файла jsp, который не хотел видеть переменные из сервлета)
    На Ubuntu 16.04 не заработало вообще ничего. Никак.
    P.S.S Уйду в питонисты, бл№#*