Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Удаление имени сервлета из URL браузера.


Автор: unhurt 7.12.2010, 18:54
Добрый вечер!

Проблема такая:
Код

 <servlet-mapping>
        <servlet-name>Controller</servlet-name>
        <url-pattern>/action/*</url-pattern>
    </servlet-mapping>


Когда я нажимаю на кнопку формы, то после редиректа на нужную страницу наблюдаю следующее: http://localhost:8084/action.

То есть потенциальный пользователь будет знать как обращаться к сервлету, что не желательно. Как можно вместо action поставить при редиректе нужную jsp-страницу или убрать action вовсе.


Заранее благодарю.

Автор: iluvatar 8.12.2010, 11:10
После какого редиректа? Как вы его делаете?
В web.xml просто описано какой класс будет обрабатывать какой URL. Покажите код формы.

И что плохого в том, что пользователь будет знать как вызвать этот action? Сделайте на сервере валидацию входных параметров и не будет проблем.

Автор: Stampede 17.12.2010, 02:28
Цитата(unhurt @  7.12.2010,  09:54 Найти цитируемый пост)
Когда я нажимаю на кнопку формы, то после редиректа на нужную страницу наблюдаю следующее


unhurt, вы, скорее всего, не редирект делаете из сервлета, а форвард. А форвард отрабатывает внутрисерверно, то есть браузер об этом даже и не знает. Если хотите реального редиректа на адрес нужной вам страницы, используйте http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#sendRedirect%28java.lang.String%29.

Только не забудьте, что параметры исходного POST-запроса (к сервлету) в повторном запросе (к странице) будут уже недоступны, так что если они нужны, сохраняйте их в сессии. Ну и не забывайте очищать по использовании.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)