JSP - Что не так с сценариями, и что использовать вместо этого

Я читал о JSP в книге много лет назад, и недавно решил учиться сам. Теперь я знаю, как использовать сценарии, выражения и декларации JSP

    <%! String str = "Hello World" %>
    <%= str.length() %>
    <% str=str.substring(0,5) %>

Но я читал во многих местах (на этом сайте и в других местах), что я не должен использовать скрипты. Это один из таких вопросов: Eclipse с использованием классов в JSP

Мои вопросы:

  • Что не так в сценариях?
  • Что я использую вместо этого?

Заранее благодарим за помощь!

EDIT:

Я не использую сервлеты, но вставляю свой код JSP на HTML-страницу. Дизайнеры пользовательского интерфейса, не знающие Java, могут легко изменить мою страницу. В основном я использую JSP в качестве внешнего интерфейса для отображения из базы данных и обновления для него, например, когда пользователь делает заказ.

Ответ 1

Это мое личное мнение, конечно. Я говорю, что скрипты:

  • Технология старинных 1998 года, которая должна исчезнуть; неудачный ответ на Microsoft ASP.
  • Гадкий
  • Трудно читать
  • Трудно поддерживать
  • Откажитесь от повторного использования и инкапсуляции
  • Поощрять использование сложной логики на страницах

Что использовать вместо этого?

  • Мир пошел в направлении HTML5, CSS3, JavaScript, jQuery, Bootstrap и веб-технологий, которые говорят с веб-службами REST. Это хорошее направление.
  • Если вы должны придерживаться JSP, начните с стандартной библиотеки шаблонов JSP. Сохраняйте HTML-страницы похожими на HTML - это упростит для разработчиков пользовательского интерфейса, чтобы их поддерживать.
  • Попробуйте более современное решение для шаблонов, такое как Thymeleaf, чтобы сгенерировать ваш HTML со стороны сервера.

Ответ 2

Здесь я беру на себя это.

  • Хотя довольно просто использовать Java-код с ним, Scriplets трудно читать, и это заставляет код выглядеть немного загроможденным imo.
  • Как и duffymo, и большинство людей порекомендовали бы, использование JSTL - намного лучшая альтернатива Scriplets, когда дело доходит до JSP.

Было время, когда я просто использовал бы Scriplets, чтобы использовать Java-код в JSP, но изучение JSTL было очень удобно. Это упрощает чтение кода, поскольку он хорошо сочетается с тегами HTML.

Ответ 3

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

Вместо этого вы должны использовать шаблоны, такие как Velocity/Freemarker, которые не позволяют полностью смешивать Java-код.

Дополнительным преимуществом этого является то, что разработчики-разработчики без Java-интерфейса могут вносить вклад в пользовательский интерфейс, не изучая Java.