Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jsp Расширение заменить на другое 
:(
    Опции темы
4epT
Дата 26.12.2011, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Добрый вечер! Имеется проект написанный на JSP и Servlets, в урлах везде светится расширение страниц jsp ... как то можно через web.xml сказать что пусть все страницу будут html ? но сами страницы не менять ? или вообще как поменять расширение ?)
PM MAIL   Вверх
Stolzen
Дата 27.12.2011, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 3
Всего: 48



Можно написать фильтр, который будет получать адрес с расширением html, отбрасывать его и делать форвардинг на jsp.
В итоге может получиться что-то типа такого:

Код

class HtmlToJspFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
        
        if (!(request instanceof HttpServletRequest)) {
            chain.doFilter(request, response);
            return;
        }
        
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String uri = httpRequest.getRequestURI();
        boolean htmlRequest = uri.endsWith("html");
        
        if (htmlRequest) {
            String jsp = uri.substring(uri.length() - 4) + "jsp";
            RequestDispatcher requestDispatcher = httpRequest.getRequestDispatcher(jsp);
            requestDispatcher.forward(request, response);
        } else {
            chain.doFilter(request, response);
        }
    }
    
    @Override
    public void destroy() {
    }
}



Это сообщение отредактировал(а) Stolzen - 27.12.2011, 05:23


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
4epT
Дата 28.12.2011, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Немного подредактировал фильтр ... получилось вот такое:

Код

public class HtmlToJspFilter implements Filter {
    
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
        
        if (!(request instanceof HttpServletRequest)) {
            chain.doFilter(request, response);
            return;
        }
        
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String uri = httpRequest.getRequestURI();
        boolean htmlRequest = uri.endsWith("html");
        
        if (htmlRequest) {
            String jsp = uri.substring(0, uri.length() - 4) + "jsp";
            HttpServletResponse httpResponse = (HttpServletResponse) response;
            httpResponse.sendRedirect(jsp);
            return;
        } else {
            chain.doFilter(request, response);
        }
    }
    
    @Override
    public void destroy() {
    }
}


Но это ведь не решает проблемы .. пользователь все равно видит в url расширение jsp =(
Неужели нету каких то настроек, где будек сказано что *.jsp тоже самое что *.html ?  smile 
PM MAIL   Вверх
Stolzen
Дата 28.12.2011, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 3
Всего: 48



Цитата(4epT @  28.12.2011,  03:33 Найти цитируемый пост)
httpResponse.sendRedirect(jsp);

Поэтому и jsp видит. Нужно forward делать, тогда адрес старый останется 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
dobrolub
Дата 28.12.2011, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



Код

   <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
    <load-on-startup>3</load-on-startup>
    </servlet>


    <!-- The mappings for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>



Это сообщение отредактировал(а) dobrolub - 28.12.2011, 03:21
PM   Вверх
COVD
Дата 28.12.2011, 05:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Просветите (кто спрашивал или кто отвечал) - зачем? Интересно же. 
PM MAIL   Вверх
4epT
Дата 28.12.2011, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Цитата(Stolzen @ 28.12.2011,  02:35)
Нужно forward делать, тогда адрес старый останется

Если делаю forward, то постоянно кидает на страницу с ошибкой ..
PM MAIL   Вверх
Stolzen
Дата 28.12.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 3
Всего: 48



Цитата(4epT @  28.12.2011,  12:11 Найти цитируемый пост)
Если делаю forward, то постоянно кидает на страницу с ошибкой .. 

http://www.coderanch.com/t/537040/JSP/java/forward-filter

Добавлено через 3 минуты и 49 секунд
И вот - http://docs.oracle.com/cd/B31017_01/web.10...959/filters.htm
Тут тоже описывается, как нужно делать


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Samotnik
Дата 28.12.2011, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Цитата(COVD @  28.12.2011,  05:24 Найти цитируемый пост)
Просветите (кто спрашивал или кто отвечал) - зачем? Интересно же.  

++1 тоже интересно
PM MAIL   Вверх
4epT
Дата 28.12.2011, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Ну мне это нужно для того что бы пользователя не пугали эти - jsp =)

А по делу ....

что дает данный сервлет ?

Цитата

   <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
    <load-on-startup>3</load-on-startup>
    </servlet>
    <!-- The mappings for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>


Добавил его и ничго не поменялось
PM MAIL   Вверх
COVD
Дата 28.12.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Я создал простой веб проект с index.jsp и newjsp.jsp. Для newjsp.jsp в web.xml прописал маппинг и эта страница теперь доступна как newjsp.html. Вы этого хотели?

Код

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>newjsp</servlet-name>
        <jsp-file>/newjsp.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>newjsp</servlet-name>
        <url-pattern>/newjsp.html</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>


PM MAIL   Вверх
4epT
Дата 28.12.2011, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Да, именно так и хотел) Попробую сделать так как Вы написали.

Но вообще думал что можно сделать это одной строкой, а так прийдется каждую jsp мапить отдельно  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0985 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.