如何将HTML表单数据发送到Java http服务器

问题描述:

我想将一些HTML表单数据发送到我用Java编写的程序。我打算使用AJAX发送数据并将一些类添加到我的Java代码中,以使其表现为http服务器。到目前为止,我一直使用php来处理这些事情,但我对AJAX和设置http服务器都很陌生。我已经在网上寻找指南,但大多数网页要么不像我所做的那样相似,要么对于像我这样的初学者来说太困难了。如何将HTML表单数据发送到Java http服务器

有人能告诉我一个基本的例子:(1)用AJAX发送表单元素和(2)用Java检索数据?即使链接到一个体面的指导(这两个显示)将不胜感激。

我知道有一些例子显示如何做(1),但我似乎无法测试没有工作服务器的客户端,反之亦然。

我也不确定要在Java中实现哪种服务器解决方案。我已经准备好提供Jetty,其他人简单的指南,然后其他人建议websocket是前进的方向。我不确定如何继续。

至于(2),我认为你必须以某种方式从http请求中提取数据?这个怎么做?

我不是在寻找完整的解决方案,也没有具体的答案。只是为了让我开始(无论是代码还是指南),但这与我想要做的事有关。干杯。

+0

你有没有创建你的Java应用程序,会处理你的ajax请求? – Yellen

+0

@yellen,不,我还没有。原因有两方面:我不确定是否需要ajax或websocket,我也不确定如何处理该请求。那里的指南显示了如何设置服务器,但不知道如何从请求中提取数据。我最大的问题是,看起来你不能简单地只是先处理客户端,然后弄清楚服务器将如何工作。看来你需要弄清楚如何同时做到这一点,因为“双方”如此相互依赖。 – Chris

+0

如果您打算使用Java,那么您将不得不创建一个将部署在应用程序服务器/容器中的Java Web项目。你需要编写可以调用Ajax的服务。有很多选择可用。 – Yellen

由于您是Java应用程序的新手,我推荐您使用Java Servlet,它是最基本的Java服务器类型。

这里是我的示例代码,考虑AJAX到服务器,并回顾Java servlet中的数据。

您可以自己在Tomcat上部署程序,但使用某些IDE(Intellij IDEA,Eclipse,NetBeans等)更容易。

这是我的代码。这些都是你需要的,仅此而已。

Servlet.java

import javax.servlet.http.*; 
import java.io.IOException; 
import java.io.PrintWriter; 


public class Servlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws IOException 
    { 
     String text = request.getParameter("text"); //Retrieve data 
     PrintWriter out = response.getWriter(); 
     out.println("Hello, you've typed" + text); 
    } 
} 

的index.jsp

<%-- 
    Created by IntelliJ IDEA. 
    User: pwwpche 
    Date: 2014/4/21 
    Time: 14:38 
    To change this template use File | Settings | File Templates. 
--%> 
<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 

    <title></title> 
    <script type="text/javascript" src="bootstrap/js/jquery.min.js"></script> 
    <script type="text/javascript"> 
     function submit(){ 
      var msgContent = document.getElementById("txtMessage").value; 
      $.ajax({ 
       url: "myServlet", 
       data: { 
        text : msgContent 
       }, 
       success: function (data) { 
        alert(data); 
       }, 
       error: function (data) { 
        console.log(data); 
       } 
      }); 
     } 
    </script> 
</head> 
<body> 
<form action="myServlet"> 
    <input type="text" name="mytext" id="mytext"> 
    <input type="submit" onclick="submit()"> 
</form> 
</body> 
</html> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
     version="3.1"> 
    <servlet> 
     <servlet-name>servlet</servlet-name> 
     <servlet-class>Servlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>servlet</servlet-name> 
     <url-pattern>/myServlet</url-pattern> 
    </servlet-mapping> 
</web-app> 

至于如何部署,你可以通过IDE做节省体力工作。由于一些网络问题,我不能在这里上传图片:(但你可以使用关键字“java servlet tomcat”或谷歌的谷歌有很多教程在网上:)

+0

我didn尽量按照您提供的代码来尝试您的代码,但Ajax和Servlet完成了这一诀窍。谢谢! – Chris