Как вызвать сервлет из Java-кода

Я хочу вызвать сервлет с некоторыми параметрами и получить ответ. Код написан на Java. Каков наилучший (самый чистый) способ сделать это?

кроме того, могу ли я вызвать сервлет и продолжить код, ожидая завершения сервлета (закройте соединение и "забудьте об этом")?

4 ответов


лучше использовать Apache HttpClient API для обработки и связи с сервлетом

http://hc.apache.org/httpcomponents-client-ga/index.html

характеристики:

  1. Param легко передать и проанализировать ответ.
  2. это позволяет даже общаться через прокси
  3. открыть источник
  4. он также поддерживает 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.