热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web开发框架概览:Java与JavaScript技术及框架综述

Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如SpringBoot、React和Vue.js,以提高开发效率和应用性能。

Web开发需要服务器端和客户端的配合,在服务器端Java无疑是一个不错的选择,每个服务器的功能都可以写成一个Servlet。客户端除了内容展现的html标记语言之外,还需要实现相关逻辑的脚本语言Javascript无疑是个不错的选择。乔布斯的力推HTML5+Javascript的前端模式,也为Javascript的重要性加码。

无疑,一行一行的java和Javascript脚本开始写起,重新创建轮子是毫无意义的。利用相关的框剪和标准简化编程、提高代码复用率是明智的选择。这里我意在将流行的web开发后天和前端框剪进行一下总结,以方便大家对动态web开发有个宏观的理解。

随着“云模式”的推广,越来越多的服务将放到后台。后台复杂的业务逻辑无非就是一个个java程序。而前端的“瘦”服务就是一个个的Javascript脚本。

“云模式”并没用动摇大型web网站的根基,而是为中小网站做了更多的托管而已。相反,传统的web网站也可以将自己的后台暴露给第三方开发者。而其中的纽带,最简单的方式就是REST接口。所以我们也对其稍作提及。

服务器端使用的功能模块实现技术JAVA:

  • J2SE、J2EE、J2ME:

J2SE: java 2 Standard edition (java 2 标准版)

  J2EE: java 2 enterprise edition( Java 2 企业版)

J2ME: java 2 micro edition (Java 2 微缩版)

他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类。

笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。

补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。J2EE又包括许多组件,如Jsp, Servlet,JavaBean, EJB,JDBC,JavaMail等。

  • Javabean、EJB:

JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。

JavaBean是一个可重复使用的软件组件。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点:

  1. 可以实现代码的重复利用

  2. 易编写、易维护、易使用

  3. 可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。

JavaBean 和 Server Bean(通常称为Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象,获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。

  Enterprise Bean 与 JavaBean 不同。JavaBean 是使用java.beans包开发的,它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件。JavaBean 是进程内组件。Enterprise Bean 是使用 javax.ejb 包开发的,它是标准JDK的扩展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台机器上跨几个地址空间运行的组件。因此 Enterprise Bean 是进程间组件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 则用作分布式商业对象.

  • Servlet和JSP:网络后台技术,将java代码嵌入到HTML页面中,或者将HTML嵌入到java代码中。

  • 框架:SpringSpring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

spring的作用:主要是让对象与对象(模块与模块)之间的关系不再通过代码来关联,而是通过配置实现。spring通过这些配置,内部通过反射动态的组装对象。

注意:spring是一个大的容器,凡是在容器里的对象才有spring的功能。

spring的内部核心是IOC,动态注入,让一个对象的创建不用new了,可以自动的生产。这其实就是利用java里的反射。反射就是在运行时动态的去创建,调用对象,spring就是在运行时,利用spring的配置文件来动态的创建对象和调用对象的方法。

IBM的相关介绍:http://www.ibm.com/developerworks/cn/java/wa-spring1/

spring则完全是一种架构型的框架了,它不属于J2EE应用中的任何一个层,但它提供了对象依赖注入的思想,并且为每个层中遇到的实际问题提供了大量现成的模板类,使用这些模板类的方法很easy,大多数情况下只需要你在配置文件里配置一下就可以实现诸如事务管理或安全性控制这样的复杂问题.使用spring你的代码不依赖于框架,不依赖于具体实现,而依赖于接口,这对于实现松散耦合的架构来说是大有裨益的.spring不仅仅可以用于web应用,在普通的java应用中也可以使用spring.spring不是个复杂的框架,它的核心包很小并且具有轻量级的架构,基本上spring的核心只有2个东西:Ioc & AOP,Ioc其实就是工厂模式的一种体现,而AOP则来源AOP联盟,使用了拦截的思想...学了spring,现在写起代码觉得自己就像个白痴,有什么问题直接在配置文件里配置一下相关的模板类就OK了,它是真正为程序员减轻工作负担的框架.

  • hibernate

    (JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。而hibernate是JPA的一种实现)

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

初学,你可以简单的将hibernate理解为:
第一:数据库连接不需要我们自己来管理,如打开和关闭(优点吧)
第二:Hibernate对原来的SQL语句进行了封装,以前写很多SQL语句,现在你在保存的时候直接可以用 SAVE(对象)来实现了。(节省代码吧)
第三:原来是对表操作,现在是对对象操作,想法上是不是更好呢?都是对象。

  • structs:

Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。 Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。 就是说可将两者一起使用,达到将两者自身的特点进行互补。

客户端脚本技术Ajax:

伴随的Ajax的原理(java和Javascript没有任何语言沿承,但是都是web开发的强力工具,所以顺便介绍下相关内容):

  • AJAX(异步Javascript与XML)是一种允许网页在没有完全重新加载的情况下更新某些信息的技术。

使用xml在服务器端和客户端之间通过异步通信技术处理http请求,基于XmlHttprequest对象发布异步请求,前端使用Javascript进行处理、显示,而后端依旧是servlet或者JSP。

  • Jquery的用途(jQuery,Mootools,Dojo,Ext JS功能类似):屏蔽操作系统的兼容性问题,将程序员从处理繁琐的浏览器兼容性问题中解放出来。官方网站:www.jquery.com。提供的功能组件:基本的查询功能,支持ajax的快速开发,以及UI控件,比如进度条、日期调整界面等等!(注意,支持移动设备上的Jquery开发)。特点:只需要将jquery.js引入到自己的页面中,就可以使用jquery的任何功能了。jquery是DOM对象的另一种写法,可以互相转换。jquery给出了对象集合的遍历模式,避免了DOM对象的手动遍历。

  • REST API调用:打造自己的云

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。

Ajax 和 RESTful Web 服务本质上是互为补充的。它们都可以利用大量 Web 技术和标准,比如 HTML、Javascript、浏览器对象、XML/JSON 和 HTTP。当然也不需要购买、安装或配置任何主要组件来支持 Ajax 前端和 RESTful Web 服务之间的交互。RESTful Web 服务为 Ajax 提供了非常简单的 API 来处理服务器上资源之间的交互。

图 1 中的 Web 浏览器客户端作为 GUI 的前端,使用表示层中的 Browser Request Handler 生成的 HTML 提供显示功能。Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。表示供用户在浏览器中显示使用。表示不仅包含内容,还包含显示的属性,比如 HTML 和 CSS。

多层 Web 应用程序环境图



推荐阅读
author-avatar
江西小毒i哈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有