关于从Java servlet接收数据的几个问题

时间:2015-12-31 14:02:55

标签: java jsp servlets

因此,经过大量的反复试验,我终于得到了一台服务器并运行了一个示例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帖子请求中?此外,阅读信息的最佳方式是什么?

2 个答案:

答案 0 :(得分:3)

尝试提供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");

答案 1 :(得分:1)

您可以这样写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");
 ...