1. Введение в узлы конфигурации web.xml
(1) Контекст-парам
Определение формата
<context-param> <may-name> contextConfiglocation </param-name> <param-value> classpath: spring/spring-mybatis.xml </param-value> </context-param>
эффект:
- Этот элемент используется для объявления параметров инициализации контекста в рамках приложения (весь веб -проект).
- Param-name устанавливает имя параметра контекста. Должно быть уникальное имя
- Param-Value устанавливает значение имени параметра, примером здесь является указание местоположения файла конфигурации пружины.
(2) Слушатель
Определение формата
// Слушание класса Указывает класс прослушивания, который наследует ServletContextListener. Он содержит метод инициализации контекстеинициализованного (событие ServletContexTextent) и метод уничтожения ContextDestoryed (EventContexTexTevent Event)
Функция: этот элемент используется для регистрации класса прослушивателя. Вы можете получить уведомления о том, когда происходит событие и что использовать в качестве ответа. Слушатели событий уведомляются при создании, изменении и удалении сеансов или среды сервлета. Часто используется в сочетании с контекстом-парамом.
(3) Фильтр
Определение формата
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param></filter><filter-mapping> <filter-name> harectencodingfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Функция: используется для указания фильтра для веб -контейнера. Фильтр может предварительно обработать запросы пользователей до того, как запрос достигнет сервлета, или обрабатывать ответы HTTP при выходе из сервлета; Перед выполнением сервлета сначала выполните программу фильтра и выполните некоторую предварительную работу для него; изменить запрос и ответ в соответствии с потребностями программы; Перехватывайте выполнение сервлета после того, как сервлет будет вызван.
(4) Сервлет
- Определение формата
// Настройка Spring MVC и укажите сервлет для обработки запроса. Есть два способа: // 1. Адрес по умолчанию файла конфигурации MVC: /Web-inf/$ <servletname) servlet.xml//2. Вы можете изменить местоположение файла конфигурации MVC через конфигурацию. Вам необходимо указать местоположение файла конфигурации MVC при настройке DispatcherServlet. // Здесь используется второй метод <!-Core Controller Core Springmvc-> <servlet> <servlet-mame> DispatchServlet </servlet-name> <serlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name> contextconfiglocation </param-name> <init-param> <param-name> contextconfiglocation </param-name> <param-value> classpath: Spring/Springmvc.xml </param-value> </init-param> <Load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name> DispatchServlet </Servlet-name> <url-pattern>*. Shtml </url-pattern
эффект:
- Создать и вернуть полную HTML -страницу, содержащую динамическое содержание на основе характера запроса клиента;
- Создайте часть HTML -страниц (HTML -фрагменты), которые могут быть включены в существующую HTML -страницу;
- Читать скрытые данные, отправленные клиентом;
- Прочитайте данные отображения, отправленные клиентом;
- Связь с другими ресурсами сервера (включая базы данных и приложения Java);
2. Процесс загрузки web.xml (шаги):
- При запуске веб-проекта контейнер (такой как Tomcat и Apache) будет читать два узла в своем файле конфигурации web.xml, контекста-парама и слушателя.
- Сразу же после этого контейнер создаст сервисконтекст (также известный как контекст сервлета), который может использоваться всем веб -проектом в рамках приложения.
- Контейнер преобразует <context-param> в пары ключей и передает его в ServletContext.
- Контейнер создает экземпляр класса в <Слушателю>, то есть создает слушателя. (Примечание: класс, определенный слушателем, может быть пользовательским классом, но должен унаследовать ServletContextListener).
- В методе прослушивания будет реализован контекст -инициализованный (ServletContextevent Args). В этом методе мы получаем: ServletContext = ServletContexTevent.getServletContext (); Значение контекста param = servletcontext.getinitparameter ("context-param key"); В этом классе также должен быть метод уничтожения ContextDestroyed (событие ServletContexTextent). Используется для выпуска ресурсов перед закрытием приложения, такого как закрытие подключения к базе данных.
- После того, как вы получите ценность этого контекста-парама, вы можете выполнить некоторые операции. Обратите внимание, что ваш веб -проект не был полностью запущен в это время. Это действие будет раньше, чем все сервлеты. Другими словами, в настоящее время операции, которые вы выполняете с ключевыми значениями в <context-param>, будут выполнены до того, как ваш веб-проект будет полностью запущен.
- Например. Вы можете открыть базу данных до начала проекта. Затем вы можете установить метод подключения к базе данных в <context-param> и инициализировать соединение базы данных в классе прослушивания.
Дополнительные знания: ServletContext - это глобальное пространство для хранения информации. Когда начнется сервер, он существует. Когда сервер закрыт, он выпускается. Запрос, один пользователь может иметь несколько сеансов, одного пользователя и ServletContext, все пользователи делятся одним. Поэтому, чтобы сохранить пространство и повысить эффективность, в ServletContext безопасно разместить необходимые, важные потоки, которыми все пользователи должны поделиться. Например, на веб -сайте покупок пользователи хотят получить доступ к подробной информации о продуктах. Если помещен в домен сеанса, каждый пользователь должен получить доступ к базе данных, которая слишком неэффективна; И в сервере, когда сервер запускается, он обращается к базе данных и помещает информацию о продукте в базу данных, чтобы все пользователи могли получить доступ к информации о продукте через контекст.
3. web.xml Узел Узел Заказ:
- Порядок загрузки узлов web.xml не имеет ничего общего с порядком их позиции в web.xml, то есть <Filter> не будет загружен сначала только потому, что <Filter> записан до <context-param>.
- Как упомянуто выше, <context-param> используется для предоставления паров ключевых значений для ServletContext, то есть контекстной информации приложения. Слушатель, сервис и другие узлы будут использовать эту контекстную информацию во время процесса инициализации, поэтому мы, наконец, пришли к выводу, что порядок загрузки узла Web.xml должен быть: Context-Param-> Hellocer-> Filter-> Servlet.
- Для определенного типа узла конфигурации требуется последовательность положения. Возьмите сервлет в качестве примера. Узел конфигурации, связанный с сервлетом, является картированием сервлета. Для сервлетов и картирования сервлетов с той же разделом конфигурации Сервлета-имени, картирование сервлетов должно быть определена после Сервлета. В противном случае, когда он анализирует картирование сервлетов, его имя сервлета еще не определено. Когда каждый сервлет инициализируется в начале веб -контейнера, он инициализируется в том порядке, в котором появляется раздел конфигурации сервлета.
- Окончательный вывод: порядок загрузки Web.xml: [Context -Param -> Прослушитель -> Filter -> Servlet -> Spring], а порядок фактических вызовов программы между узлами того же типа вызывается в соответствии с соответствующим порядком отображения.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.