繁体   English   中英

如何将参数从漂亮的URL传递到JSP页面?

[英]How to pass on parameters from pretty URL to JSP pages?

我试图一次做两件事,但似乎找不到能同时做到的答案。

我正在尝试:

我希望将以/user/{parameter}结尾的URL映射到一个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时所发现的内容也不是很详细,因此,对此提供很好的参考也将受到欢迎!

我希望将以/ 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);
    }

}

基本上就是全部。 使用诸如substring()和/或split()类的常用String方法来分解可用部分中的路径信息。

使用基本URL servlet解析URL并执行有条件servlet转发到适当的JSP。

request.getRequestDispatcher().forward(JSPurl)

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

  • /销售/ liquour /用户/ {}区
  • /销售/ liquour /柔和/用户/ {}区
  • /销售/闹钟/用户/ {类型}

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

您将有一个Web.xml servlet映射,以将servlet类org.myorg.SalesHandler映射到/ sales /。

在org.myorg.SalesHandler servlet类中的服务方法重写中,分析URL模式(使用regexp或其他方式),然后有条件地使用以下命令转发请求

request.getRequestDispatcher().forward(JSPurl)

JAX-RS

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

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

首先,JAX-RS似乎令人生畏,但实际上实现起来非常简单直观。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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