powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервлет + jsp
18 сообщений из 18, страница 1 из 1
Сервлет + jsp
    #36599444
DimkaEnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю веб приложение с выводом данных из базы на страницу jsp
вывод данных осуществляю нижнеследующим кодом

*часть кода на сервлете*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  out.println("ФИО</TD><TD>Отдел</TD><TD>Стаж</TD></tr>");
                     while  (rs.next()) {
                         out.println(
                         "<tr><td>"  + rs.getString( 2 )+"</td>"
                         + "<td>"  + rs.getString( 3 )+"</td>"
                         + "<td>"  + rs.getString( 4 )+"</td></tr>"
                         );
                         }

Хочеться избавиться от создания таблицы при помощи out.println, посоветуйте как можно создать таблицу без out.println
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36599529
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimkaEnotДелаю веб приложение с выводом данных из базы на страницу jsp
вывод данных осуществляю нижнеследующим кодом

*часть кода на сервлете*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  out.println("ФИО</TD><TD>Отдел</TD><TD>Стаж</TD></tr>");
                     while  (rs.next()) {
                         out.println(
                         "<tr><td>"  + rs.getString( 2 )+"</td>"
                         + "<td>"  + rs.getString( 3 )+"</td>"
                         + "<td>"  + rs.getString( 4 )+"</td></tr>"
                         );
                         }

Хочеться избавиться от создания таблицы при помощи out.println, посоветуйте как можно создать таблицу без out.println
В простейшем варианте - использовать JSP, который специально для этого и придуман:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ФИО</TD><TD>Отдел</TD><TD>Стаж</TD></tr>
<% while  (rs.next()) {%>
<tr>
  <td><%=rs.getString( 2 )%></td>
  <td><%=rs.getString( 3 )%></td>
  <td><%=rs.getString( 4 )%></td>
</tr>
<%}%>
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36599582
DimkaEnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так получается, что connection надо писать в jsp?
или как то можно извлечь rs.getString() из сервлета,
я просто новичок, поэтому не до конца понятно
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36599822
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimkaEnotтак получается, что connection надо писать в jsp?
или как то можно извлечь rs.getString() из сервлета,
я просто новичок, поэтому не до конца понятно
- если Вас не беспокоит "красота", аккуратность кода и т. п., то можно и в JSP создать коннект, но обычно стараются код связанный с отображением данных поместить в JSP, а код по обработке данных (запросы к БД, логику, проверки и т. п.) вынести в сервлеты и/или JavaBean-ы. Т. е. разделяют отображение и обработку данных. При разделении отображения и обработки, можно в сервлете данные упаковать в массив, который передать в JSP (например прикрепив к реквесту), а в JSP в цикле вывести содержимое массива.
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36599844
Фотография Юрий Носов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и пользовательские дескрипторы, вроде бы, пока не запрещены..
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36601912
DimkaEnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov
При разделении отображения и обработки, можно в сервлете данные упаковать в массив, который передать в JSP (например прикрепив к реквесту), а в JSP в цикле вывести содержимое массива.

А как передать массив в JSP, как он прикрепляется к request?
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36601926
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimkaEnotА как передать массив в JSP, как он прикрепляется к request?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
ArrayList list =  new  ArrayList();
 while  (rs.next()) {
  String[] row =  new  String[ 3 ];
  row[ 0 ]=rs.getString( 2 );
  ...
  list.add(row) ;
}
rs.close();
request.setAttribute("result", list);
...
RequestDispatcher = servletContext.getRequestDispatcher("/my.jsp");
requestDispatcher.forward(request, response);

Код: plaintext
1.
2.
<% ArrayList list = (ArrayList) request.getAttribute("result"); %>
...
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36608311
DimkaEnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подсказку

сервлет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     ArrayList list =  new  ArrayList();
              
                 while  (rs.next()) {
                    String[] row =  new  String[ 3 ];
                    row[ 0 ]=rs.getString( 2 );                   
                    list.add(row[ 0 ]);                              
                    }
              
                    request.setAttribute("result", list);
                    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/lol.jsp"); 
                    dispatcher.forward(request,response);     

jsp:

Код: plaintext
<%= request.getAttribute("result") %>

вывел вот таким образом
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36609015
Фотография nosql.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий НосовДа и пользовательские дескрипторы, вроде бы, пока не запрещены..
что не запрещено???

ps ты еще про промышленные бобы скажи
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36609691
Фотография Юрий Носов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosql.ruЮрий НосовДа и пользовательские дескрипторы, вроде бы, пока не запрещены..
что не запрещено???

ps ты еще про промышленные бобы скажиЯ что-то не то написал? Поясните, что не так?
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36610459
Фотография nosql.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий НосовЯ что-то не то написал? Поясните, что не так?
ок.

что такое пользовательские дескрипторы? наверное, имеются в виду custom tags? если да - то с чего ты перевёл это так ужасно? если нет - чем могут помочь пользовательские дескрипторы (и что это такое вообще?)?

ps робот переводит
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36610618
Фотография Юрий Носов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosql.ru,

Эт не я так перевел. Я основывался на книжке Девид М. Гери Java Servlet Pages. Перевод с англ. и редакция В.В.Вейтмана.

Да, это и есть custom tags. А как же тогда "это будет по-русски"?
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36610620
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Юрий Носов" <nospam@sql.ru>;

> Да, это и есть custom tags. А как же тогда "это будет по-русски"?



пользовательские теги


Скажи Microsoft'у "Прощай"!

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Сервлет + jsp
    #36610686
Фотография nosql.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Носовnosql.ru,

Эт не я так перевел. Я основывался на книжке Девид М. Гери Java Servlet Pages. Перевод с англ. и редакция В.В.Вейтмана.
ок
тада извини
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сервлет + jsp
    #37841380
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.
Подскажите, как мне правильно доделать?
У меня есть бин, из которого я получаю данные в сервлете и вывожу их на jsp страницу (таблица данных)
сервлет
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		 DiskBean disk = new DiskBean();
		    disk = DiskDAO.show(disk);
		    if(disk.isTheres()){
		    	request.setCharacterEncoding("UTF-8");
		    	request.setAttribute("disk_data", disk);
		    	this.forward("/disk.jsp", request, response);
		    } else {
		    	this.forward("/index.html", request, response);
		    }
	}


страница
Код: java
1.
2.
3.
4.
5.
<%DiskBean disk = (DiskBean)request.getAttribute("disk_data");%>
	
         <td> <%=disk.getDisk_id()%></td>
         <td><%=disk.getTitle()%></td>
   <%} %>


Как загнать в цикл, что бы выводились все записи таблицы, а не только первая?
...
Рейтинг: 0 / 0
Сервлет + jsp
    #37841435
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что за дурацкая привычка поднимать древнюю тему и продолжать ее? Новую начать нельзя? Надеюсь, наши с тобой посты удалят ...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core" %>
...
<table>
<core:forEach items="${disk_data}" var="d_data">
	<tr>
		<td>${d_data.field1}</td>
		<td>${d_data.field2}</td>
	</tr>
</core:forEach>
</table>


Примерно так. Это если пользовательскими тэгами. А, да, это при условии, что disk_data - коллекция (раз нужна не одна строка). Смотрю, что ты передаешь один объект, заранее ориентируясь на одну строку. Одним словом, сориентируешься по месту, что передавать.

Если скриплетами, то тоже несложно:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<table>
<%	List<Object> data = (List) request.getAttribute("disk_data"); 
	for (Object row : data) { %>
	<tr>
		<td><%= row.field1 %></td>
		<td><%= row.field2 %></td>
	</tr>
<%	} %>
</table>


Правда, скриплеты нынче "не в моде". Но эта позиция из-за разделения труда: вроде как верстальщик не должен видеть код в представлении. Но если уни-программеры или делается в одиночку, то потянет.
...
Рейтинг: 0 / 0
Сервлет + jsp
    #37841455
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ :)
Ошибка еще была в DiskDAO - там заносилась в переменную из ResultSet только одна запись таблицы
В общем пока не красиво, но выводит
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
<table>
	<tr><td>It's a table with disk's</td></tr>
	<%List data = (List)request.getAttribute("disk_data");
	for (Iterator itr=data.iterator(); itr.hasNext(); ) {%>
	<tr>
		<td><%=itr.next()%></td><td><%=itr.next()%></td>
	</tr>
	<%} %>
   </table>


А поднимаю старые темы - обычно на форумах не любят новых тем на вопросы, которые ранее открывались уже. Почитаю FAQ на SQL.ru
...
Рейтинг: 0 / 0
Сервлет + jsp
    #37841460
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BykaА поднимаю старые темы - обычно на форумах не любят новых тем на вопросы, которые ранее открывались уже.А ещё больше - не любят некрофилов.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервлет + jsp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]