繁体   English   中英

如何从servlet内部转发到web.xml路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM