Об использовании скриптов в JSP

Я новичок в JSP. Я создал веб-приложение, используя JSP.

Я написал код Java внутри скриплетов JSP (<%.....%>).
Для подключения к базе данных я также следовал так же.
Пример:

   html code;
  <%
    database connectivity code;

  %>

     some jquery code;

 <%

    again database connectivity code;
 %>

Но некоторые люди говорили мне, что у него есть большой недостаток: "Используя декларации сценариев, что только один человек может использовать ваш сайт одновременно без конфликтов"
Я делаю правильно? Правильно ли строить веб-приложение таким образом?

3 ответа

Это плохая идея, но это не потому, что только один человек может использовать сайт одновременно. Это плохая идея, потому что код станет трудно поддерживать. Код подключения к вашей базе данных должен быть отделен от логики вашего представления. Возможно, поместите его в сервлет (в идеале он должен быть абстрагирован в некотором постоянном слое). Сервлет получит данные из базы данных и сделает их доступными для рендеринга jsp.

Как и сервлет, JSP также переводятся в сервлет и затем компилируются, поэтому все, что вы объявляете в блоке декларации JSP, т.е. <%! ... %> будет прямо заявлено в переведенном сервлете. Что касается сервлета, то в течение всего жизненного цикла сервера существует только один экземпляр сервлета, и только созданный поток вызывается только из сервисного метода только из этого экземпляра. Поэтому, если происходит одновременный запрос, они могут изменить один и тот же элемент данных и могут привести к неожиданному результату.

Совет, который вы получили по скриптлетам, вызывающим однопоточность для вашего сайта, верен только в том случае, если код, который вы вставили в скриптлет, приводит к тому, что JSTL, Struts и т. Д. Генерируют код Java, который выглядит так же, как код, создаваемый JSP с помощью скриплетов.

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

Другие вопросы по тегам