1

我试图一次做两件事,但我似乎没有找到可以同时做两件事的答案。

我正在尝试这个:

我希望以结尾的 URL/user/{parameter}映射到可以访问参数的 JSP 页面 user.jsp。

我找到了使用这种方法将参数从 web.xml 文件传递​​到 JSP 的方法

<init-param>
<param-name>someParam</param-name>
<param-value>itsValue</param-value>
</init-param>

我找到了创建 URL 过滤器并将它们映射到 Java Servlet 的方法。

我需要的是一个组合。此外,我在将 URL 参数传递给 Servlet 时发现的内容也不是很详细,因此也非常欢迎提供一个很好的参考!

4

2 回答 2

4

我希望以 /user/{parameter} 结尾的 URL 映射到一个 JSP 页面 user.jsp,我可以在其中访问参数。

映射一个 servlet/user/*并用于HttpServletRequest#getPathInfo()提取路径信息。

例如

@WebServlet("/user/*")
public class UserServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String pathInfo = request.getPathInfo(); // "/{parameter}"
        // ...
        request.getRequestDispatcher("/WEB-INF/user.jsp").forward(request, response);
    }

}

基本上就是这样。使用常用String方法,如substring()和/或split()将路径信息分解为可用部分。

于 2013-02-04T01:42:14.167 回答
1

使用 base-url servlet 解析 URL 并执行条件 servlet 转发到适当的 JSP。

request.getRequestDispatcher().forward(JSPurl)

假设您有一个 URL 分支/sales/。在此 URL 分支下,您将允许以下 URL 由以下 URL 提供服务/implemented/usersales.jsp

  • /sales/liquour/users/{地区}
  • /sales/liquour/soft/users/{地区}
  • /sales/toiletries/users/{type}

以及以下 URL 由/implemented/products.jsp - /sales/groceries/products/{section} - /sales/groceries/meat/products/{region} - /sales/groceries/vegetables/beans/products/{region}提供服务

您将有一个用于将 servlet 类 org.myorg.SalesHandler 映射到 /sales/ 的 web.xml servlet 映射。

在 org.myorg.SalesHandler servlet 类中的服务方法覆盖中,分析 URL 模式(使用正则表达式或其他方式),然后使用有条件地转发请求

request.getRequestDispatcher().forward(JSPurl)

JAX-RS

但是,当我们有 jax-rs 时,你为什么要这样做呢?

如何从 JAX-RS 服务转发到 JSP?.

JAX-RS 乍一看可能令人望而生畏,但实际上实现起来非常简单直观。

于 2013-02-04T01:22:44.310 回答