【问题标题】:Dynamically create url in jsp file在jsp文件中动态创建url
【发布时间】:2013-02-20 11:05:44
【问题描述】:

所以我有一个 jsp 文件,在这个文件中我想动态生成一个新 jsp 文件的 url。

我该怎么做?如果我简单地写<a href="newfile.jsp"> " Click here" </a>,然后运行我的程序,当我点击 url 时,我只会得到一个 404 错误,而不是一个空白的新页面。设置它还需要什么?

【问题讨论】:

  • 您需要提供更多信息才能获得答案。应用程序中的第二页在哪里?你用什么“url”来点击第一页?
  • 那是我的问题。第二页不在任何地方,因为我还没有创建它。当我单击链接时,我想知道如何“即时”创建它(因为我的程序中的链接会根据不同的因素而变化)。第一页是主页,所以我直接从那里启动程序。不需要链接。
  • @user1782677 您不应该尝试即时创建页面。如果您的页面会根据不同的因素发生变化,您可以将 url 中的不同参数传递给页面,以控制页面的加载方式。
  • 所以我需要做的是我有一堆产品用于商店(不是真正的商店),当点击该产品的链接时,它应该会将您带到显示该产品的页面更详细。所以我猜从你所说的我应该有一个默认的产品显示页面,根据我传入的参数和 url 显示不同的东西?所以我知道我可以通过执行以下操作来做到这一点:filename.jsp?id=myID 但是一旦我在 .jsp 文件中,我应该调用什么来使用我传入的那个参数?

标签: java html jsp url web


【解决方案1】:

所以,正如我所见,您需要即时创建一些Web 资源。我不认为生成JSP 页面是解决这个问题的正确方法。您可以有一个Servlet 来处理该请求,它也可以有一些Web 资源 注册表。简单场景:

  1. 用户点击链接/createProductA => Servlet保存这个“productA”和一些相应的信息(一些细节、信息、相应的渲染模板等)
  2. 然后你点击 /vewProductA => Servlet 也处理这个问题,但知道需要提供详细信息页面。它从其注册表中获取信息并呈现所需的模板。对于客户端,它将与页面相同。

如果您需要即时更改渲染模板,这种情况可能会有所帮助,例如在数据库中。如果您的详细信息页面布局是静态的,那么您可以拥有一页,例如/viewProduct.jsp 并将 id 传递给它。这是 Java Web 应用程序的常用方法。

【讨论】:

    【解决方案2】:

    要么按照 mudalov 的解释使用 Servlet,要么您可以使用 .htaccess 文件并定义任何 url,例如将 something.html 或 something.jsp 重定向到所需的 JSP/SERVLET

    RewriteRule ^/(.*)\.html /servlets/controllerServlet/id=$1
    

    因此,如果您的 url 是 newfile.html,那么您的 controllerServlet 将接收带有参数 id="newfile" 的请求

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多