我想用Java创建一个非常简单的HTTP服务器应用程序。
例如,如果我在端口8080的localhost上运行服务器,并从浏览器中调用以下调用,我希望获得字符串为'hello world!'的Json数组:
http://localhost:8080/func1?param1=123¶m2=456
我想在服务器中有一些看起来像这样的东西(非常抽象的代码):
// Retunrs JSON String
String func1(String param1, String param2) {
// Do Something with the params
String jsonFormattedResponse = "['hello world!']";
return jsonFormattedResponse;
}
我猜这个函数实际上不应该“返回”json,而是使用一些HTTP响应处理程序或类似的东西发送它。
最简单的方法是什么,而不需要熟悉许多具有特殊功能和方法的第三方库?
5条答案
按热度按时间jvlzgdj91#
你可以使用
com.sun.net.httpserver
包中的类:顺便说一下,
['hello world!']
是无效的JSON。字符串必须用双引号括起来。5kgi1eie2#
您可以:
安装ApacheTomcat,然后将JSP放到实现它的ROOT项目中。
我第二个@xehpuk。使用标准Java编写自己的单类HTTP服务器实际上并不难。如果你想在早期版本中这样做,你可以使用NanoHTTPD,这是一个非常知名的单类HTTP服务器实现。
我个人建议你看看Apache Sling(几乎是Java REST API的参考实现)。你可以在这里使用Sling实现你的需求,而不需要任何编程。
但正如其他人所建议的,标准的方法是创建一个java WAR并将其部署到“servlet容器”中,如Tomcat或Jetty等。
2vuwiymt3#
如果你已经熟悉servlet,你不需要太多来创建一个简单的服务器来实现你想要的。但我想强调的是,你的需求可能会迅速增加,因此你可能需要转移到一个RESTful框架(例如:Spring WS、Apache CXF)。
您需要使用标准servlet技术注册URI并获取参数。也许您可以从这里开始:http://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html
接下来,您需要一个JSON提供程序并将其序列化(aka马歇尔)为JSON格式。我推荐使用Jackson。看看这个教程:http://www.sivalabs.in/2011/03/json-processing-using-jackson-java-json.html
最后,你的代码看起来类似于这样:
Mapweb.xml中的URL:
请记住这是一个伪代码。你可以做很多事情来增强它,添加一些实用程序类,等等。
然而,随着项目的增长,您对更全面的框架的需求变得更加明显。
zlwx9yxi4#
运行
main
以在端口8080
上启动服务器Gradle依赖项:
ctrmrzij5#
有了新的SeBootStrap API,事情变得简单了:
来源:https://github.com/jakartaee/rest/blob/master/examples/src/main/java/jaxrs/examples/bootstrap/HelloWorld.java
这将在
helloworld/hello
处提供字符串Hello, World!
。你需要一些样板代码:
为了创建JSON,我推荐两个API:
完整的教程可以在https://headcrashing.wordpress.com/2022/05/28/coding-microservice-from-scratch-part-1-of-7-jax-rs-done-right-head-crashing-informatics-53/找到。