Как вызвать сервлет из Java-кода
Я хочу вызвать сервлет с некоторыми параметрами и получить ответ. Код написан на Java. Каков наилучший (самый чистый) способ сделать это?
кроме того, могу ли я вызвать сервлет и продолжить код, ожидая завершения сервлета (закройте соединение и "забудьте об этом")?
4 ответов
лучше использовать Apache HttpClient API для обработки и связи с сервлетом
http://hc.apache.org/httpcomponents-client-ga/index.html
характеристики:
- Param легко передать и проанализировать ответ.
- это позволяет даже общаться через прокси
- открыть источник
- он также поддерживает Asyncronous и многое другое Пожалуйста, обратитесь к выше url.
пример здесь:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("http://www.yahoo.com/");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
С вашей точки зрения, сервлет-это просто URL-адрес на сервере. Что касается не ожидания ответа-читайте о потоках Java. Но вы не можете закрыть HTTP-соединение, не дожидаясь завершения сервлета, так как это может привести к сбою сервлета. Просто дождитесь ответа в отдельном потоке и отбросьте его, если это не имеет значения.
вы можете использовать Apache HttpClient Apache HttpClient
Это также имеет неблокирующие функции ввода-вывода доступны расширения NIO
здесь учебник для Apache HttpComponents.
вы также можете попробовать причал или Асинхронный Http-Клиент
для меня этой был самый короткий и самый полезный учебник о Apache HttpClient.