Java和JSP真的如此不同吗?

时间:2012-10-14 15:11:48

标签: java jsp utf-8 cross-platform

我计划将我的桌面财务应用程序(用Delphi编写)重写为Web应用程序,并且正在考虑使用哪种技术。其他可能的要求是将尽可能多的代码传输到共享库,该共享库也可以在应用程序的桌面版本中使用。没有像欠款总成本这样的参数。只要我愿意,我就可以重写它。

我需要一种跨平台技术,能够本地处理UTF-8并连接到PostgreSQL以及Microsoft SQL Server。

我已经使用Ruby on Rails进行了足够的编程,并且会说它对于商业网站来说非常好,但是不适合我自己的Web应用程序,因为我不喜欢它的“神奇”并且无法用UTF编写.rb文件-8。

PHP似乎与RoR类似,尽管我还没有尝试过。

ASP.NET / .NET MVC符合我的要求,但它仅适用于Windows。

所以,我选择了Java。但是他们在互联网上说Java和JSP是不同的技术,我不能使用Java桌面应用程序,只需很少的更改就可以将其转换为JSP。 Java和JSP真的如此不同吗?例如,在.NET中,我可以编写一个数据库和业务逻辑库,可以在桌面应用程序和ASP.NET应用程序中使用。

3 个答案:

答案 0 :(得分:1)

JavaJSPs没有什么不同。 JSP在执行之前将编译为Java Servlet

JSP 用于编写HTML / ASP,就像处理演示文稿的代码一样。换句话说,它提供了来自Java编码的隔离表示细节,但最终,服务器将您的JSP文件编译为Java Servlet。

您要在JSP中撰写的内容,可以通过Servlet撰写。

如果您计划使用JSP over Servlet,请确保您没有在JSP本身编写完整的代码,例如从数据库中读取数据。 所有业务逻辑都应该放在JAVA类中,并通过JAVA类在JSP中使用。如果设计得当,可以重用Java类。

如果我理解正确,那么这就是您要实现的目标,即achieve re-usability的{​​{1}}。

答案 1 :(得分:1)

除了可以像.NET一样重用您的服务,逻辑等之外,它们没有那么不同。 唯一的问题是视图,在java中有很多方法。如果您选择了JSP,则需要对所有演示文稿进行编码(您可以调用服务,逻辑等),但如果您希望在Desktop Java应用程序中尽可能多地重用代码,请将其带到Web上,也许是您的应该看一下java Applet,它们相对简单,可以变成一个java应用程序。

答案 2 :(得分:1)

对于您所描述的情况,为桌面和Web应用程序提供大量共享代码应该非常容易。应用程序的思想包括2层:

  • 第1层:业务逻辑和数据库访问代码,这个层只是纯java,它不应该依赖于任何无法在容器外运行的技术。例如,您可以使用JPA进行数据库访问,使用Spring将业务逻辑组织成漂亮的模块化单元。如果你为这一层编写了一个全面的测试套件,那么你就可以确信你的业务逻辑正常工作了,这样可以更容易地弄清楚bug是一个web应用程序错误还是一个桌面bug。
  • 第2层:UI逻辑,您将需要此层的两个实例,一个使用桌面UI技术(如Swing)或JavaFX编写,另一个层UI层使用Web应用程序编程技术(如JSP / Servlets,JSF)编写, SpringMVC,....等。这个UI层将依赖于第1层,并且由于第1层的综合测试套件,您可以确信它在第1层上调用的操作是好的。

就Web开发技术而言,我建议您考虑更高级别的JSP和Servlet框架,因为这样可以节省大量时间。

有可能使用JavaScript编写单个UI层,HTML 5是一个Web应用程序,但其行为类似于许多功能的桌面应用程序。然后,您可以制作产品的桌面版本,基本上启动不带chrome的浏览器窗口并在其中运行应用程序。如果您确实选择使用JavaScript和HTML 5,那么有很多框架可供选择,我建议您在ThroneOfJS会议http://www.infoq.com/throne_of_js/上观看infoq.com上的视频,以了解我有偏见的建议是使用AngularJS。