我正在尝试创建一个可以从系统获取输入的Web应用程序。
这个应用程序应该做的是听一些shell脚本执行时会发生什么,并通过web报告状态。
一个例子:
使用shell端的哪种编程语言是将其传递给Web界面的最简单方法?我打算将JSP / JAVA用于web。
这是否是思考这个问题的正确方法?欢迎提出任何建议
修改
像http://nodejs.org/之类的东西会对此有用吗?
答案 0 :(得分:5)
我会使用命名管道(FIFO)。您只需将输出写入管道并让应用程序读取它。我不确定是否还有其他方法可以获得比这更实际的系统。
我建议使用Perl作为后端。
编辑:
命名管道是UNIX上的一种特殊类型的文件。缩写FIFO代表“先入先出”。在LINUX期刊上,你可以找到一个有趣的read about named pipes。
Perl是一种非常强大的脚本语言,有许多可以在http://cpan.org上找到的即用型模块。你可以在SO上找到关于如何/从哪里开始学习Perl的答案here。
答案 1 :(得分:2)
应用程序的Web部分可以轻松读取文件或数据库,因此您只需要确保shell脚本输出的内容供Java代码更新。
例如,如果您像这样运行shell脚本
./myscript.sh > mylog.log
然后在您的Java代码中(注意您的JSP中不应该有逻辑),您可以读入文件以确定更新的状态,并将结果输出到JSP。
最好从数据库中读取数据,但这会涉及到更改shell脚本以将数据输出到数据库。
答案 2 :(得分:0)
您可以将shell脚本输出放到服务器上的某个存储中。并在网页上使用AJAX来轮询服务器并从该存储获取更新到页面。
如果您决定使用JSF进行网页创建,我可以推荐ajax2jsf库中的“a4j:poll”组件。它非常简单明了。从网页轮询服务器非常简单。
答案 3 :(得分:0)
答案 4 :(得分:0)
如果我正确理解您的问题,您希望在客户端计算机上显示一个网页,该网页报告服务器计算机上长时间运行的任务的状态。如果是这种情况,那么你需要关注一个叫做AJAX IMO的东西。
值得一提的是,我所知道的最简单,最容易理解的AJAX实现是Apache Wicket。