Файл Jsp, чем открыть
Обновлено: 21.11.2024
При первом открытии JSP компилятор компилирует код и создает файл класса. Вот почему изначально, когда вы открываете JSP в первый раз, это занимает немного больше времени.
Я могу понять, что в первый раз это занимает немного больше времени, но и при перезагрузке это занимает столько же времени. Можно ли скомпилировать jsp-страницу?
На вашей странице много изображений, и если они большого размера, это может занять много времени по сравнению с JSP на стороне сервера. Попробуйте заменить эти изображения текстом и увидите разницу. Вы можете заметить существенную разницу.
Есть пять небольших счетчиков одометров, каждый размером 15x20 пикселей. Их можно довольно быстро отобразить с помощью обычного html. Меня убивает getAttribute. На реальном веб-сервере первый раз происходит очень медленно, но перезагрузка происходит быстро. На локальном веб-сервере он работает медленно в любое время — возможно, мне придется внести некоторые изменения, но вопрос в том, будет ли сервлет работать быстрее, чем jsp?
Вы можете проверить настоящую страницу по адресу
Сервлет не будет быстрее этого.
Это отстой! Простите мой французский.
Я искал на форуме и нашел кое-что о jspc. это будет улучшение или я застрял?
Скорее всего, это скорость вашего соединения. Я проверил вашу ссылку с помощью своего DSL, и IE 6.0 полностью загрузил ее менее чем за 1,5 секунды. У Bellsouth перед моим домом есть оптоволоконный кабель, что, однако, дает мне большую пропускную способность.
Ну, скорость в Интернете низкая, поэтому я решил скачать Tomcat и поиграть с ним на своем ПК. И, к моему удивлению, запустить его через локальный хост так же плохо, если не хуже, потому что он тормозит даже при нажатии на перезагрузку. Один из предыдущих авторов сказал мне, что преобразование его в сервлет ничего мне не даст, поэтому я просто покопаюсь и посмотрю, можно ли что-нибудь сделать.
На самом деле, единственная причина, по которой я использую jsp, — это отслеживание определенной статистики загрузок и просмотров страниц. Может быть, я посмотрю, есть ли какой-нибудь счетчик посещений, даже если это коммерческий счетчик, который я мог бы использовать вместо дурацких кодов jsp. Раньше я использовал скрипты cgi, и обычно они работают довольно быстро.
PS: Кстати, я использую кабельный интернет Comcast и только что провел быстрый тест скорости -- 2,4 мегабита в секунду по ссылке, показанной ниже:
Страница JavaServer (JSP) — это ответ Java на популярные Active Server Pages (ASP) от Microsoft. JSP, как и ASP, обеспечивает упрощенный и быстрый способ создания динамического веб-контента. Он позволяет смешивать статический HTML с динамически сгенерированным HTML — так, как бизнес-логика и представление хорошо разделены.
- Разделение статического и динамического содержимого. JSP позволяет отделять статическое содержимое от динамического содержимого. Динамическое содержимое создается с помощью логики программирования и вставляется в статический шаблон. Это значительно упрощает создание и обслуживание веб-контента.
- Повторное использование компонентов и библиотек тегов. Динамическое содержимое может быть предоставлено многократно используемыми компонентами, такими как JavaBean, Enterprise JavaBean (EJB) и библиотеками тегов. Вам не нужно заново изобретать велосипед.
- Мощность и портативность Java
JSP внутренне компилируются в сервлеты Java
Иными словами, все, что можно сделать с помощью JSP, можно выполнить и с помощью сервлетов Java. Однако важно отметить, что сервлеты и JSP являются дополняющими технологиями, а НЕ заменой друг друга. Сервлет можно рассматривать как "HTML внутри Java", что лучше подходит для реализации бизнес-логики, поскольку в нем доминирует Java. JSP, с другой стороны, представляет собой "Java внутри HTML", что лучше подходит для создания презентаций, поскольку в нем доминирует HTML. В типичном приложении Model-View-Control (MVC) сервлеты часто используются для контроллера (C), что требует сложной логики программирования. JSP часто используются для представления (V), которое в основном связано с презентацией. Модель (M) обычно реализуется с использованием JavaBean или EJB.
Сервер Apache Tomcat
Первый пример JSP — «Java внутри HTML»
Начнем с простого примера JSP. Мы будем использовать веб-приложение под названием «hello», которое мы создали в нашем предыдущем упражнении. Используйте текстовый редактор для программирования, чтобы ввести следующие коды HTML/JSP и сохранить как " first.jsp " (тип файла " .jsp " является обязательным) в вашем домашнем каталоге веб-приложения (веб-контекст) (например, " webapps\hello " .
В браузере выберите параметр "Просмотр исходного кода", чтобы проверить ответное сообщение. Это должно быть одно из следующих значений в зависимости от сгенерированного случайного числа.
Важно отметить, что клиент не может «просматривать» исходный сценарий JSP (в противном случае вы можете иметь уязвимость в системе безопасности), а только результат, сгенерированный сценарием.
- Сценарий JSP – это обычная HTML-страница, содержащая программы Java. Напомним, что JSP — это «Java внутри HTML» (тогда как сервлет — это «HTML внутри Java»). Операторы Java заключены в (называемые скриптлетом JSP) или (называемые выражением JSP).
- JSP Scriptlet используется для включения операторов Java.
- Выражение JSP используется для вычисления одного выражения Java и отображения его результата.
- Метод request.getRequestURI() используется для получения URL-адреса текущейстраницы. Он используется в теге привязки для обновления страницы для получения другого случайного числа.
За кадром
При первом доступе к JSP Tomcat преобразует JSP в сервлет; скомпилировать сервлет и выполнить сервлет. Просмотрите сгенерированный сервлет для " first.jsp " и изучите преобразование JSP в сервлет. Найдите в Tomcat " work\Catalina\localhost\hello " для " first_jsp.java ".
Соответствующая часть сгенерированного сервлета извлекается следующим образом (с некоторыми упрощениями):
Пояснение
- Инструкции HTML записываются как часть ответа через out.write(), как "это есть".
- Скриптлеты JSP сохраняются в преобразованном сервлете как логика программы.
- Выражения JSP помещаются внутрь out.print() . Следовательно, выражение будет оцениваться, а результат оценки записывается как часть ответного сообщения.
Сравните сценарий JSP и сервлет, сгенерированный внутри, вы поймете, что сервлет — это «HTML внутри Java», тогда как JSP — это «Java внутри HTML». р>
Последующие обращения к тому же JSP будут намного быстрее, потому что они будут перенаправлены непосредственно на преобразованный и скомпилированный сервлет (преобразование JSP в сервлет и компиляция сервлета не потребуется снова), если только JSP не был изменен.
Пересмотрите сервлеты Java
Настройка страниц JavaServer (JSP)
Для развертывания файлов JavaServer Pages (JSP) их необходимо поместить в корень (или в подкаталог ниже корня) веб-приложения. Вы определяете параметры конфигурации JSP в подэлементах элемента jsp-descriptor в специфичном для WebLogic дескрипторе развертывания, weblogic.xml . Эти параметры определяют следующие функции:
Параметры компилятора JSP
Как часто WebLogic Server проверяет наличие обновленных JSP, которые необходимо перекомпилировать
Полное описание этих подэлементов см. в разделе jsp-descriptor.
Регистрация JSP в качестве сервлета
Вы можете зарегистрировать JSP как сервлет, используя элемент servlet стандартного дескриптора развертывания Java EE web.xml . (Файл web.xml находится в каталоге WEB-INF вашего веб-приложения.) Контейнер сервлетов поддерживает карту известных ему сервлетов. Эта карта используется для разрешения запросов к контейнеру. Добавление записей в эту карту называется "регистрацией" сервлета. Вы добавляете записи в эту карту, ссылаясь на элемент сервлета в файле web.xml через запись servlet-mapping.
JSP — это тип сервлета; регистрация JSP — это частный случай регистрации сервлета. Обычно JSP неявно регистрируются при первом вызове на основе имени файла JSP. Поэтому файл myJSPfile.jsp будет зарегистрирован как myJSPfile.jsp в таблице сопоставления. Вы можете неявно зарегистрировать JSP, как показано в следующем примере. В этом примере вы запрашиваете JSP с именем /main вместо неявного имени myJSPfile.jsp .
В этом примере URL-адрес, содержащий /main, вызовет myJSPfile.jsp:
Регистрация JSP в качестве сервлета позволяет указать порядок загрузки, атрибуты инициализации и роли безопасности для JSP точно так же, как и для сервлета.
Настройка библиотек тегов JSP
WebLogic Server позволяет создавать и использовать пользовательские теги JSP. Пользовательские теги JSP — это классы Java, которые вы можете вызывать из страницы JSP. Чтобы создать пользовательские теги JSP, вы помещаете их в библиотеку тегов и определяете их поведение в файле дескриптора библиотеки тегов (TLD). Вы делаете этот TLD доступным для веб-приложения, содержащего JSP, определяя его в дескрипторе развертывания веб-приложения. Рекомендуется поместить файл TLD в каталог WEB-INF вашего веб-приложения, потому что этот каталог никогда не доступен публично.
В дескрипторе развертывания веб-приложения вы определяете шаблон URI для библиотеки тегов. Этот шаблон URI должен соответствовать значению в директиве taglib на ваших страницах JSP. Вы также определяете местоположение TLD. Например, если директива taglib на странице JSP:
и TLD находится в каталоге WEB-INF вашего веб-приложения, вы должны создать следующую запись в дескрипторе развертывания веб-приложения:
Вы также можете развернуть библиотеку тегов в виде файла .jar.
Дополнительную информацию о создании пользовательских библиотек тегов JSP см. в разделе Разработка расширений тегов JSP для Oracle WebLogic Server.
WebLogic Server также включает несколько пользовательских тегов JSP, которые вы можете использовать в своих приложениях. Эти теги выполняют кэширование, облегчают управление потоком на основе атрибутов запроса и облегчают итерации по наборам объектов. Для получения дополнительной информации см.:
Настройка приветственных файлов
Разработчики веб-приложений могут определить упорядоченный список частичных URI, называемых файлами приветствия, в дескрипторе развертывания веб-приложения. Цель этого механизма — позволить установщику указать упорядоченный список частичных URI, которые контейнер будет использовать для добавления к URI, когда есть запрос на URI, который соответствует записи каталога в WAR, не сопоставленной с веб-компонентом. . Эта функция может упростить использование вашего сайта, поскольку пользователь может ввести URL-адрес, не указывая конкретное имя файла.
Файлы приветствия могут быть JSP, статическими страницами или сервлетами.
Файлы приветствия определяются на уровне веб-приложения. Если на вашем сервере размещено несколько веб-приложений, вам необходимо определить файлы приветствия отдельно для каждого веб-приложения. Вы определяете приветственные файлы, используя элемент welcome-file-list в web.xml. (Файл web.xml находится в каталоге WEB-INF вашего веб-приложения.) Ниже приведен пример конфигурации файла приветствия:
Пример 5-1 Пример файла приветствия
Настраиваемые страницы ошибок определяются в элементе error-page стандартного дескриптора развертывания веб-приложения Java EE, web.xml . (Файл web.xml находится в каталоге WEB-INF вашего веб-приложения.)
Есть два способа определения набора кодов:
Для операции POST вы можете установить кодировку в HTML
Когда WebLogic Server читает форму, он обрабатывает данные, используя набор символов SJIS.
Поскольку все веб-клиенты не передают информацию после точки с запятой в приведенном выше примере, вы можете установить набор кодов, который будет использоваться для запросов, используя элемент input-charset в специфичном для WebLogic дескрипторе развертывания, weblogic.xml .
Подэлемент java-charset-name определяет кодировку, используемую для преобразования данных, когда URL-адрес запроса содержит путь, указанный в подэлементе resource-path.
В следующем примере гарантируется, что все параметры запроса, соответствующие шаблону /foo/*, закодированы с использованием набора символов Java SJIS.
Этот метод работает как для операций GET, так и для операций POST.
Сопоставление наборов символов IANA с наборами символов Java
Чтобы сопоставить набор символов IANA с символом Java, задайте имена наборов символов в элементе charset-mapping дескриптора развертывания WebLogic, weblogic.xml . Определите имя набора символов IANA в элементе iana-charset-name и имя набора символов Java в элементе java-charset-name. См. сопоставление кодировки.
Настройка неявных включений в начале и конце JSP
Вы можете неявно включать прелюдии (также называемые заголовками) и коды (также называемые нижними колонтитулами) для группы страниц JSP, добавляя элементы и соответственно в элемент в дескрипторе развертывания веб-приложения web.xml. Их значения являются контекстно-зависимыми путями, которые должны соответствовать элементам веб-приложения. Когда элементы присутствуют, заданные пути автоматически включаются (как в директиве include) в начале и в конце каждой страницы JSP в группе свойств соответственно. Когда в группе имеется более одного элемента include или coda, они включаются в том порядке, в котором они появляются. Если к странице JSP применяется более одной группы свойств JSP, соответствующие элементы будут обрабатываться в том же порядке, в котором они отображаются в разделе конфигурации JSP.
Рассмотрите следующие файлы: /template/prelude.jspf и /template/coda.jspf . Эти файлы используются для включения кода в начало и конец каждого файла в следующем примере:
Пример 5-2. Неявные включения
Настройка групп свойств JSP
Группа свойств JSP — это набор свойств, которые применяются к набору файлов, представляющих страницы JSP. Эти свойства определяются в одном или нескольких подэлементах элемента jsp-property-group в дескрипторе развертывания web.xml.
Большинство свойств, определенных в группе свойств JSP, применяются ко всей единице перевода, то есть к запрошенному файлу JSP, который соответствует его шаблону URL, и ко всем файлам, которые он включает посредством директивы include. Исключением является свойство кодировки страницы, которое применяется отдельно к каждому файлу JSP, соответствующему его шаблону URL. Применимость группы свойств JSP определяется с помощью одного или нескольких шаблонов URL. Шаблоны URL используют тот же синтаксис, который определен в главе 12 "Отображение запросов в сервлеты" спецификации Servlet 3.1, но привязываются во время трансляции. Все свойства в группе свойств применяются к ресурсам в веб-приложении, которые соответствуют любому из шаблонов URL.Существует неявное свойство — быть файлом JSP. Группы свойств JSP не влияют на файлы тегов.
Правила группы свойств JSP
Ниже приведены некоторые правила, которые применяются к группам свойств JSP:
Если ресурс соответствует шаблону URL как в servlet-mapping, так и в jsp-property-group , применяется наиболее конкретный шаблон (в соответствии с теми же правилами, что и в спецификации сервлета).
Если шаблоны URL идентичны, jsp-property-group имеет приоритет над servlet-mapping .
Если хотя бы одна группа jsp-property-group содержит наиболее конкретный соответствующий шаблон URL, ресурс считается файлом JSP, и применяются свойства в этой группе свойств jsp.
Если ресурс считается файлом JSP, все свойства include-prelude и include-coda применяются ко всем элементам jsp-property-group с соответствующими шаблонами URL. См. раздел Настройка неявных включений в начале и конце JSP.
Что можно делать с группами свойств JSP
Вы можете настроить jsp-property-group для выполнения следующих действий:
Указать, что ресурс является файлом JSP (неявно).
Управление отключением оценки языка выражений JSP (JSP EL).
Управление отключением элементов сценариев.
Указать информацию о кодировке страницы.
Prelude и Coda включаются автоматически.
Указывает, что ресурс является документом JSP.
Написание документов JSP с использованием синтаксиса XML
Спецификация JSP 2.3 улучшила концепцию документов JSP, позволив им использовать синтаксис XML. Кроме того, документы JSP были расширены для использования групп свойств. Документ JSP — это страница JSP, написанная с использованием синтаксиса XML. Документы JSP должны быть описаны как таковые, неявно или явно, для контейнера JSP, который затем обрабатывает их как документы XML, проверяя правильность формата и применяя запросы, такие как объявления сущностей, если они есть. Документы JSP используются для создания динамического содержимого с использованием стандартной семантики JSP.
Пример 5-3. Простой документ JSP
Как использовать документы JSP
Вы можете использовать документы JSP несколькими способами, включая следующие:
Документы JSP можно передавать непосредственно в контейнер JSP. Это становится все более важным, поскольку все больше и больше контента создается в формате XML. Сгенерированный контент может быть отправлен клиенту напрямую или может быть частью конвейера обработки XML.
Документами JSP можно управлять с помощью инструментов, поддерживающих XML.
Документы JSP можно создавать из текстовых представлений путем применения преобразования XML, например XSLT.
Документ JSP может быть сгенерирован автоматически, например, путем сериализации некоторых объектов.
Важная информация о документах JSP
Ниже приведены некоторые важные сведения, относящиеся к документам JSP:
По умолчанию файлы с расширением имени файла .jspx или .tagx обрабатываются как документы JSP в синтаксисе XML.
Группы свойств JSP, определенные в дескрипторе развертывания web.xml, могут управлять тем, какие файлы в веб-приложении можно рассматривать как находящиеся в синтаксисе XML. См. раздел Настройка групп свойств JSP.
Если файл JSP начинается с , он используется в синтаксисе XML.
Пространства имен XML используются вместо тегов taglib (xmlns:prefix=". ") .
Теги , и используются вместо , , и .
Теги и используются вместо и .
Внутри значений атрибутов вместо использования для обозначения выражения используется только "%. %".
Читайте также: