2015-12-31 24 views
3

因此,经过大量的试验和错误之后,我终于得到了一个服务器并与一个示例servlet一起运行。关于从Java 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发布请求中?另外,阅读信息的最佳方式是什么?

+0

这可能是快跟随网络上的任何许多servlet的教程可用,虽然我会专注于(一)现代servlet,(b)绝对没有包括在servlet中生成HTML :( –

回答

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"); 
+0

哇,这比我期待的要容易得多,谢谢!我没有这个帐户的声誉来标记这是正确的答案,但是如果其他人可以做到这一点,请随意! –

+0

@TimOgden你应该可以只需要等一会儿。标记为正确和提升是有区别的。你将无法注册,但你可以标记为正确的... – brso05

1

你可以写你form这样的:

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

,创造一个web.xml文件类似th是:

<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"); 
...