【问题标题】:jsp to servlet communication with parameters from URL, not a formjsp 与来自 URL 的参数的 servlet 通信,而不是表单
【发布时间】:2011-04-21 16:44:45
【问题描述】:

我正在使用 netbeans 创建一个 Web 应用程序,它允许手机用户扫描二维码并检索期刊的上一个/下一个标题信息。带回家的一点是,用户不会将数据输入到任何表单中。 QR 码将包含 URL 末尾的搜索字符串,我希望搜索在页面加载时开始并输出带有搜索结果的页面。现在(由于简单性),我的模型只是解析一小部分 MARC 记录的 XML 文件。哦,最重要的是......我对Java编程和使用netbeans是全新的。我不知道 javabean 是什么,或者任何更先进的技术。所以,有了这个背景解释,这是我的问题。

我创建了一个解析我的 xml 并正确检索结果的 java 类(main 方法)。我有一个 index.jsp,里面有我的 html。在 index.jsp 中,使用 get 从我的 URL 获取标题信息没有问题。 但我不知道如何将这些参数传递给包含我的 java 代码的 servlet。如果我设法将搜索字符串发送到 servlet,那么我不知道如何将该数据发送回 index.jsp 以在浏览器中显示。

到目前为止,我看到的每个示例都假设您正在获取表单数据,但我需要在页面加载时找到、处理和返回参数...IOW,无需用户输入。

感谢您的任何建议。 塞西

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    只需将必要的预处理代码放入servletdoGet()方法中即可:

    String foo = request.getParameter("foo");
    // ...
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
    

    并调用 servlet 的 URL 而不是 JSP 的 URL,例如http://example.com/page?foo=bar 而不是 http://example.com/page.jsp?foo=bar/page/* 的 URL 模式上的 servlet 映射相结合。

    【讨论】:

    • 谢谢!这是有道理的。按照您的建议编辑 servlet 并调用 servlet 的 URL 而不是 JSP 是“某种”工作。我现在要做的只是在它从 URL 中检索到的参数的 servlet 中的一个简单的 println。 IOW,我的 JSP 在将我的浏览器指向 servlet URL+变量后加载,但我没有看到我的 servlet 从 URL 检索到的参数,我不知道如何将结果放在我的 JSP 上的特定位置.我在这里看到了一些讨论 JSP 中 EL 的帖子,但这些帖子是针对 POST/form 情况的。
    • 只需在JSP中使用${param.foo}即可获取JSP中的参数。它真的是 POST 还是 GET 无关紧要。它只对 servlet 中的工作流很重要。另请参阅stackoverflow.com/tags/servlets/info,这可能也有帮助stackoverflow.com/questions/3177733/…
    • 谢谢!你真的帮了大忙。像魅力一样工作
    【解决方案2】:

    你可以在servlet中使用request.getParameter("paramName");获取url参数

    您可以使用从 servlet 到 jsp 的转发请求将属性从 servlet 传递到页面。

    另见

    【讨论】:

      【解决方案3】:

      请记住,您的 JSP 页面将在内部编译为 servlet。因此,您可以检索字符串并在同一个 JSP 中将其打印回来。例如,假设您在名为 param 的参数中获取字符串,您的 JSP 中将有类似的内容:

      <%
       String param = request.getParameter( "param" );
       out.println( "String passed in was " + param );
      %>
      

      最后一件事,你提到了 main 方法——它只在独立应用程序中执行——而你说的是 web/JSP :O

      【讨论】:

      • 感谢您的快速回复。这正是我的问题。我将所有代码都作为主要方法...所以我考虑使用 servlet 的原因。从 URL 中检索我的变量并将其包含在 JSP 中没有问题。我可以将它输出到页面就好了。但是我不能简单地将我的 java 代码复制到我的 jsp 中,所以我无法启动我的 XML 解析器。我对自己编码所需的 XPath 还很陌生,这需要付出血汗和泪水。所以在我剩下的两天内重写它的想法可能几乎是不可能的。
      • 不仅如此,十年来也不鼓励使用JSP scriptlets。另见stackoverflow.com/questions/3177733/…
      • 是的,在做了一些研究之后,我发现在 JSP 中放置大量代码是一种糟糕的形式。将事物分开是有意义的。我不知道如何将数据传递给我的解析程序,然后再传回 JSP。我认为我通过将代码创建为主类而犯了“架构”错误。哎呀,我什至不知道如何将代码复制到 servlet 中,更不用说在 JSP 和 servlet 之间移动数据了。看来我为我的 Java 课程构思了一个项目,该项目远远超出了新编程学生的技能。
      猜你喜欢
      • 1970-01-01
      • 2011-04-21
      • 2018-10-30
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2013-05-20
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多