#java #jsp #jstl #el
#java #jsp #jstl #el
Вопрос:
Я начал читать JSP. Я наткнулся на неявный объект JSP, скажем, например, session
, application
и т.д. И после прочтения EL expression я узнал, что для EL expression также существует неявный объект.
Мой вопрос в том, в чем разница между этими неявными объектами?
Даже если они семантически одинаковы, почему они создают EL и немного усложняют задачу?
Поправьте меня, если я ошибаюсь
Комментарии:
1. извините, что не добавил эти теги;
Ответ №1:
В получаемом объекте нет никакой разницы, это просто разные способы доступа к одним и тем же объектам в каждой из технологий. Например, request
в JSP вы получите тот же объект, что и ${pageContext.request}
в EL.
В случае EL для удобства доступны дополнительные неявные объекты, такие как param
или requestScope
. Вы все равно могли бы получить те же данные, но синтаксис был бы неуклюжим.
Возможно, вы захотите сравнить это с неявными объектами в JSP по сравнению с «отсутствием» неявных объектов в сервлетах. Неявные объекты JSP не отличаются от объектов, которые вы можете получить в сервлете, просто неявные объекты обеспечивают более чистый синтаксис. Например, неявный session
объект тот же, который вы получили бы через HttpServletRequest#getSession()
. Исключением из этого является pageContext
, который не имеет эквивалента в сервлетах.
Комментарии:
1. Да, вот в чем я сомневаюсь; даже если оба создают одно и то же, тогда почему они не могут добавить эти методы в сам неявный объект JSP, вместо того, чтобы придерживаться EL?
2. Ну, на мой взгляд, одним из факторов может быть синтаксис — IIRC, в EL нет простого способа вызывать функции. Это затрудняет использование существующих функций, которые не являются средствами получения, плюс может привести к неудобному синтаксису.
3. Кроме того, неявные объекты JSP предназначены для использования в скриптлетах, в то время как эквиваленты EL предназначены для использования в выражениях EL и, следовательно, «оптимизированы» для этого синтаксиса.
4. Первые пара абзацев этого поста могут помочь прояснить, как работает EL и в чем заключаются недостатки.