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


Автор: alt1111111 8.3.2011, 18:53
Добрый день. 
У меня есть условно три сервлета main, ser1, ser2. 
В главном main происходит авторизация, если входит пользователь с одними правами то переадресация в ser1, если с другими то в ser2. 
Код

if(условие) 

request.getRequestDispatcher("/WEB-INF/jsp/ser1.jsp").forward(request, response); 

else 
request.getRequestDispatcher("/WEB-INF/jsp/ser2.jsp").forward(request, response); 


что при этом происходит - в браузере адресная строка остатся указывать на main а выводится содержимое соответствующего сервлета(ser1 или ser2). 

Вопрос: как сделать так что бы адрес в браузере указывал на соотв. сервлет. Я так понял что forward передает параметры и предоставляет своеобразный контейнер.

Автор: MisterCleric 9.3.2011, 11:41
Привет. А так?
Код

response.sendRedirect("/WEB-INF/jsp/ser2.jsp");


Автор: kkorsakoff 9.3.2011, 12:49
Чтобы поменять адрес в браузере, надо использовать sendRedirect.
Но есть проблемка, что передавать ему надо полный URL, и ресурсы внутри WEB-INF таким образом нельзя адресовать.


Автор: alt1111111 9.3.2011, 22:25
Спасибо!!, я уже до этого и сам дошел, точнее прочитал. А вот интересно тогда ваше мнение как организавать систему каталогов с сервлетами? вынести ее из WEB-INF?  и этого достаточно?

И еще интересно: есть ли способ чтобы запретить доступ к сервлету(jsp не важно) из адресной строки браузера, кроме того что знаю я, а именно проверка внутри сервлета на какие-то параметры сессии которые формируются только на предыдуших страницах.
Заранее спасибо!

Автор: Molodec 8.8.2011, 15:54
Я прикрепляю к каждой странице сверху через инклуде отдельную страничку с проверкой прав. То есть - по одной лишней строчке на страничке. 

Автор: Farmazon 9.8.2011, 06:32
Apache Shiro, JAAS, Spring Security...

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