JSP WebServlet urlPatterns 与子路径的映射

JSP WebServlet urlPatterns mapping with subpaths

我们正在 Netbeans 中为一个学校项目创建一个 JSP 网络应用程序,并试图弄清楚如何映射 url 模式。

在 servlet 中,我们目前映射 urlPattern 是这样的

@WebServlet(name = "ViewActivities", urlPatterns = {"/view_activities"})

但我们希望 urlPattern 包含这样的扩展路径

@WebServlet(name = "ViewActivities", urlPatterns = {"/partner/view_activities"})

这样我们就可以将 servlet 分成几个部分,感觉比使用

更正确
@WebServlet(name = "ViewActivities", urlPatterns = {"/partner_view_activities"})

网页文件夹的子文件夹中的 .jsp 页面也面临类似问题。

我们试过将它们保存在名为 partner 的子文件夹中,然后这样调用它们

request.getRequestDispatcher("/partner/view_activities.jsp").forward(request, response);

这只会导致 404 错误

到目前为止,我们还没有找到任何解释如何执行此操作的文章,所以这可能吗?还是有完全不同的方法来解决这个问题?

当您使用像 /partner/view_activities.jsp 这样的绝对路径时,您应该使用 ServletContext

提供的请求调度程序

contextObj.getRequestDispatcher("/partner/view_activities.jsp").forward(请求, 响应);

编辑

请求对象提供的请求调度器是相对于请求路径的。例如,如果使用“/partner”访问您的 Servlet,并且您将 jsp 存储在名为 'partner' 的文件夹中,那么您将使用

request.getRequestDispatcher("view_activities.jsp").forward(请求, 响应);