Я хочу создать страницу или сервлет JSP, которые будут работать двумя способами.
Пользователь заходит на страницу своего профиля:
HTTP // something.com / профиль /
Или они посещают страницу своих друзей:
http://something.com/profile/FriendsName
Они также могут посетить свою собственную страницу через явный URL-адрес, такой как:
http://something.com/profile/YourName
У меня есть установка сервлет-сопоставления, как показано ниже, для сопоставления любых запросов в / profile с моим JSP, который будет обрабатывать этот запрос.
<servlet>
<servlet-name>Profile</servlet-name>
<jsp-file>/profile.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Profile</servlet-name>
<url-pattern>/profile</url-pattern>
</servlet-mapping>
Тогда я подумал, что мог бы установить фильтр, который будет анализировать URL-адрес HTTPServletRequest для чтения после /profile/.
<filter>
<filter-name>profile-filter</filter-name>
<filter-class>ProfileFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>profile-filter</filter-name>
<url-pattern>/profile*</url-pattern>
</filter-mapping>
Теперь фильтр может устанавливать атрибуты в запросе HttpServletRequest. Как мне их вытянуть на странице JSP, чтобы проверить, было ли указано имя пользователя, и проверить, было ли установлено ваше собственное имя?
Как бы я мог создать bean-объект с областью видимости в ServletFilter, чтобы я мог использовать его на странице JSP с помощью jspBean следующим образом:
<jsp:useBean id="profileInfo" scope="page" class="ProfileInfo" />