[英]How to forward to a web.xml path from inside a servlet?
在我的Servlet中,我想通过调用web.xml
定义的路径来转发到另一个Servlet。
因此,例如,在我的web.xml
,我定义了:
<servlet-mapping>
<servlet-name>User</servlet-name>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
我想将我的servlet映射到
request.getRequestDispatcher("/user/" + user.getUsername()).forward(request, response);
但是,当我转到应该启动此路径的Servlet时,它返回的页面为空白。 意思是,路径有问题。 我知道它到达了此代码,因为我在其前面放了Sysout语句。
有谁知道为什么映射不正确? 我似乎尝试了所有合理的组合
添加
这是应该处理此路径的Servlet代码
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);
}
通过使用sendRedirect
而不是forward解决或至少避免了该问题。
即
String userPage = "/my_proj/user/" + username;
response.sendRedirect(userPage);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.