我开始学习servlet,我知道如果我在服务器上部署servlet,那么我可以通过浏览器使用get请求访问该servlet。现在我的问题是可以从java桌面应用程序访问同一个servlet(使用套接字。)?
这是我的客户端代码:
public class SocketClient {
public static void main(String[] args) throws IOException {
Socket myClient;
Scanner reader;
myClient = new Socket("http://localhost:8080/HelloWorld/MyFirstServlet", 8080);
reader = new Scanner(myClient.getInputStream());
System.out.println(reader.nextLine());
}
}
答案 0 :(得分:1)
当然可以。但是你不必打开socket。您必须改为创建HTTP连接。有关详细信息,请查看以下讨论:
How do I do a HTTP GET in Java?
如果你需要使用其他HTTP方法google,比如:“如何在java中发出HTTP METHOD请求”,其中METHOD是GET,POST,DELETE,HEAD,OPTIONS等。
答案 1 :(得分:1)
是的,你可以。浏览器只是一个计算机程序。它使用套接字与服务器通信。您可以编写一个也使用套接字与服务器通信的程序。您的程序必须使用与浏览器相同的通信协议:HTTP。
事实上,编写与HTTP服务器通信的程序是如此常见,以至于Java为此提供了一个API(在SO上查找有关using java.net.URLConnection
的问题),并且有基于这些基础的应用程序框架。使它更容易(例如RestTemplate
of Spring)。