Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/33: Рейтинг темы: голосов - 33, средняя оценка - 4.82
avaj

Как обработать запрос из html в сервлете и вернуть ответ?

30.10.2008, 14:41. Показов 6842. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при подключении к базе выдается куча результатов.
необходимо, чтобы информация выдавалась частями, т.е. делилась на несколько страниц, а в низу появлялись ссылки на следующие листы (сформулировал как смог).
Помогите плз, у меня уже мозги кипят.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2008, 14:41
Ответы с готовыми решениями:

Как обработать событие 'Нажатие апплетовской кнопки' в сервлете ?
Пиплы подскажите не могу найти в доках. Как обработать событие 'Нажатие апплетовской кнопки' в сервлете ? Чтобы было больше понятно...

Json - как сформировать в сервлете и отправить на запрос аякса ?
Здравствуйте хочу сформировать json обьект в сервлете примерно такой : { "Вопрос 1": { "AContent": "Ответ...

Обработать SOAP запрос и вернуть ответ. В виде службы Windows
Здравствуйте. Передо мной возникла проблема - нужно написать службу Windows в которую с помощью SOAP-запроса будет передаваться 3 числа,...

39
0 / 0 / 0
Регистрация: 10.08.2009
Сообщений: 9
12.08.2009, 14:23
Студворк — интернет-сервис помощи студентам
Или такой вот вариант
SQLException caught: ?????????? ?????/??????: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153092 864)(ERR=12505)(ERROR_STACK=(ERROR=(CODE =12505)(EMFI=4))))
0
mishgun
13.08.2009, 05:46
Lanka
Подумала ты практически правильно и поэтому
решение проблемы вижу в создании новой сессии на странице с которой идет запрос к странице результатами

Nick2000
Проверь это или это полностью соотвестствует тому что ты имеешь потому как хоть одна не та буква и приехали а ошибка как раз говорит о том что что то не так имеено здесь
0 / 0 / 0
Регистрация: 10.08.2009
Сообщений: 9
13.08.2009, 11:37
Но у меня в запросе только 'SELECT * FROM TEST'.
0
Lanka
13.08.2009, 15:19
Nick2000, такой код ошибки возникает в том случае, когда неверно указано имя базы данных. Спроси у администратора точное имя базы .
Lanka
13.08.2009, 15:31
Поттверждение своих предположений сегодня нашла у м-ра М.Холла.Цитирую :' Создание компонентов bean при выполнении некоторых условий.

Для более эффективного разделения данных компоненты bean создаются при выполнении некоторых условий.
Во-первых, элемент jsp: useBean создает новый экземпляр bean только в том случае, если не существует компонент с совпадающими значениями id и scope. Если такой компонент найден, он связывается с переменной, указанной посредством id. Если существующий bean представляет подкласс указанного класса, выполняется приведение типов. Если приведение не может быть выполнено, генерируется исключение ClassCastException.
Во-вторых, вместо
<jsp:useBean ... />
можно указать следующее действие:
<jsp: useBean . . .>выpaжeниe</jsp:useBeаn>
Второй вариант элемента jsp: useBean отличается тем, что выражение, содержащееся между открывающим и закрывающим декскрипторами, вычисляется только в том случае, когда создается новый компонент bean. При использовании существующего bean выражение не вычисляется. Такое условное вычисление выражения удобно в том случае, когда устанавливаются исходные свойства bean, совместно используемые несколькими документами. Поскольку неизвестно, к какому документу клиент обратится раньше других, вы не знаете, в какой документ следует поместить инициализационный код. При использовании условного выражения инициализационный код содержится во всех документах, но выполняется только один раз (!).
'...конец цитаты.
Собственно, содав новый бин на первой странице (странице запроса), положительного результата я не получила.
Также ставила на первой странице <%@page session='false'%>, эффект тот же...
Ну неужели такой красивый и изящный код можно использовать только для того, чтобы вывалить всю таблицу юзеру, не используя при этом параметров запроса?!...
Может все-таки есть выход?
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
13.08.2009, 16:57
Блин ребята , или я не въезжаю или вы тормозите (возможно и то и другое)
Lanka , ты же сама процитировала Холла , о том что проперти сетятся бину ОДИН раз , если конструкция ><jsp:setProperty.. помещена ВНУТРИ конструкции <jsp:useBean.. , значит соответственно вынеси <jsp:setProperty.. для пропертей которые нужно сетить при каждом заходе на страницу ЗА ПРЕДЕЛЫ <jsp:useBean..
То есть делаешь примерно так :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<jsp:useBean id='cachedRS' class='sun.jdbc.rowset.CachedRowSet' scope='session'>
    <%
        Class.forName('sun.jdbc.odbc.JdbcOdbcDriver');      
    %>
     <jsp:setProperty name='cachedRS' property='url' value='jdbc:odbc:Employee' />
     
</jsp:useBean>
 
     <jsp:setProperty name='cachedRS' property='username' value='' />
     <jsp:setProperty name='cachedRS' property='password' value='' />
     <jsp:setProperty name='cachedRS' property='command' value='SELECT * FROM EMPLOYEE WHERE Surname=><%lname%>'/>
<%
     String lname= request.getParameter('lname');
     out.println('LName is ' + lname);
     cachedRS.execute();
%>
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
13.08.2009, 16:59
Немного погорячился , так пожалуй будет лучше :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<jsp:useBean id='cachedRS' class='sun.jdbc.rowset.CachedRowSet' scope='session'>
    <%
        Class.forName('sun.jdbc.odbc.JdbcOdbcDriver');
    %>
     <jsp:setProperty name='cachedRS' property='url' value='jdbc:odbc:Employee' />
     <jsp:setProperty name='cachedRS' property='username' value='' />
     <jsp:setProperty name='cachedRS' property='password' value='' />
 
</jsp:useBean>
<%
     String lname= request.getParameter('lname');
     out.println('LName is ' + lname);
     cachedRS.execute();
%>   
     <jsp:setProperty name='cachedRS' property='command' value='SELECT * FROM EMPLOYEE WHERE Surname=><%lname%>'/>
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
13.08.2009, 17:05

Ё- маЁ , пальцы заплетаются %)
разумеется сначала просетить lname , а потом дёргать execute()
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<jsp:useBean id='cachedRS' class='sun.jdbc.rowset.CachedRowSet' scope='session'>
    <%
        Class.forName('sun.jdbc.odbc.JdbcOdbcDriver');
    %>
     <jsp:setProperty name='cachedRS' property='url' value='jdbc:odbc:Employee' />
     <jsp:setProperty name='cachedRS' property='username' value='' />
     <jsp:setProperty name='cachedRS' property='password' value='' />
 
</jsp:useBean>
 
<%
     String lname= request.getParameter('lname');
     out.println('LName is ' + lname);
%>
 
<jsp:setProperty name='cachedRS' property='command' value='SELECT * FROM EMPLOYEE WHERE Surname=><%lname%>'/>
 
<%
     cachedRS.execute();
%>
0
Lanka
13.08.2009, 17:30
scroodge, спасибо тебе большое, но так я уже делала: при этом результат запроса меняется в зависимости от введенных параметров, а постраничный вывод не работает : 500 ошибка сервера...выводит , что массив не заполняется...да это и понятно, в этом случае ему нечем заполняться.
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
13.08.2009, 18:21
гммм..(чешет репу) 'массив не заполняется' ?
чего-то не совсем понял

error 500 Apache тебе возвращает , потому что в JSP или во фронтконтроллере (если он у тебя есть) вылетает exception ...
покажи его stacktrace - поищи в логах сервака
или сама попробуй в этой jsp его закетчить и вывести trace прямо в страницу

и давай - trace в студию
0
mishgun
14.08.2009, 07:22
HttpSession s = request.getSession();
здесь мы получим текущую сессию(если она ещё существует но лучше конечно поставить сначала проверку на случай если sesion expired)
s.invalidate();-Invalidates this session and unbinds any objects bound to it.
именно это я имел ввиду...
mishgun
14.08.2009, 07:29
Lanka
какая проблема я не понял?
тебе надо было избавится от сессии так? Или другая трабла вылезла?
mishgun
15.08.2009, 05:58
Lanka
Этот код работает точно
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<%@ page import='java.sql.*' %>
<%@ page import='javax.sql.*' %>
<%@ page import='sun.jdbc.rowset.*' %>
<%@ page import='java.util.*' %>
 
<jsp:useBean id='cachedRS' class='sun.jdbc.rowset.CachedRowSet' scope='session'>
 
    <% 
        Class.forName('com.mysql.jdbc.Driver');
        
    %>
<jsp:setProperty name='cachedRS' property='url' value='jdbc:mysql://localhost/MyDB' />
<jsp:setProperty name='cachedRS' property='username' value='' />
<jsp:setProperty name='cachedRS' property='password' value='' />
 
 
<%      String lname= request.getParameter('lname');
        out.println('LName is ' + lname); 
        cachedRS.setCommand('SELECT FirstName,Surname FROM Employee WHERE Surname='' + lname + ''');  
        cachedRS.execute(); 
    %>
</jsp:useBean>
 
<%
int pageSize = 5;
int noRecords = cachedRS.size();
int noPages = noRecords/pageSize;
 
if ((noRecords%pageSize)!=0)
    noPages+=1;
 
int currPage=0;
 
Enumeration formElements = request.getParameterNames();
 
 
if (formElements.hasMoreElements())
{
out.println('-----' );
 
    //if (request.getParameter('page').length()!=0)
    if (request.getParameter('page')!=null)
    currPage = Integer.parseInt(request.getParameter('page'));
    
    else{
    currPage=1;
    out.println('her');
    }
    
}
else{
out.println('no results');
}
 
 cachedRS.absolute((currPage*pageSize)-pageSize+1);
 
int firstRecordOnPage = cachedRS.getRow();
int lastRecordOnPage = cachedRS.getRow()+pageSize-1;
%>
 
<html>
<body>
<center>
<h2>Paged Search Results</h2>
 
 
Page <%=currPage %> of <%=noPages %>.
 
 
<%=firstRecordOnPage %> to <%=lastRecordOnPage %> of <%=noRecords%> records displayed.
 
 
<table border='2'>
<tr>
    <td>First Name</td>
    <td>Surname</td>
</tr>
<% 
    
     for (int i=0; (i < pageSize) && !cachedRS.isAfterLast(); i++) 
    {
%>
<tr>
    <td><%= cachedRS.getString('FirstName') %></td>
    <td><%= cachedRS.getString('Surname') %> </td>
</tr>
<% 
        cachedRS.next();
    } 
%>
 
</table>
</p>
 
<%
if (currPage!=1)
{
%>
    <a href='<%= HttpUtils.getRequestURL(request) %>?page=<%=currPage-1%>'><< Previous</a>
<%
}
for (int i=0;i<noPages;i++)
{
%>
    <a href='<%= HttpUtils.getRequestURL(request) %>?page=<%=i+1%>'><%=i+1%></a>
<%
}
%>
<%
if (currPage!=noPages)
{
%>
    <a href='<%= HttpUtils.getRequestURL(request) %>?page=<%=currPage+1%>'>Next >></a>
<%
}
%>
</center>
</body>
</html>
а вот код отправляющей страницы но работает если нажать рефреш долго мучился и ничего не выходит(может тебе следует средствами javascript атоматычно рефпешить станицу при каждом к ней обращении?)

Java
1
2
3
4
5
<html>
<body>
<form action='PagedResults2.jsp' method='post'>
<%
HttpSession s = request.getSession()
Lanka
16.08.2009, 12:11
Mishgun, не, трабла не вылезла-)надо было избавиться от сессии. Я тут работаю в таких условиях, имея 15мин. доступа интернета в день,поэтому могу делать то что в книгах написано+этот форум-)
Всё! Проблема решена, сессия обновляется-)))
Mishgun, не знаю как тебя и благодарить. Ты меня ОЧЕНЬ выручил. СПАСИБО ТЕБЕ ОГРОМНОЕ!!!!-)))
mishgun
17.08.2009, 03:18
а если не сложно скажи как от сессии избавилась?
Lanka
19.08.2009, 10:32
Mishgun , при помощи <%HttpSession s = request.getSession();s.invalidate();%> естессно-))).Только это срабатывает, когда на первую страницу попадаешь по ссылке. Когда же в эксплорере кликаешь кнопку назад со второй страницы на первую, то сессия не обновляется: буду еще над этим работать, потому что это очень важный момент. Я например как юзер редко пользуюсь ссылкой 'Назад' на странице, всегда жму на кнопку эксплорера.
mishgun
20.08.2009, 04:18
могу предложить использовать таг meta-inf там можно устанавливать время для рефреша(например 5 секунд)или java script1.2 имеет метод reload но падлюка релодает как подорванный))) надо писать дополнительные условия для него
Lanka
20.08.2009, 10:25
Mishgun , спасибо, попробую reload -)))
Lanka
27.08.2009, 13:18
Mishgun, YES!!! Найден выход: на первой странице ставим
Java
1
2
3
4
5
6
<%
response.setHeader('Cache-Control', 'no-cache');
response.setHeader('Pragma', 'no-cache');
response.setDateHeader('Expires', 0);
response.setDateHeader('max-age', 0);
%>
при этом первая страничка не кешируется и не попадает в History и тогда можно спокойно нажимать кнопку 'Назад' в броузере со страницы результата.
Ещё раз хочу выразить тебе огромную благодарность.Спасибо тебе большое за помощь!!!!!!!!!!-)))
mishgun
28.08.2009, 06:19
Да не за что....
заходите ещё))))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2009, 06:19

Обработать JS запрос и дать ответ
Доброго дня! Есть такой вот код function check() { var login = document.getElementById(&quot;username_id&quot;).value; var password =...

Выполнить GET запрос, получить xml ответ, обработать его
Начал делать сайт, на wordpress. Столкнулся с моментом. Нужно с другого сайта получать информацию(изменяющуюся). У них там, такая...

Выполнить GET запрос, получить xml ответ, обработать его
Начал делать сайт, на wp. Столкнулся с моментом. Нужно с другого сайта получать информацию(изменяющуюся). У них там, такая возможность...

Как обработать ответ от веб-сервиса.
SOAP веб-сервис написан на PHP с помощью библиотеки NuSOAP. Его назначение - связать SL и MySQL. Берёт таблицу и отправляет ввиде массива...

Ответ сервера вернуть, как результат функции
Всем привет. Не могу найти пример кода, на jQuery, который бы использовал $.ajax(), в теле функции, которая возвращала бы результатом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос. Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех. А широколиственный лес тоже имеет самую крутую биомассу. То почему не возникло их симбиоза? Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru