powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat 8.5 создание страниц " на лету"
11 сообщений из 11, страница 1 из 1
Tomcat 8.5 создание страниц " на лету"
    #40084813
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Подскажите пожалуйста как реализовать создание страниц "на лету"?
Описываю подробно что мне нужно.
1. У меня есть сервер который отвечает по адресу http://localhost/WebApp/index.html где WebApp имя приложения, а index.html стартовая страница.
2. Я хочу сделать так, при переходе по адресу http://localhost/WebApp/index2.html я не должен получить ошибку 404 что страницы нет, я хочу чтобы запрос передался в некий класс (например какой-нибудь сервлет) этот сервлет будет знать имя запрашиваемой страницы сгенерирует её и отдаст клиенту. Клиент вместо ошибки получит содержимое страницы.

Если есть готовый пример буду сильно благодарен, направление куда загуглить тоже подойдёт :) Спасибо!
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084814
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать сервлет и замарить его на index2.html ?
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084823
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Технически это очень похоже на Rewrite rules в Tomcat или mod_rewrite из ApacheHttp server.
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084834
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

Неужели не слышал про SPA
https://ru.m.wikipedia.org/wiki/Одностраничное_приложение
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084835
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming
Сделать сервлет и замарить его на index2.html ?

Как вариант да, но нужно чтобы это было динамически, каждый раз перезаливать приложение с новыми настройками не вариант, нужно чтобы все запросы на неизвестные страницы переводились на нужный сервлет с указанием запрошенной страницы.
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084836
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin
lleming
Сделать сервлет и замарить его на index2.html ?

Как вариант да, но нужно чтобы это было динамически, каждый раз перезаливать приложение с новыми настройками не вариант, нужно чтобы все запросы на неизвестные страницы переводились на нужный сервлет с указанием запрошенной страницы.
SPA делают в js на фронте. На бэке это изврат.
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084839
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084841
Mandarin , чтоб подитожить все что тут наговорили, есть два способа динамически генерировать страницы:
1. Генерировать их на сервере и отсылать браузеру полностью сформированные HTML
2. Отдать в браузер изначально HTML вместе с JS который будет уже генерить другой HTML. Для этого еще нужно чтоб JS получал данные с бека в виде, например, JSON'a.

1ое в Java+Tomcat делается с помощью сервлетов, а если это будет большое приложение, то с помощью доп надстройки в виде MVC фреймворка (Spring MVC). 2ое - хоть вручную генерить, хоть использовать всякие JS MVC фреймворки типа React, Angular, и пр. Но это значит что еще на бэке нужны ендпоинты которые JSON будут отдавать.

В твоем простом случае звучит как будто бы сервлет - самое то. Получаешь запрос, и там уже в Java пишешь какую угодно динамическую логику. В web.xml можно замапить ошибки на location, а по этому location уже мапить сервлет:
Код: xml
1.
2.
3.
4.
    <error-page>
        <error-code>404</error-code>
        <location>/errors/404</location>
    </error-page>
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084881
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Mandarin , чтоб подитожить все что тут наговорили, есть два способа динамически генерировать страницы:
1. Генерировать их на сервере и отсылать браузеру полностью сформированные HTML
2. Отдать в браузер изначально HTML вместе с JS который будет уже генерить другой HTML. Для этого еще нужно чтоб JS получал данные с бека в виде, например, JSON'a.

1ое в Java+Tomcat делается с помощью сервлетов, а если это будет большое приложение, то с помощью доп надстройки в виде MVC фреймворка (Spring MVC). 2ое - хоть вручную генерить, хоть использовать всякие JS MVC фреймворки типа React, Angular, и пр. Но это значит что еще на бэке нужны ендпоинты которые JSON будут отдавать.

В твоем простом случае звучит как будто бы сервлет - самое то. Получаешь запрос, и там уже в Java пишешь какую угодно динамическую логику. В web.xml можно замапить ошибки на location, а по этому location уже мапить сервлет:
Код: xml
1.
2.
3.
4.
    <error-page>
        <error-code>404</error-code>
        <location>/errors/404</location>
    </error-page>



ну в 404.html можно еще добавить
<meta http-equiv="refresh" content="0; URL='http://myhostname/mybasepage.html" />
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084883
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Главное что будет все равно Г...
Так как невозможно сохранить урл на комп и не работает кнопа Назад.
...
Рейтинг: 0 / 0
Tomcat 8.5 создание страниц " на лету"
    #40084891
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

А как работают сервлеты вы уже изучили? Умеете их делать?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Tomcat 8.5 создание страниц " на лету"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]