为Java应用程序添加Web的推荐技术

3
我是一个新手,刚进入Web开发领域(从微控制器到Web的道路真的很长)。
有一个Java软件(.jar)正在运行,它只是通过套接字发送/接收信息的后台进程,没有界面。
我想为它制作一个Web界面,并需要一些指导,关于如何应对这些主题。
代码:我应该保持它是.jar文件还是建议转换成.war并进行部署?还是其他? HTML / JavaScript代码:使用所见即所得编辑器编辑页面?和/或在IDE中编辑HTML代码?/使用GWT在Java中开发所有内容?还是其他? HTTP服务器:使用Apache服务器,Tomcat?使用HttpHandler在Java中实现?还是其他? 数据数据实际上是类、对象和一些writeObject持久性。我应该保留它们还是“Web开发”更适合与MySQL或某些SQL兼容?还是其他?
只是寻找一些简单而实用的工具,以避免重复造轮子。
有经验的Web开发人员,欢迎提供建议!

我正在关注http://www.creamtec.com/products/ajaxswing/,它可以将Swing应用程序转换为Ajax(这真的可以节省我很多工作)。 - Hernán Eche
3个回答

2

如果这是一个准确的总结

 You have a (presumably) proprietory protocol exposed over a socket interface.

 You desire to access the same function over HTTP, with a Browser based GUI.

然后我会这样处理:
1)考虑重构您当前的代码-在概念上,您有一个具有套接字接口的“核心”。您需要的是具有HTTP接口的相同“核心”...但也许这样做并不好? HTTP实际上是无状态的,具有请求/响应对。您可能使用套接字拥有更聪明的东西,因此可能需要进行一些重新设计,或者它刚好适合,甚至您需要变得非常聪明并使用流式传输,Comet或其他内容。
因此,首先决定方法。让我们乐观地假设标准HTTP模型适用于您。然后:
2)您可能会使用servlet API,因此TomCat或WebSphere Community Edition或任何易于访问的servlet引擎都可以。只需编写一些面向您的“核心”的servlet即可。
3)工具,Eclipse很好用。有很多替代品,但最好选择一个IDE。
4)特别是在移动到UI部分时,编辑HTML或JSP,某种所见即所得的工具很有用。如果要使用基于Javascript的UI,则情况会变得有点棘手-有产品存在,但我认为它们不像Java的Eclipse那么成熟。

总结得很好,我的计划是:1)我将保留socket核心,并且它与http接口非常匹配(但当然避免使用F5会更好=P),2)是的,Tomcat或@renick推荐的嵌入式Jetty,3)Eclipse或Netbeans都可以,4)我将继续避免使用UI编辑器,因为手动代码和自动化代码混合在一起并不容易(也许也不好)。 - Hernán Eche
1
你的Javascript和HTML与其余代码是分开的。使用专门的编辑器进行编写:并不一定有任何生成的代码,而是只看到你的代码的视觉效果。 - djna

2
我建议你嵌入Jetty,然后添加一些servlet来连接你现有的代码。
它真的很有效!

看起来很不错,因为它同时具备了HTTP和Servlet。 - Hernán Eche
我不敢相信它是如此简单,直到我尝试过。而且以后还有很多发展空间(例如JSP等)。 - renick
你认为这样做有效吗?我的意思是在运行Tomcat和Servlet与嵌入Jetty之间的性能差异方面,第一种情况下会有两个进程,在第二种情况下会有两个线程,也许进程可以比JVM管理线程更好? - Hernán Eche
嗨。我用它制作了一个应用程序,根据班次(一天中的时间)接受大约10-20个客户端连接。到目前为止,它对我来说运行良好。我没有与Tomcat比较其性能数字。我认为Tomcat会更好地扩展,但它不会嵌入(或者我不知道如何)。Jetty只是纯粹简单的嵌入。如果不考虑嵌入方面,Tomcat是明显的选择。 - renick

1

我最近学习了Spring。它是一个非常轻量级的框架,非常容易学习和使用。


我还在研究,Grails 怎么样? - Hernán Eche
Grails是一个高生产力的“约定优于配置”框架,类似于Ruby on Rails。您可以使用Groovy,这是一种在JVM上运行的动态语言。我也听说过很多好评,并且它由Spring提供支持。包括Ajax支持、强大且易于使用的视图模板(使用GSP - Groovy Server Pages)、与持久性框架的兼容性等等。 - Fernando Briano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接