Как переслать путь к web.xml из сервлета?

1

В моем сервлете я хотел бы переслать на другой сервлет путем вызова пути, определенного в web.xml.

Так, например, в моем web.xml я определил:

    <servlet-mapping>
        <servlet-name>User</servlet-name>
        <url-pattern>/user/*</url-pattern>
    </servlet-mapping> 

Я хотел бы, чтобы моя карта сервлета была

request.getRequestDispatcher("/user/" + user.getUsername()).forward(request, response);

Однако, когда я перехожу к сервлету, который должен запустить этот путь, возвращаемая им страница пуста. Смысл, в пути есть что-то не так. Я знаю, что он достигает этого кода, потому что я поставил перед ним инструкции Sysout.

Кто-нибудь знает, почему это неправильно отображается? Я пробовал каждую логическую комбинацию.

ADDED

Это код сервлета, который должен обрабатывать этот путь

        String pathInfo = request.getPathInfo();            
        Pattern urlPattern = Pattern.compile("^/([^/]+)$");
        Matcher matcher = urlPattern.matcher(pathInfo);
        if (matcher.matches()){
            String userPath = matcher.group(1);
            my_proj.components.User user = UserManager.getUserByUsername(userPath);
            request.getSession().setAttribute("user", user);
            request.getRequestDispatcher("/resources/jsp/user_home.jsp").forward(request, response);
        }
  • 0
    Попробуйте удаленную отладку: javarevisited.blogspot.com/2011/02/… Кроме того, попробуйте добавить некоторые записи.
  • 0
    @ Arvind нет, просто пустая белая страница, как будто ничего не произошло (но код Sysout на одну строку выше диспетчерской распечатывает в консоли)
Показать ещё 16 комментариев
Теги:
servlets
url-mapping

1 ответ

0

Решила или, по крайней мере, избежала проблемы, используя sendRedirect вместо forward.

Т.е.

        String userPage = "/my_proj/user/" + username;
        response.sendRedirect(userPage);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню