| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Навигация между JSP |
| Автор: Hidrag 14.12.2006, 23:38 | ||||
| Хочу сделать навигацию между JSP страницами с передачей параметров методом POST. Главная страница JSP получает параметры от сервлета, то есть сервлет ее запускает и устанавливает для нее параметры В полученной JSP я их получаю так:
А как теперь мне из этой страницы стартануть другую нажатием на ссылке и передать ей этот же параметр POST методом? В документации нашел метод:
Но по моему он не подойдет... передает методом гет, фиг знает как вместо этого value запихнуть значение переменной из директивы... |
| Автор: Tony 15.12.2006, 00:01 |
| Запехни в сессию. А потом возьми.С лёту не помню. Хотя то 4то ты делаеш - полный изврат(извини). |
| Автор: tux 15.12.2006, 00:02 | ||
| Hidrag, Пользуйся кнопочкой "Код". Вопрос больше в раздел разработки веб-систем. Можно сделать так. Сформировать на странице форму, у которой все атрибуты будут скрытыми (это свои параметры), а ссылка в форме будет показывать на нужную JSP-страницу. Что-то такое:
|
| Автор: Hidrag 15.12.2006, 00:08 |
| tux, Спасибо! Кнопкой код пользуюсь обычно, просто поторопился. Завтра попробую! |
| Автор: Hidrag 15.12.2006, 21:04 | ||||||
| К сожалению не то! Работает, но хоть и метод ПОСТ, но все равно можно поглядеть значение переменных если просмотреть исходник из браузера, а это лишает смысла Опишу ситуацию подробнее : В общем у меня есть несколько JSP страниц, полностью одинаковых (копии) отличающиеся только текстовым содержанием. В каждой странице я в самом начале получаю атрибуты:
Потом в зависимости от этих параметров что то меняется на странице. Вопрос в том, как мне из одной страницы стартануть другую и передать ей эти же атрибуты... Желательно передать методом ПОСТ чтобы эти переменные в адресной строке не светились.... сейчас сделал методом ГЕТ:
то есть вызываю сервлет Навигатион и ему передаю параметры а он уже стартует страницу которую указал:
но по моему это как то коряво... вроде через сессию можно, но еще не разобрался как с ними работать что подскажете? |
| Автор: Stampede 15.12.2006, 21:16 |
| Hidrag, ну ясен пень такие вещи нужно делать через сессию. Ну или через кукисы - смотря какая стоит задача. Кто ж логины с паролем гоняет по сети открытым текстом? Поэтому для начала к тебе встречный вопрос: ты хочешь чтобы юзер логинился каждый раз, когда он заходит (типа как в вебмэйл), и автоматически разлогировался через определенное время (полчаса, к примеру или по закрытию браузера), или ты хочешь, чтобы было по типу как на Винграде, один раз вошел и все, пока сам специально не выйдешь? В зависимости от этого будем делать либо через сессию, либо через кукисы. |
| Автор: Hidrag 15.12.2006, 21:33 |
| Вот вот никакой безопасности... ( Я иду по пути меньшего сопротивления, что проще так и делаю соответственно изучая все новое, цель всей задумки: разобраться с JSP и создать интересный динамический ресурс, хостинг уже нашел - зарегал соответствующий. Думаю сначала сделать чтобы логинился каждый раз при входе, а потом добавть опцию в аккаунт, типа поставил галочку - будут кукисы, нет - не будет. Данные пользователя хранятся в БД то есть юзер ввел пароль и логин на странице, эти данные ушли методом ПОСТ сервлету, тот их передал классу ответственному за БД и получить от туда результат, если он положительные то вывел эту же страницу с параметром ( то есть чтобы юзер видел что он зареган и не было полей для ввода логина и паса). Честно говоря думал это будут разбираться в теме "JSP с чего начать" но что то она погасла |
| Автор: Greg 15.12.2006, 22:59 |
| Тебя наверное очень волнует тот факт,что аутентификационные данные передаются в открытом виде. Это самый главный недостаток HTTP и ему попдобных FTP,POP3,Telnet. Не беспокойся,в этом случае единственное,что может как-то усложнить жизнь взломщику - это передача хэша пароля и то не сильно.Что касается сессии или кукисов,то тут кажется вопрос немного не правильно поставлен.Кукисы это реализация способа работы с пользователем,описанная в HTTP.Поэтому работать с пользователем нужно через них.Другое дело,что они могут быть долгоживущими,или сбрасываться по итсечении сессии/таймаута. "Через сессию" - это наверное было бы изобретением велосипеда,хотя красиво жить не запретишь |
| Автор: Hidrag 15.12.2006, 23:17 |
| За аутентификацию отвечает сервлет он один для всех, ему передал параметры он по базе "пробил" выдал ответ. То есть теоретически он должен запихнуть свой результат в сессию, а потом стартануть страницу, эта страница смотрит результаты в сессии если они гуд то выглядит так, если нет то по другому? Я правильно понимаю? Осталось только с сессией научиться работать... как ее создавать или она сама создается, как к ней обращаться(читать/писать) из JSP/Servlet... если подскажете буду признателен, а то чессно говоря утомляет читать документацию от SUN на инглише... хотя все что умею на Java все из нее... |
| Автор: Greg 15.12.2006, 23:31 | ||
Сессия создаётся контейнером,а получить её из сервлета можно так:
Теперь о том как она создаётся: Контейнер проверяет клиента на наличие парметра jsessionid в кукисах или параметре запроса. Если найдено,то проверяется значение и связывается с объектом HttpSession именно для этого значения. Если не найден параметр или его значение ни о чём не говорит контейнеру,то создаётся новая сессия и клиенту посылается кукис с новым jsessionid или добавляется в запрос. |
| Автор: Stampede 15.12.2006, 23:32 | ||||||
А, то есть есть какой-никакой MVC? Это оч хорошо. Тогда все вообще тривиально. Как с сессией работать - ну, это мне самому надо в доку лезть. Но да ладно, "если ты такой ленивый...":
И фсе! Запихивать объект User в сессию нужно по обработке POST запроса, приходящего по логину:
Как доступиться к атрибуту сессии из JSP - надеюсь, сам разберешься. |