【问题标题】:Servlet url parameterServlet url 参数
【发布时间】:2017-01-17 21:02:52
【问题描述】:

我正在开发 Java Servlets Web 应用程序。我在 WebContent 文件夹中有一个 html 文件“searchPage.html”。我在 web.xml 的欢迎文件列表中包含了“searchPage.html”名称。现在,每当我运行 servlet 时,都会运行 searchPage.html。网址是

http://localhost:8080/HeadersTest/.

“HeadersTest”是网络应用程序的名称。现在我的问题是,我想在“HeadersTest”后面的 url 中添加一些参数。这些参数将在 web 应用程序运行后出现。我是否需要在服务方法(doGet、doPost 等)中添加这些参数?例如:

http://localhost:8080/HeadersTest?paramName1=paramValue1&paramName2=paramValue2.

我对 servlet 还很陌生。如果有人能指出我正确的方向,那将非常有帮助。我在下面附上了我的网络应用程序目录结构的屏幕截图:

更新: 因为我在 web.xml 的欢迎文件列表中列出了“searchPage.html”,所以每当我运行 Web 应用程序时都会启动“searchPage.html”。当网络应用启动时,我想在 url 中添加一些参数。

【问题讨论】:

    标签: java servlets


    【解决方案1】:

    将参数添加到 URL 意味着这是一个 GET 请求。 只需在 servlet 的 doGet() 方法中处理它:

    request.getParameter("paramName1");
    

    当你想显示 URL 参数时,你可以使用

    response.sendRedirect("url with parameters");
    

    【讨论】:

    • 感谢您的回复。我不想访问参数。我想在响应中添加参数。
    • 删除了我编辑的内容。不完全理解您只想将参数添加到请求的 URL。必须考虑一下。
    • 我在 web.xml 的欢迎文件列表中列出了“searchPage.html”文件。因此,每当我运行 Web 应用程序时,都会打开 searchPage.html。现在我想让一些参数出现在 url 之后。
    • 你好 Jurgen,所以我从欢迎文件列表中删除了“searchPage.html”。现在我正在使用 xslt 样式表动态生成 html 页面。现在,只要用户打开链接:localhost:8080/HeadersTest,他们就会被重定向到另一个包含参数的 url:localhost:8080/…。我使用 response.sendRedirect("url with parameters") 做到了。我相信您在编辑答案之前已经给了我这个解决方案。
    【解决方案2】:

    一般来说,如果你想在Servlet/Controller边访问这些参数,我们会在url中传递参数。

    如果你想在你的控制器中使用这些参数,这只是你的MainServlet 类,那么你应该在 url 中传递这些参数。您可以使用

    访问这些

    request.getParameter("paramName1")

    在您的 doGet()doPost() 方法中。

    【讨论】:

    • 感谢您的回复 Abhijeet。我不想访问参数。我想在响应中添加参数,以便它们出现在 url 中。我尝试做 response.addHeader("paramName1", "paramValue1") 但参数没有出现在 url 中。
    • 如果你不想使用参数那你为什么要在 url 中传递它?
    • 我已经为后续的请求这样做了。我只需要在html页面第一次启动时添加参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2011-04-14
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多