Что такое неявные объекты?Что это значит?

Каждый раз, когда я изучаю JSP и Сервлеты, я сталкиваюсь со словом неявные объекты, что означает термин?

Как их называют в моей программе, не инстанцируя объектов? Кто инстанцирует неявных объектов? Уточните.

Спасибо

18
задан informatik01 16 September 2013 в 12:31
поделиться

4 ответа

Неявные объекты в JSP являются Объекты, созданные контейнер автоматически и контейнер делает их доступными для Разработчики, разработчик не нужно создавать их явно. С Эти объекты созданы автоматически по контейнеру и доступ к использованию стандартных переменных; Следовательно, они называются неявными объекты.

Неявные объекты анализируются контейнер и вставлен в Сгенерированный код сервлета. Они есть Доступно только в JSPService метод и не в каком-либо декларации. Неявные объекты используются для разные цели. Наши собственные методы (пользовательские методы) не могут получить доступ их как они местные для обслуживания метод и созданы на время преобразования JSP в Сервле. Но мы можем передать их нашим Собственный метод, если мы хотим использовать их локально в этих функциях.

Источник: Roseindia.net

5
ответ дан 30 November 2019 в 08:48
поделиться

Неявные объекты - это набор объектов Java, которые контейнер JSP предоставляет разработчикам на каждой странице. Эти объекты могут быть доступны как встроенные переменные с помощью элементов сценариев, а также могут быть доступны в программно. Javabeans и Servlets.

Для подробного обзора и использования Пожалуйста, смотрите страницу ниже.

http://www.gulland.com/courses/javaserverpages/jsp_objects.jsp

1
ответ дан 30 November 2019 в 08:48
поделиться

Индекс может помочь даже на полях низких мощностей, если:

  1. , когда одно из возможных значений очень редко по сравнению с другими значениями, и вы ищете его.

    Например, есть очень немногие цветные слепые женщины, поэтому этот запрос:

     Выберите *
    От color_blind_people.
    Где гендер = 'f'
     

    , скорее всего, выиграет бы от указателя пола .

  2. Когда значения, как правило, сгруппированы в порядке таблицы:

     Выбрать *
    От Records_from_2008.
    Где год = 2010
    Ограничение 1.
     

    Хотя здесь есть только 3 . Здесь, записи с более ранними годы, скорее всего, скорее всего добавлены, поэтому очень много записей должны быть отсканированы до возвращения первой 2010 , если не для указателя.

  3. Когда вам нужно Заказать BY / LIMIT :

     Выберите *
    От людей
    СОРТИРОВАТЬ ПО
      Пол, ID.
    Ограничение 1.
     

    Без индекса потребуется Filesort . Хотя это несколько оптимизировано до предела , все равно понадобится полное сканирование таблицы.

  4. Когда индекс охватывает все поля, используемые в запросе:

     Создать индекс (low_cardinality_record, значение)
    
    Выберите сумму (значение)
    От MyTable
    Где low_cardinality_record = 3
     
  5. Когда вам нужно Отчетность :

     Выберите отчетливый цвет
    Из футболки
     

    MySQL будет использовать индекс для группы - на , и если у вас есть несколько цветов, этот запрос будет мгновенным даже с миллионами записей.

    Это пример сценария, когда индекс на поле низкого уровня мощности составляет , более эффективно , чем на высоком поле Cardinality.

Обратите внимание, что если DML производительность не сильно на проблеме, то безопасно создавать индекс.

Если оптимизатор считает, что индекс неэффективен, индекс просто не будет использоваться.

-121--1241856-

Это объекты, которые уже помещаются в область контейнера сервлета, так что он доступен с помощью El (язык экспрессии), таким как PageContext PageContext , Httpservletrequest # getparameter () , httpservletrequest # getHeader () и так далее. Это только для удобства, чтобы вам не нужно использовать старого фахионы скриптлетков , чтобы захватить их.

Итак, вместо того, чтобы

<%= pageContext.getSession().getMaxInactiveInterval() %><br>
<%= request.getParameter("foo") %><br>
<%= request.getHeader("user-agent") %><br>
<%  for (Cookie cookie : request.getCookies()) { // Watch out with NPE!
        if (cookie.getName().equals("foo")) {
            out.write(cookie.getValue());
        }
    }
%><br>

вы можете просто сделать

${pageContext.session.maxInactiveInterval}<br>
${param.foo}<br>
${header['user-agent']}<br>
${cookie.foo}<br>

, вы видите, что они следует, что они следует доступен для доступов Javabean (то есть, вы можете просто вызывать Getters Javabean путь). Вы видите, что использовал нотацию Brace [] , чтобы получить пользовательский агент , это потому, что - - - это зарезервированный символ в EL, поэтому $ {header.user -Agent} Не собирается работать, он попытался бы вернуть результат request.Getheader («Пользователь») - PageContex.findattribute («Агент») , который, очевидно, не собирается Работа.

Для обзора их всех, проверьте главу Неявные объекты в Учебке Java EE.

14
ответ дан 30 November 2019 в 08:48
поделиться

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

0
ответ дан 30 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: