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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX и Java, нужна документация 
V
    Опции темы
Samotnik
Дата 30.1.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Цитата(v2v @  30.1.2008,  23:19 Найти цитируемый пост)
а ты прочитал задание ?;)

 smile    какое задание ??....    
PM MAIL   Вверх
Stampede
Дата 31.1.2008, 00:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



Цитата(Samotnik @  30.1.2008,  11:03 Найти цитируемый пост)
Stampede,  СДЕЛАЛ!!


Хорошо, пойдет. Только v2v правильно говорит, в задании было еще привести структуру директории, а среди значимых файлов должен быть еще web.xml. Но в принципе и так прмерно все понятно.

Знач что предлагаю сделать первым делом: вывести за скобки страницу index.jsp. Если ты собираешься перевести это дело на Аякс, то прямо из сервлета и выдавай все что нужно. Кроме того, у тебя, по-видимому, куски кода надерганы из разных источников, в результате получается, что ты шлешь форму на HellowWorldServlet, c него форвардишь на домашнюю страницу (index.jsp), а в ней под названием "Books List" выводишь содержимое директории.

Ты хотел сервис эха - вот и давай делать сервис эха. По порядку:

1. Переименуй сервлет в EchoServlet.

2. Помести его в какой-нибудь пакет - например, by.samothik.

3. Пропиши для него маппинг в web.xml - например, echo.do

4. Соответственно измени значение атрибута "action" в форме на "/echo.do". Не забудь ведущий слэш - таким образом ты задаешь урл относительно корня приложения. Это полезная привычка, которая обезопасит тебя от многих сюрпризов на последующих этапах разработки.

5. В сервлете извлекай значение параметра path и выдавай его в выходной поток.

6. В сервлете, еще до начала вывода, выставь заголовки ответа:

Код

response.setHeader("Cache-Control","private, no-cache, no-store, must-revalidate"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevent caching on proxies


Как добъешься, чтобы все работало, пойдем дальше.

ЗЫ. Если кому-то кажется, что все эти переименования суть мышиная возня, то он здорово заблуждается. В вебе очень важно четко представлять, что как называется, где оно находится, и как к нему обратиться. Обратите внимание: все три вещи, которые я щас перечислил - вещи разные и не всегда совпадающие. До сих пор в схеме Samotnik'a в этом плане был полный бардак.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Samotnik
Дата 31.1.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Цитата(Stampede @  31.1.2008,  00:31 Найти цитируемый пост)
 Кроме того, у тебя, по-видимому, куски кода надерганы из разных источников

не..  все сам писал, это из старого проекта  копи,  пасте  было ! 
Пасибо большое, завтра обязательно опробую! 

Это сообщение отредактировал(а) Samotnik - 31.1.2008, 00:39
PM MAIL   Вверх
Samotnik
Дата 31.1.2008, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Stampede,  а вот эти   .do    и  action    это  же  struts !   Предлагаете  с помощью него делать ??
PM MAIL   Вверх
Kangaroo
Дата 31.1.2008, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(Samotnik @  31.1.2008,  10:27 Найти цитируемый пост)
Stampede,  а вот эти   .do    и  action    это  же  struts !   Предлагаете  с помощью него делать ??

Это не обязательно Struts. 
.do - Просто так маппинг будет нагляднее, сразу видно, что это сервлет
action - это же стандартный аттрибут html form'ы, Стратс тут не причем.


--------------------
Lost....
PM MAIL MSN   Вверх
Samotnik
Дата 31.1.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Цитата(Stampede @  31.1.2008,  00:31 Найти цитируемый пост)
5. В сервлете извлекай значение параметра path и выдавай его в выходной поток.

Вот это не понял  smile 
PM MAIL   Вверх
Kangaroo
Дата 31.1.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(Samotnik @  31.1.2008,  10:34 Найти цитируемый пост)
Вот это не понял


Код

PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
//.......





--------------------
Lost....
PM MAIL MSN   Вверх
Stampede
Дата 31.1.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



Цитата(Samotnik @  31.1.2008,  01:27 Найти цитируемый пост)
Stampede,  а вот эти   .do    и  action    это  же  struts !   Предлагаете  с помощью него делать ??


Чур, чур тебя! smile

Struts нам здесь абсолютно без надобности. Да и не только здесь. А по существу вопроса 
Kangaroo тебе все правильно сказал. Не нравится .do - хорошо, выбери любое другое. Только посоветуйся сначала, а то еще выберешь .exe smile

Цитата(Samotnik @  31.1.2008,  01:34 Найти цитируемый пост)
5. В сервлете извлекай значение параметра path и выдавай его в выходной поток.

Вот это не понял


Что тут может быть непонятного для "не чайника в WEB Java" © 
Samotnik? Я могу покзать, как это делается, но после этого окажется, что весь код сервлета я, собственно, тебе уже изложил. Впрочем, на, а то, боюсь, сам не справишься.

Код

String path = request.getParameter("path");
response.getWriter.println(path);


Вот это вот плюс заголовки ответа из моего предыдущего поста - это практически все, что нужно в сервлете. Чтобы хоть как-то загрузить тебя мыслительной деятельностью, предлагаю сделать две вещи:

1.а Изменить имя параметра path на более подходящее - например, msg.

1.б Выставить кодировку ответа, например, UTF-8. Добиться, чтобы сообщения, введенные (бело)русскими буквами, отображались корректно.




--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Samotnik
Дата 4.2.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Stampede,  
Цитата(Stampede @  31.1.2008,  19:50 Найти цитируемый пост)
от это вот плюс заголовки ответа из моего предыдущего поста - это практически все, что нужно в сервлете. 

т.е. получается, что с сервлета нужно передавать  на  отображение уже готовые куски  .html  кода??  
Ок,  сделал!  И как эту крастоу  принять на  .html     странице  ??? .. ... .   и распечатать ?... 
PM MAIL   Вверх
v2v
Дата 4.2.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Samotnik @  4.2.2008,  16:31 Найти цитируемый пост)

т.е. получается, что с сервлета нужно передавать  на  отображение уже готовые куски  .html  кода??  
Ок,  сделал!  И как эту крастоу  принять на  .html     странице  ??? .. ... .   и распечатать ?...  

любой пример сервлета "Hello world" учит как это делать 
посмотри в сторону метода getWriter() класса HttpServletResponse)


--------------------
PM   Вверх
Samotnik
Дата 4.2.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Цитата(v2v @  4.2.2008,  16:40 Найти цитируемый пост)
любой пример сервлета "Hello world" учит как это делать 
посмотри в сторону метода getWriter() класса HttpServletResponse) 

хорошо,...     а если мне не строчку  нужно передать  на страничку, а коллекцию,  то как ее распечатать с помощью аякса ??   
без аякса это делается  с помощью   <for each ..  >
PM MAIL   Вверх
v2v
Дата 4.2.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



сделай как тебе говорят , выложи результат,  а потом перейдёшь к аяксу smile


--------------------
PM   Вверх
Samotnik
Дата 4.2.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



Цитата(v2v @  4.2.2008,  16:59 Найти цитируемый пост)
сделай как тебе говорят , выложи результат,  а потом перейдёшь к аяксу

все сделал,  все работает,   изучаю аякс,   проблема в том, что немогу  найти не одного хорошого примера (я его вообще не нашел)  где, на  элементарном примере показана работа  аякса с  Java ,..  а читать книгу  на  600  страниц  времени  нифига нету, как будет обязательно начну ее изучать !  smile 
  smile 
PM MAIL   Вверх
v2v
Дата 4.2.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ладно так уж и быть, давай по буквам. есть у тебя jsp страничка называется index.jsp
вот её код:
Код


<!-- идёт кусочек ява скрипта , который и выполняет вызов аякса -->
<script  language="JavaScript" type="text/javascript">
<!--вот какая то переменная request, которую мы будем использовать в этом скрипте -->
var request;
<!-- Очень важная для нас функция ajaxGo. При её вызове выполняется обращение к SERVLET1 :
обрашение будет вроде http://localhost:8080/SERVLET1?d1=Text1
Как я уже сказал обращение идёт к SERVLET1, и туда передается параметр d1, например со значением Text1.
дальше выполняется создание объекта XMLHttpRequest() или ActiveXObject("Microsoft.XMLHTTP") в зависимости от вида броузера
Этот объект и будет где то внутри себя выполнять запрос и получать ответ.
Ссылку на созданный объект мы сохранили в переменное request. Едем дальше
-->
function ajaxGo(){
var url = "SERVLET1?d1="+document.getElementById("txt1").value;
if (window.XMLHttpRequest) {
    request=new XMLHttpRequest();
} else if(window.ActiveXObject) {
    request=new ActiveXObject("Microsoft.XMLHTTP");
}
<!-- вот тут мы говорим, к какому урлу пойдёт запрос-->
request.open("GET", url, true);
<!-- а вот ещё один важный момент: указываем какую функцию запустить, когда наконец то приедет ответ-->
request.onreadystatechange = loadData;
request.send(null);
}

<!-- Функция loadData. Что же она делает:
а она у нас  ждёт когда же наконец выполнится тот запрос и приедет ответ, тоесть состояние запроса = 4!!
если наконец то стало состояние 4, значит пришёл ответ - и находится он будет в request.responseText(), а 
мы его запишем в текст боксик с именем: txt1
 -->
function loadData() {
if (request.readyState == 4) {
    document.getElementById("txt1").value=request.responseText;    
    }
}

</script>
<!-- всё, с ява скриптом покончили, теперь переходим к кнопке, при нажатии на которую и вызываем нашу 
самую козырную функцию ajaxGo.-->
<button onClick="ajaxGo()">Ajax Go!</button>
<input type=text value="ajax will write here" size="100" id=txt1 />


вот и всё.
теперь сам пиши сервлет SERLVET1 и выдавай из него нужный ответ , на нажатие кнопки.

Добавлено через 1 минуту и 19 секунд
поубиваешь коментарии.. а то будет не правильно работать..


--------------------
PM   Вверх
Samotnik
Дата 4.2.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



v2v,  пасибо большое, за обьяснение,  дело в  том, что я  за это время немного разобрался в аяксе, и то что вы щас написали, я уже сам написал (по материалам с сайта  ibm  название статьи "Выполнение асинхронных запросов с JavaScript и Ajax)" smile   
Проблема стала вот в чем,  у меня на сервлете есть коллекция  которая передается через  setAttribute() на  страничку  ..   Так вот интересует вопрос, что  с ней делать ???    как эту коллекция передать на  .html  страничку ??  с помощью ajax (естественно)  и самое  главное, как эту  коллекцию  засунуть в  выпадающий список на этой странице ??    
 smile 
Пэ.Эс.
И вообще,  нужен ли  метод  setAttribute()    при работе  с аяксом ??
Я ведь говорю, что проблема вся  именно  в передаче с сервлета на   .html  т.к.   примеров  в  нете  по этому нигде не нашел,  восновном примеры  с  php - ajax      а вот   java - ajax    нету  (((

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

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

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


 




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


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

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