В основном я просто пытаюсь создать простую HTML-страницу, которая может отправить строку текста на сервер. Сервер работает на каком-то порту на локальном хосте и получает эту строку.Java-сервер, который может получать запросы POST от JS-клиента
Я нашел code для простого сервера, который может обрабатывать POST запросы:
public static void main(String args[]) throws Exception
{
ServerSocket s = new ServerSocket(8080);
while (true) {
Socket remote = s.accept();
System.out.println("Connected");
BufferedReader in = new BufferedReader(new InputStreamReader(remote.getInputStream()));
PrintWriter out = new PrintWriter(remote.getOutputStream());
String str = ".";
while (!str.equals("")) {
str = in.readLine();
if (str.contains("GET")) {
break;
}
}
System.out.println(str);
out.println("HTTP/1.0 200 OK");
out.println("Content-Type: text/html");
out.println("Access-Control-Allow-Origin: null");
out.println("");
out.flush();
}
}
Но я не знаю, что я должен делать дальше. Я узнал, что мне нужно использовать XMLHttpRequest
, которые могут отправлять асинхронные запросы:
function sendData(data) {
var XHR = new XMLHttpRequest();
var urlEncodedData = "message";
var urlEncodedDataPairs = [];
var name;
for (name in data) {
urlEncodedDataPairs.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
}
urlEncodedData = urlEncodedDataPairs.join('&').replace(/%20/g, '+');
XHR.open('POST', 'http://localhost:8080', true);
XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XHR.send(urlEncodedData);
}
Итак, я начинаю свой сервер, открыв .html файл JS скрипт, и скрипт подключается к серверу. Как тогда я могу обработать сообщение, которое отправляет скрипт? Как я могу его декодировать и распечатать? И, в конце концов, я правильно пишу отправителя сообщения?
Думаю, вы разработаете этот «на голом металле» миллионы лет ... читайте о сервлете Java. Java имеет несколько httpframeworks с «легкой архитектурой» (несервлет), но сервлет API является самым простым для начинающего разработчика. –
Используйте Tomcat или что-то равное для создания обычного серверного приложения. –
Возможный дубликат [JavaScript post request as form submit] (http : //stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit) – Amir