说明:Java如何作为Web应用程序工作?

Log*_*ner 16 java web-applications

好的,我知道这是一个模糊的问题,我期待一个模糊/基本的答案.

我非常精通PHP驱动的MVC框架以及服务页面的工作过程.我对学习Java很感兴趣,我认为学习它的唯一方法就是学习它.然而,在逐页阅读之后,当我阅读时,它会变得更加混乱.

我正在进入GWT(前端),Hibernate(ORM连接?),Spring Architecture,Spring Roo(这是什么?),JBoss(servelet),JPA(ORM),POJO(使用常规java对象的样式) orm?),Maven?

我的基本问题是所有这些如何组合在一起?我喜欢使用框架的想法,因为它过去在PHP中运行良好.如何在java中使用此功能?假设我想构建一个带有关系数据存储的Web应用程序.java如何通过动态内容进行身份验证,启动会话和提供页面?这个过程是什么?

在回复时,请不要说"坚持你所知道的"(正如我在其他页面上看到的那样)因为我对java非常感兴趣并且我正在努力学习.

Vij*_*wal 7

我完全听到你了 - 随着Java EE的发展,有太多的缩写词支持了.

我将尝试解释Java是一种语言Java EE(Java Enterprise Edition)是用于封装所有Java技术的通用术语,这些技术有助于使用Java创建企业/ Web应用程序

因此,使用Java的典型Web应用程序如下所示:

前端

  • 使用JSP或JSF进行服务器端处理和呈现(JSP和JSF提供了使用HTML和服务器端标签定义UI的能力,这些标签可以与Java Bean轻松绑定)但是,如果没有正确实现,它们往往会将UI与后端混合使用
  • 您还可以使用纯HTML和任何客户端工具包进行渲染(例如jquery,dojo,extjs或flex),并从Java EE服务器获取数据.
  • 您甚至可以将两者混合使用(在JSP中使用客户端框架以实现两者的最佳效果)或使用GWT等工具包,通过Java API提供客户端丰富性以及访问Java bean的便捷性

中间层

  • Java Servlets为使用Java EE的所有服务器端处理提供了基础(Servlet提供会话持久性,HTTP请求处理,响应处理),并且通常将业务处理卸载到模型bean(可以是POJO或spring bean).Servlet是您编写的Java程序,在所谓的Java EE容器中执行.流行的容器是tomcat,IBM websphere,BEA Weblogic

为了帮助实现良好的MVC架构,在Servlet之上提供了几个框架和工具:

  • Struts2和Spring MVC就是这种框架的例子
  • 为了便于实现Web服务,Restlet/Jersey帮助使用基于REST的Web服务,JAX-WS/APache Axis帮助实现基于SOAP的Web服务

与后端数据库/持久存储集成

  • 您可以在POJO或其他模型bean中使用JDBC来使用Java访问数据库.
  • 或者使用其中一个框架(如Hibernate),以便轻松与DB后端进行交互

Sun的petstore应用程序是一个开始学习如何组合在一起的好地方

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eedocs-419425.html#7522-petstore-1.1.2-oth-JPR

构建和部署

  • Ant和Maven是用于构建应用程序和管理依赖项的工具
  • 应用程序打包为WAR或EAR文件,可以放入任何Java EE容器中进行部署.部署后,可以使用URL访问它
  • Eclipse,Netbeans,Oracle JDeveloper等工具提供集成的IDE,以帮助进行本地部署和测试

Java EE的优点在于您可以选择要用于构建Web应用程序的组件.


cde*_*zaq 5

Java存在的问题是它相当陈旧,并且有大量的框架和包与其他包执行类似的操作.然而,最核心的是Servlet,它指定了Java如何通过HTTP协议作为服务器.

有了这个基本的构建块,有许多Web框架,如Struts和Spring MVC,它们通过使用许多优秀的OO开发模式(如Fiters,Delegates,Factories,MVC等)来构建功能层,以允许开发人员汇总了一个将Web请求作为输入并将Web响应作为输出返回的应用程序.

这些框架通常构建在其他框架或包之上,以便为应用程序开发人员在应用程序的不同层提供更多功能.这包括ORM(如Hibernate)与关系数据库交谈,或查看Tiles或Velocity等合成框架,以帮助将HTML页面组合在一起作为响应的一部分.

围绕Web框架构建了许多其他首字母缩略词,工具和层,但实际上它们都只是编程工具,具有预构建的有用功能,只需要使用.

如果您正在寻找一个更具有凝聚力的Web应用程序开发框架,并且不会让您感到迷失,那么您可能需要查看Grails.它是在Groovy中,但它在语言方面与Java非常接近,并且实际上构建在您听过的许多其他工具之上.

Grails本身建立在SpringSpring MVC框架以及Hibernate之上,所以它使用与其他更纯粹的Java框架相同的技术,但它将丑陋的细节抽象出去,所以你不必担心它们,除非你想要.然后,您可以通过插件捆绑其他功能,例如身份验证/安全性.如果您精通基于PHP的MVC框架以及它们如何从架构的角度工作,那么您将感受到像Grails或Spring MVC这样的类似MVC环境中的家.Grails 用户指南是一个很好的起点,其余的文档也很好.

如果您不熟悉Java语言,我强烈建议您使用一些小应用程序(不是Web应用程序,只是简单的应用程序)来学习语言并熟悉其工作原理.Java与PHP非常不同,因为PHP将许多基本功能捆绑到语言中,而Java具有相当稀疏的语言,其中许多常用功能来自库.

一旦你掌握了Java语言,我就会跳到Grails框架,我会首先跳过servlet,ORM和Hibernate等所有细节,因为你不需要知道它所有这里都有它可以妨碍实际理解事物.

然后,当您开始使用Grails构建应用程序时,您将逐渐深入了解Grails构建的技术,以便执行更复杂和更强大的操作.慢慢地,你会用自己的方式进入Spring和Hibernate和建立的事情是如何在幕后放在一起理解,但你可以做实实在在的事情更快,因为你不具备了解所有的细节,从一开始,并能快速使Grails中的Web应用程序正常工作,特别是了解响应Web请求的应用程序的MVC架构模式.


Ann*_*cks 5

哇,这不仅是一个开放式的问题,而且可能有页面和页面的答案.我在大约7年前没有框架工作,所以我会尝试指出你的一些起点方向并比较我的经验(这是过时的,没有框架!)

您需要一个应用程序服务器,就像您的Java Web应用程序的Apache服务器一样,例如Tomcat,Jboss或Glassfish.这些服务器处理服务动态内容.

在服务器之上,您有自己的Web框架,您已经提到了GWT,Spring和Spring Roo.Spring Roo就像Rails,但在Java中.GWT全力以赴,并将根据您的Java代码编写您的html/javascript代码.

在Spring中您可以定义要在表单中使用的对象,然后在提交它们时,将传回整个对象,以减少工作量.我记得收到很多$ _POST []东西的日子,我很感激在使用spring时不必这么做.您可以使用Spring Security进行身份验证.

Web框架配置为连接到数据库,然后是数据库抽象ORM,Hibernate.在PHP中,我使用EZSQL进行抽象,它几乎不包含Hibernate所具有的功能.Hibernate有着陡峭的学习曲线,但值得学习.

对于动态GUI,您可能希望研究JSP,但可能对学习JSF感兴趣.

如果我是你,我会选择一个应用程序服务器,也许是tomcat,然后是一个可以玩的Web框架,我个人会选择Spring.该框架可能具有动态GUI示例,因此您将获取jsp/jsf.然后可能添加ORM和构建工具以从IDE外部构建,例如Maven,Ant或Gradle.


dld*_*dnh 1

GWT 的好处之一是,您可以使用 Java 编写客户端代码,并享受其所有优点,如果您有服务器代码,也可以使用 Java 编写,并且您可以共享一些源代码,即使前端最终作为 JavaScript 运行。