2014-09-09 3 views
1

В моем сервлете я хотел бы перейти на другой сервлет, чтобы вызвать путь, определенный в web.xml.Как переместить путь 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.

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

ДОБАВЛЕНО

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

 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

попробовать удаленную отладку: http://javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html Кроме того, попробуйте добавить некоторые протоколирования. – msknapp

+0

@Arvind нет, просто пустая белая страница, как будто ничего не произошло (но код Sysout на одной строке над рассылкой печатает на консоли) – CodyBugstein

+0

@Imray, sop lines не будет печатать на странице, используйте response.getWriter() для распечатать содержимое на странице с сервлета (просмотр). – Arvind

ответ

0

решен, или, по крайней мере, избежать проблем с помощью sendRedirect вместо вперед.

I.e.

 String userPage = "/my_proj/user/" + username; 
     response.sendRedirect(userPage); 
Смежные вопросы