如何将 HTML 表单数据发送到 Java http 服务器
How to send HTML form data to Java http server
我想将一些 HTML 表单数据发送到我在 Java 中编写的程序。我打算使用 AJAX 发送数据并向我的 Java 代码添加一些 类 以使其充当 http 服务器。到目前为止,我一直使用 php 来处理这些事情,但我对 AJAX 和设置 http 服务器都是新手。我在网上寻找指南,但大多数页面要么与我正在做的不够相似,要么对像我这样的初学者来说太混乱了。
谁能告诉我一个基本示例:(1) 使用 AJAX 发送表单元素和 (2) 在 Java 中检索该数据?即使 link 一个体面的指南(同时显示两者)也会受到赞赏。
我知道有一些示例可以说明如何执行 (1),但我似乎无法在没有工作服务器的情况下测试客户端,反之亦然。
我也不确定在 Java 中实施哪个服务器解决方案。我已经准备好指南建议使用 Jetty,其他人建议使用 Simple,然后其他人建议使用 websocket 是前进的方向。我不确定如何进行。
至于 (2),我假设您必须以某种方式从 http 请求中提取数据?如何做到这一点?
我不是在寻找完整的解决方案,也不是在寻找具体的答案。只是让我开始的东西(无论是代码还是指南),但这与我想做的事情有关。干杯。
由于您是Java应用程序的新手,我向您推荐Java Servlets,这是最基本的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来节省你的精力。由于一些网络问题,我不能在这里上传图片:( 但是你可以 Google 使用关键字 "java servlet tomcat" 之类的。网上有很多教程 :)
我想将一些 HTML 表单数据发送到我在 Java 中编写的程序。我打算使用 AJAX 发送数据并向我的 Java 代码添加一些 类 以使其充当 http 服务器。到目前为止,我一直使用 php 来处理这些事情,但我对 AJAX 和设置 http 服务器都是新手。我在网上寻找指南,但大多数页面要么与我正在做的不够相似,要么对像我这样的初学者来说太混乱了。
谁能告诉我一个基本示例:(1) 使用 AJAX 发送表单元素和 (2) 在 Java 中检索该数据?即使 link 一个体面的指南(同时显示两者)也会受到赞赏。
我知道有一些示例可以说明如何执行 (1),但我似乎无法在没有工作服务器的情况下测试客户端,反之亦然。
我也不确定在 Java 中实施哪个服务器解决方案。我已经准备好指南建议使用 Jetty,其他人建议使用 Simple,然后其他人建议使用 websocket 是前进的方向。我不确定如何进行。
至于 (2),我假设您必须以某种方式从 http 请求中提取数据?如何做到这一点?
我不是在寻找完整的解决方案,也不是在寻找具体的答案。只是让我开始的东西(无论是代码还是指南),但这与我想做的事情有关。干杯。
由于您是Java应用程序的新手,我向您推荐Java Servlets,这是最基本的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来节省你的精力。由于一些网络问题,我不能在这里上传图片:( 但是你可以 Google 使用关键字 "java servlet tomcat" 之类的。网上有很多教程 :)