JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 06:38
Оценка:
Здравствуйте!
Такая ситуация: Tomcat и MySQL.

Выполняю следующий код:
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
<head>
<title>DB Test</title>
</head>
<body>

<h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
Foo ${row.foo}<br/>
Bar ${row.bar}<br/>
</c:forEach>

</body>
</html>

Запрос в теге <sql:query> выполняется 100% (проверял на Update), но на экран вместо содержимого таблицы выводится Foo ${row.foo}
Bar ${row.bar}
В чем может быть дело?
Спасибо за внимание.
Re: JSP доступ к БД
От: okurietz Россия  
Дата: 03.11.04 07:54
Оценка:
Здравствуйте, Alexey.M, Вы писали:

а что у тебя в web.xml?
Re[2]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 08:18
Оценка:
Здравствуйте, okurietz, Вы писали:

O>Здравствуйте, Alexey.M, Вы писали:


O>а что у тебя в web.xml?

В web.xml у меня то, что советуется в Tomcat documentation:

<web-app>
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
Re[3]: JSP доступ к БД
От: okurietz Россия  
Дата: 03.11.04 08:22
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM>Здравствуйте, okurietz, Вы писали:


O>>Здравствуйте, Alexey.M, Вы писали:


O>>а что у тебя в web.xml?

AM>В web.xml у меня то, что советуется в Tomcat documentation:

AM><web-app>

AM> <description>MySQL Test App</description>
AM> <resource-ref>
AM> <description>DB Connection</description>
AM> <res-ref-name>jdbc/TestDB</res-ref-name>
AM> <res-type>javax.sql.DataSource</res-type>
AM> <res-auth>Container</res-auth>
AM> </resource-ref>
AM></web-app>

там советуется:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<web-app>
...
</web-app>


или ты это опустил?
Re: JSP доступ к БД
От: cryozot  
Дата: 03.11.04 08:23
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM><c:forEach var="row" items="${rs.rows}">

AM> Foo ${row.foo}<br/>
AM> Bar ${row.bar}<br/>
AM></c:forEach>

Это будет работать только если контейнер соответствует спецификации JSP 2.0 (томкат 5, должен).
В противном случае придётся написать так:

    Foo <c:out value="${row.foo}"/><br/>
    Bar <c:out value="${row.bar}"/><br/>
... << RSDN@Home 1.1.3 stable >>
Re[4]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 08:35
Оценка:
Здравствуйте, okurietz, Вы писали:

O>там советуется:

O>

O><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
O> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
O> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
O>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
O> version="2.4">
O><web-app>
O>...
O></web-app>


O>или ты это опустил?


Я это и имел в виду.
Re[2]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 08:37
Оценка:
Здравствуйте, cryozot, Вы писали:

C>Это будет работать только если контейнер соответствует спецификации JSP 2.0 (томкат 5, должен).

C>В противном случае придётся написать так:

C>
C>    Foo <c:out value="${row.foo}"/><br/>
C>    Bar <c:out value="${row.bar}"/><br/>
C>


Так я уже писал, результат тот же. Tomcat пятый.
В чем может быть причина ещё?
Re[3]: JSP доступ к БД
От: okurietz Россия  
Дата: 03.11.04 08:57
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM>Здравствуйте, cryozot, Вы писали:


C>>Это будет работать только если контейнер соответствует спецификации JSP 2.0 (томкат 5, должен).

C>>В противном случае придётся написать так:

C>>
C>>    Foo <c:out value="${row.foo}"/><br/>
C>>    Bar <c:out value="${row.bar}"/><br/>
C>>


AM>Так я уже писал, результат тот же. Tomcat пятый.

AM>В чем может быть причина ещё?

Попробуй в своей jsp написать где-нить ${2+2}
Re[4]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 09:10
Оценка:
Здравствуйте, okurietz, Вы писали:

O>Попробуй в своей jsp написать где-нить ${2+2}


Такие выражения работают.
Мне кажется, что дело в переменной rs. В неё почему-то не записывается результат запроса.
<sql:query var="rs" dataSource="jdbc/TestDB">
В результате выражение ${row.foo} — пустое
<c:forEach var="row" items="${rs.rows}">

Почему так происходит? Или дело в чем-то другом?
Re[5]: JSP доступ к БД
От: okurietz Россия  
Дата: 03.11.04 09:18
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM>Здравствуйте, okurietz, Вы писали:


O>>Попробуй в своей jsp написать где-нить ${2+2}


AM>Такие выражения работают.

AM>Мне кажется, что дело в переменной rs. В неё почему-то не записывается результат запроса.
AM><sql:query var="rs" dataSource="jdbc/TestDB">
AM>В результате выражение ${row.foo} — пустое
AM><c:forEach var="row" items="${rs.rows}">

AM>Почему так происходит? Или дело в чем-то другом?


а ты поставил весь JSTL???
Re[6]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 03.11.04 10:45
Оценка:
Здравствуйте, okurietz, Вы писали:


O>а ты поставил весь JSTL???


Да, конечно же, весь.
Re[7]: JSP доступ к БД
От: okurietz Россия  
Дата: 03.11.04 11:05
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM>Здравствуйте, okurietz, Вы писали:



O>>а ты поставил весь JSTL???


AM>Да, конечно же, весь.


Ну тогда, все таки, полностью web.xml покажи. У меня все работает, правда проверял на MSSQL сервере.

Я так понимаю, у тебя, если 2 записи в таблице, показывается 4 строчки:
Foo ${row.foo}
Bar ${row.bar}
Foo ${row.foo}
Bar ${row.bar}
?
Re: JSP доступ к БД
От: cryozot  
Дата: 04.11.04 03:14
Оценка:
Здравствуйте, Alexey.M, Вы писали:

AM><sql:query var="rs" dataSource="jdbc/TestDB">

AM>select id, foo, bar from testdata
AM></sql:query>

Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
... << RSDN@Home 1.1.3 stable >>
Re[2]: JSP доступ к БД
От: okurietz Россия  
Дата: 04.11.04 06:16
Оценка:
Здравствуйте, cryozot, Вы писали:

C>Здравствуйте, Alexey.M, Вы писали:


AM>><sql:query var="rs" dataSource="jdbc/TestDB">

AM>>select id, foo, bar from testdata
AM>></sql:query>

C>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )


думается мне он просто начал изучать Tomcat+JSP. И в доках томката есть такой пример — его он и пытается запустить.
имхо.
Re[3]: JSP доступ к БД
От: Egor  
Дата: 04.11.04 06:52
Оценка:
C>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )

O>думается мне он просто начал изучать Tomcat+JSP. И в доках томката есть такой пример — его он и пытается запустить.

O>имхо.

А что тут такого? Пишим Веб приложение и из JSP юзаем базу.
Re[4]: JSP доступ к БД
От: cryozot  
Дата: 04.11.04 07:09
Оценка: 18 (1) +1
Здравствуйте, Egor, Вы писали:

C>>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )


E>А что тут такого? Пишим Веб приложение и из JSP юзаем базу.


А плохого тут то, что мы смешиваем логику предстваления данных и логику доступа к данным, благодаря чему можем огрестись неприятностями, типа создания себе лишней работы.

Например, если потребуется изменить схему данных (например, переименовать поле или разбить одно поле на два), то нам придётся править все обращения к этому полю на всех страничках, где это поле используется. Если же мы каким-то образом абстрагируемся от схемы данных и способа получения этих данных, то жизнь наша будет не столь печальна.
... << RSDN@Home 1.1.3 stable >>
Re[5]: JSP доступ к БД
От: Egor  
Дата: 04.11.04 07:56
Оценка:
Здравствуйте, cryozot, Вы писали:

C>Здравствуйте, Egor, Вы писали:


C>>>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )


E>>А что тут такого? Пишим Веб приложение и из JSP юзаем базу.


C>А плохого тут то, что мы смешиваем логику предстваления данных и логику доступа к данным, благодаря чему можем огрестись неприятностями, типа создания себе лишней работы.


C>Например, если потребуется изменить схему данных (например, переименовать поле или разбить одно поле на два), то нам придётся править все обращения к этому полю на всех страничках, где это поле используется. Если же мы каким-то образом абстрагируемся от схемы данных и способа получения этих данных, то жизнь наша будет не столь печальна.


Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных
Сколько видел исходников — все по одному типу.
Re[6]: JSP доступ к БД
От: cryozot  
Дата: 04.11.04 08:20
Оценка:
Здравствуйте, Egor, Вы писали:

E>Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных

Не уверен, что правильно понял это несвязанное предложение. Мне кажется вы хотели спросить, должны ли все, кто пишет на JSP абстрагироваться от схемы данных и способа получения этих данных. Если так, то отвечаю.

Не должны. Но если они не хотят огрестись дополнительными хлопотами при эволюционировании системы, лучше об этом подумать. Разумеется, если система не должна эволюционировать (например, это туториал), то не должны.

E>Сколько видел исходников — все по одному типу.

А сколько вы видели исходников? И от чего были эти исходники?
... << RSDN@Home 1.1.3 stable >>
Re[7]: JSP доступ к БД
От: Blazkowicz Россия  
Дата: 04.11.04 08:26
Оценка: :)
Здравствуйте, cryozot:

А волшебное слово MVC так и не сказал.
Re[8]: JSP доступ к БД
От: cryozot  
Дата: 04.11.04 08:44
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>А волшебное слово MVC так и не сказал.

Да побоялся я, что обвинят в кидании понтов ) Отвечать на вопрос надо имхо на языке задающего. Вот если он в ответ спросит где бы чего-нибудь такого из теории почитать, то я уж наговорю всяких волшебных слов )
... << RSDN@Home 1.1.3 stable >>
Re[9]: JSP доступ к БД
От: Blazkowicz Россия  
Дата: 04.11.04 08:50
Оценка:
Здравствуйте, cryozot, Вы писали:

C>Да побоялся я, что обвинят в кидании понтов )

Не боись.

C>Отвечать на вопрос надо имхо на языке задающего.

Ну, знаешь ли, так пост растянется в длинный диалог который никому читать будет не интересно потому что уже не раз этот самый MVC обсуждали.

C>Вот если он в ответ спросит где бы чего-нибудь такого из теории почитать, то я уж наговорю всяких волшебных слов )

А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так:
Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
Re[10]: JSP доступ к БД
От: cryozot  
Дата: 04.11.04 11:19
Оценка: :))
Здравствуйте, Blazkowicz, Вы писали:

B>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так:

B>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))
... << RSDN@Home 1.1.3 stable >>
Re[11]: JSP доступ к БД
От: Blazkowicz Россия  
Дата: 04.11.04 11:27
Оценка:
Здравствуйте, cryozot, Вы писали:

B>>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так:

B>>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
C>А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))

Ну почти так. Только наученые горьким опытом больше не изобретаем велосипедов.
Re[12]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 04.11.04 11:53
Оценка:
Ребята, у меня всё получилось спасибо за помощь. Отдельное спасибо Okurez. Дело было в файле web.xml.

Алексей
Re[3]: JSP доступ к БД
От: Alexey.M Россия  
Дата: 04.11.04 11:54
Оценка:
Здравствуйте, okurietz, всё получилось. Дело было в web.xml. Спасибо за помощь.

Алексей
Re[6]: JSP доступ к БД
От: mikkri Великобритания  
Дата: 04.11.04 18:06
Оценка:
Здравствуйте, Egor, Вы писали:

E>Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных


Именно. Это best practice.

E>Сколько видел исходников — все по одному типу.


Извини, но, видимо, не туда смотрел.
Re[12]: JSP доступ к БД
От: Egor  
Дата: 05.11.04 00:06
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, cryozot, Вы писали:


B>>>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так:

B>>>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
C>>А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))

B>Ну почти так. Только наученые горьким опытом больше не изобретаем велосипедов.


Ребята, это вы сечас с кем говорили??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.