我想用Java编写可以动态计算内容的东西。所以,我希望有一个可以回复AJAX请求的Java服务器。这就是我所需要的一切。我希望它尽可能简约。
如果你想要一个假设的场景,假装我想写一个加法器服务。我可以传递JSON的东西:{" action" :"添加"," args":[0,1}}并获得{" sum" :1}回来。这就是全部,但我想在网上发布。我不关心安全或其他任何事情。所以没有会话,没有https或任何东西。
我不想设置服务器或使用一些膨胀的框架。我认为我可以使用JNetPCap和纯旧Java实现这一目标,但我也想摆脱PCap。
我想我在询问标准JRE或一个非常轻便的罐子里能给我什么样的东西。
谢谢你们。
编辑:为了练习的目的,想象一下我想要编写的内容应该能够在安装了Java且具有开放端口的任何东西上运行。
编辑#2:事实证明我的整个思维过程都有一个根本的缺陷:如果我有一台只提供JSON的服务器,那么就无法在同一个域上拥有一个可以安全地请求JSON的页面使用JSONP或其他东西。所以,我将使用JLHTTP。谢谢所有参与的人。
答案 0 :(得分:1)
由于AJAX请求/响应依赖于HTTP,因此您将不得不使用某种HTTP服务器。我推荐Jetty,因为它非常轻巧,似乎有很多关于如何使用它的例子。
答案 1 :(得分:1)
This is迄今为止我用Java编写的最轻量级的HTTP服务器(整个事件为39 KB)。我用它来进行集成测试,我不知道它如何作为生产服务器。特别是,我不知道它如何处理多个并发请求。
答案 2 :(得分:0)
我认为你可能会过于迅速地忽视“臃肿的框架”。你要做的是实现 - 至少是 - 能够接收,理解和响应使用JSON进行消息传递的http GET请求。虽然这可以使用完全原生于您的mill jdk运行的代码来完成,但是如果您遵循Tomcat或Jetty的快速教程,您最终可能会编写更多代码来完成此任务。这就是我猜@ jcm评论的目的。
但如果你真的想完成这件事并且不考虑它,那么你真正需要做的就是遵循这样的教程:http://www.youtube.com/watch?v=EOkN5IPoJVs
视频正在使用tomcat和eclipse。这个版本是较旧版本,但它足够接近你可以玩游戏并弄明白。我只推荐Tomcat,因为我所知道的;但是当@David建议时,Jetty可以很好地工作,我确信那里也有很多简单的教程。
此外,一旦你启动了servlet,我认为你会发现解析你的json请求是因为字符串很烦人。我建议调查一下gson。这是将JSON字符串映射到POJO的一种非常简单的方法。
我所说的要点是,使用java本地执行此操作并且没有任何第三方软件可能是最短的路径,但不是最简单的路径。就像把车开到你的朋友家里可能是一个3英里的车程,但它比在树林里跑1英里更容易和更快。
答案 3 :(得分:0)
我倾向于这样的事情:
http://examples.oreilly.com/9781565923713/Server.java
我不确定是否可以通过它处理AJAX请求,或者JRE是否有标准库来读取来自套接字的请求。
答案 4 :(得分:0)
您可以使用Java的nio在大约一百行代码中实现一个非常基本的HTTP服务器。我写了一篇用于日志记录的讲座(作为print-by-println的替代品)。它在概念上类似于您的Server.java示例,但使用了nio包。假设您不想编写自己的,或只是想要一个示例,请查看Raining Sockets。接下来,您需要一些东西来解析JSON。您可以使用Gson(没有链接,因为我的SO声誉不够高),或者再次编写自己的。如果您自己编写,可能需要使用像ANTLR这样的解析器生成器工具。如果你想要比仅匹配“HTTP GET”更严格地支持HTTP规范,ANTLR也可能有所帮助。