kirillmana, скорее всего не листенер, а фильтр. Это стандартная проверка на залогиненеость) пользователя. До того, как данные попадут в сервлет, они проходят через фильтр, который берёт в сессии нужный атрибут и проверяет, залогин ли юзер. Вот те маленький пример.
| Код |
<filter> <filter-name>CheckFilter</filter-name> <filter-class>CheckLoginFilter</filter-class> <init-param> <param-name>errorPage</param-name> <param-value>error.jsp</param-value> </init-param> </filter>
<filter-mapping> <filter-name>CheckFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
|
| Код | public class CheckLoginFilter implements javax.servlet.Filter { private String errorLink; private static final Logger logger = Logger.getLogger(CheckLoginFilter.class);
public void init(FilterConfig filterConfig) throws ServletException { errorLink = filterConfig.getInitParameter("errorPage"); }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8");
HttpServletRequest httpRequest = (HttpServletRequest) request; HttpSession session = httpRequest.getSession(); //String uri = httpRequest.getRequestURI(); logger.info("type =" + session.getAttribute("type"));
String action = httpRequest.getParameter("action"); logger.info("action =" + action);
if (action == null) { action = "next"; }
if ("Заказать".equals(action) || "Подать заявку".equals(action) || "Мои заявки".equals(action)) { if (session.getAttribute("type") == null || session.getAttribute("type").equals("admin")) { httpRequest.getRequestDispatcher(errorLink).forward(request, response); return; } else if (session.getAttribute("type").equals("client")) { //пользователь имеет право на просмотр страницы filterChain.doFilter(request, response); return; } }
if ("Горячие заявки".equals(action) || "Принять".equals(action) || "Подтвердить редактирование".equals(action)) { if (session.getAttribute("type") == null || session.getAttribute("type").equals("client")) { httpRequest.getRequestDispatcher(errorLink).forward(request, response); return; } else if (session.getAttribute("type").equals("admin")) { //пользователь имеет право на просмотр страницы filterChain.doFilter(request, response); return; } }
if ("next".equals(action)) { filterChain.doFilter(request, response); } else { filterChain.doFilter(request, response); } }
public void destroy() { }
|
|