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

如何将HTML表单数据发送到JavaHTTP服务器,java,ajax,websocket,Java,Ajax,Websocket,我想向我用Java编写的程序发送一些HTML表单数据。我打算使用AJAX发送数据,并将一些类添加到Java代码中,使其表现为http服务器。到目前为止,我一直在使用php处理类似的事情,但我对AJAX和设置http服务器都是新手。我在网上找过一些指南,但大多数页面要么和我现在做的不够相似,要么对我这样的初学者来说太混乱了 有没有人能给我举一个基本的例子:(1)用AJAX发送表单元素,(2)用Java检索数据?即使是一个链接到一个体面的指南(显示两者)将不胜感激 我知道有一些例子说明了如何做(1)

我想向我用Java编写的程序发送一些HTML表单数据。我打算使用AJAX发送数据,并将一些类添加到Java代码中,使其表现为http服务器。到目前为止,我一直在使用php处理类似的事情,但我对AJAX和设置http服务器都是新手。我在网上找过一些指南,但大多数页面要么和我现在做的不够相似,要么对我这样的初学者来说太混乱了

有没有人能给我举一个基本的例子:(1)用AJAX发送表单元素,(2)用Java检索数据?即使是一个链接到一个体面的指南(显示两者)将不胜感激

我知道有一些例子说明了如何做(1),但我似乎无法在没有工作服务器的情况下测试客户机,反之亦然

我也不确定用Java实现哪个服务器解决方案。我已经准备好了指南,建议使用Jetty,其他人建议使用Simple,然后其他人建议使用websocket。我还没有决定如何进行

至于(2),我假设您必须以某种方式从http请求中提取数据?如何做到这一点


我不是在寻找一个完整的解决方案,也不是一个具体的答案。只是一些让我开始的东西(无论是代码还是指南),但这是相对于我想要做的。干杯。

因为您是Java应用程序新手,我推荐您使用Java servlet,它是最基本的Java服务器类型

下面是我所有的示例代码,考虑到服务器的AJAX,并在Javaservlet中检索数据

您可以自己在Tomcat上部署该程序,但是使用一些IDE(IntellijIDEA、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>

函数提交(){
var msgContent=document.getElementById(“txtMessage”).value;
$.ajax({
url:“myServlet”,
数据:{
文本:msgContent
},
成功:功能(数据){
警报(数据);
},
错误:函数(数据){
控制台日志(数据);
}
});
}
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>

servlet
Servlet
servlet
/myServlet

至于如何部署,您可以通过使用IDE来节省能源。由于一些网络问题,我无法在这里上传图像:(但你可以用关键词“java servlet tomcat”或其他什么东西进行谷歌搜索。网上有大量教程:)

你创建了可以处理ajax请求的java应用程序吗?@yellen,不,我还没有。原因有两方面:我不确定是否需要ajax或websocket来实现这一点,也不确定如何处理该请求。这里的指南说明了如何设置服务器,但没有说明如何从请求中提取数据。我最大的问题是,您似乎不能简单地先处理客户机,然后再确定服务器将如何工作。似乎您需要找出如何同时完成这两个任务,因为这两个“方面”相互依赖。如果您打算使用Java,则必须创建一个Java web项目,该项目将部署在您的应用程序服务器/容器中。您需要编写能够调用ajax的服务。有太多的选项可供选择。我没有完全按照您提供的方式尝试您的代码,但Ajax和Servlet做到了这一点。谢谢