How to call a servlet from Java code
I want to call servlet with some parameters and receive a response. The code is written in Java. What is the best (cleanest) way to do that?开发者_如何学编程
Also, can i call a servlet and continue with the code withoud waiting the servlet to finish (close the connection and "forget about it")?
Better use Apache HttpClient API for handling and communication with servlet
http://hc.apache.org/httpcomponents-client-ga/index.html
Features:
- Param are easy to pass and parse response.
- It allows even communicating thru Proxy
- Open source
- It also support Asyncronous and many more Please refer the above url.
Example from here:
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();
}
}
From your perspective, servlet is just an URL on some server. As for not waiting for a response - read about Java threads. But you cannot close the HTTP connection without waiting for a servlet to finish as this might cause a servlet to fail. Simply wait for the response in a separate thread and discard it if it doesn't matter.
You could use Apache HttpClient Apache HttpClient
This also has Non-blocking I/O functionality available NIO extensions
Here's a Tutorial for the Apache HttpComponents.
You could also try Jetty or Async Http Client
For me this was the shortest and most useful tutorial about Apache HttpClient.
精彩评论