【问题标题】:A few questions about receiving data from a Java servlet [duplicate]关于从 Java servlet 接收数据的几个问题 [重复]
【发布时间】:2015-12-31 14:02:55
【问题描述】:

所以,经过大量的试验和错误,我终于建立了一个服务器并与一个示例 servlet 一起运行。

我正在努力让您可以输入歌曲和艺术家并按提交,我的 java 程序将读取这些信息。

我想要的信息来自 JSP 页面上的表单。代码在这里:

<form>
            <input type="text" placeholder="Enter Song"/>
            <input type="text" placeholder="Enter Artist"/>
            <input type="submit" value="Submit" formmethod="post" formaction="GetSongAndArtist"/>
</form>

现在,我已经为我的 servlet 代码编写了这个,但我只是不确定我需要做什么来完成它:

  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");

    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet GetSongAndArtist</title>");
        out.println("</head>");
        out.println("<body>");
        BufferedReader br = request.getReader();
        out.println("<h2>" + br.read() + "</h2>");
        out.println("<h1>Servlet GetSongAndArtist at " + request.getContextPath() + "</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

所以我的问题是,用户在文本框中写入的信息会自动包含在 HTTP 发布请求中吗?另外,阅读信息的最佳方式是什么?

【问题讨论】:

  • 遵循网络上提供的许多 servlet 教程中的任何一个可能会更快,尽管我会专注于 (a) 现代 servlet,并且 (b) 绝对没有包括在 servlet 中生成 HTML: (

标签: java jsp servlets


【解决方案1】:

尝试为您的inputs 命名:

<input type="text" name="song" placeholder="Enter Song"/>
<input type="text" name="artist" placeholder="Enter Artist"/>

然后使用HttpServletRequest 对象获取您的参数:

String song = request.getParameter("song");
String artist = request.getParameter("artist");

【讨论】:

  • 哇,这比我预期的要容易得多,谢谢!我在此帐户上没有将其标记为正确答案的声誉,但如果其他人可以做到,请随意!
  • @TimOgden 你应该可以,你可能只需要等待一段时间。标记为正确和赞成是有区别的。您将无法投票,但您可以标记为正确...
【解决方案2】:

你可以这样写你的form

   <form action="ServletName" method="GET">
   <input type="text" name="song" placeholder="Enter Song"/>
    ...
   </form>

然后创建一个类似这样的web.xml 文件:

  <servlet>
    <servlet-name>ServletName</servlet-name>
    <servlet-class>Servlet_name</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/ServletName</url-pattern>
</servlet-mapping>

在你的 servlet 中检索数据使用这个:

 String song = request.getParameter("song");
 ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2019-02-28
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多