也许你学习了那么久的Java了,但如果有人问你什么是JavaEE?你会怎么回答他呢?在此我来谈谈关于JavaEE的相关技术。(仅是个人见解)

在谈JavaEE时,我们首先来了解一下Java平台。目前,Java平台有3个版本:适用于小型设备和智能卡的JavaME(Java Platform Micro Edition,Java微型版)、适用于桌面系统的JavaSE(Java Platform Standard Edition,Java标准版)和适用于企业级应用的JavaEE(Java Platform Enterprise Edition)。而JavaEE是一个开发企业级应用的规范和标准,在现在的企业级开发中最为常用,最受人开发者的青睐。

JavaEE应用程序是由组件构成的,也就是说它是基于组件开发的。组件是具有独立功能的单元,它们通过相关的类和文件组装成JavaEE应用程序,并与其它组件相交互。一个组件的更改不会影响其它组件,代码重复减少,重用率高。有利于良好的分工与协作,实现并行开发。如果是用三层结构开发,那么表示层与数据访问层相互独立,因此美工可以更方便的扩充表示层,使系统具有良好的可扩展性。

在JavaEE的技术体系中,也融合了多种框架技术。其中以SSH(Struts+Hibernate+Spring)框架技术最为出名,这些框架技术代表当前企业(公司)级开发的趋势。当然,也有些比较出名的框架技术,如:Webwork、JSF、EJB、iBATs等等。各种框架技术是在JavaEE的基础上形成的,应用程序是在框架技术创建的。因此,要想学好JavaEE,必先学好基于Servlet技术的JavaEE。如果一入门就学SSH框架技术来搭建,就好像一个人还小时就先学走,不是先学爬,这多少有点赶鸭子上架的“味道”。

JavaEE的技术结构也体现了分层的原理,与C#三层结构差不多。只是“换汤不换药”而已,形式变了,核心的技术内容还是没有变。我们在设计一个系统时,通常都会把系统设计成多层(一般是三层)。设计成三层有什么好处呢?因为任何一个软件或是系统,有80%左右的时间都是处在后期维护的阶段,设计成三层,有利于今后的维护和扩展,也有利于程序的控制和页面的显示。

JavaEE的技术结构分为三层,那么这三层分别是什么呢?其实与C#差不多,分别是表示层、中间层、数据层。C#中的三层分别是表示层,业务逻辑层、数据访问层,只是不一样的说法,但表达的是同一个意思而已。表示层是用户界面,中间层包含各种业务逻辑,数据层是完成对数据的存取和封装。在这三层中,你认为哪层是最重要的呢?也许你认为是业务逻辑层,但是答案是错误的,正确的答案是表示层。试想,你做出的一个Web系统,界面不美观、不友好,用户用都不想用,那还谈什么业务逻辑啊。所以在此我推荐大家,在用三层结构开发一个项目时,首先从表示层入手,先把表示层做好。然后一分析业务逻辑,之后数据访问的思路也就有了。呵呵……

说了那么久的JavaEE技术,那它有什么内容呢?各层又是用什么技术来实现的?我先从表示层说起。

表示层技术是在JSP页面中用HTML标签、JavaScript脚本、Ajax。需要注意的是,Ajax并不是一种技术,而是几种技术的整合。它采用异步请求的方式,主要功能是向服务器端发送请求,处理数据或者根据返回的数据重新显示页面。

中间层技术主要是JSP、Servlet、JSTL、JavaBean、Struts框架。其中JSP是显示动态内容的服务器网页,Servlet是接收客户端的请求并作出响应,JSTL是帮助JSP显示动态内容的标准标签库,JavaBean是JavaEE的模型组件。需要注意的是,Struts框架技术主要是扩充了Servlet。在中间层中,Servlet是重要的组成部分,它控制着其它的组件。

数据层技术用的是JDBC、JNDI、Hibernate框架。其中,JDBC是传统的数据库连接方式,JNDI和Hibernate只是扩展了功能,并没有完全替代了JDBC。现在流行的是关系型的数据库,我们所用的大多数都是,如:SQL Server、Oracle、MySQL等,Hibernate框架技术是以对象的方式操作关系型的数据库,以减少内存的使用。

另外,还有系统集成技术。当你做Web Service时,就不可避免了。在现在阶段,我们如果用SSH框架技术开发,那么Spring就是一个系统集成的框架技术,也是在现阶段用的最多的系统集成技术。系统集成的JAX-WS技术是JavaEE平台的重要组成部分,它简化了使用Java技术开发Web服务的工作。不过,我有点遗憾,不了解JAX-WS技术。

说了那么久了,如果真有时候,有人问你JavaEE是什么呢时,希望我的见解你看后能用上场

详细解释什么是JavaEE?的更多相关文章

  1. .htaccess语法之RewriteCond与RewriteRule指令格式详细解释

    htaccess语法之RewriteCond与RewriteRule指令格式详细解释 (2012-11-09 18:09:08) 转载▼ 标签:  htaccess it 分类: 网络 上文htacc ...

  2. cookie的详细解释

    突然看到网页上中英文切换的效果,不明白怎么弄得查了查 查到了cookie 并且附有详细解释 就copy留作 以后温习 http://blog.csdn.net/xidor/article/detail ...

  3. tar命令的详细解释

    tar命令的详细解释 标签: linuxfileoutputbashinputshell 2010-05-04 12:11 235881人阅读 评论(12) 收藏 举报  分类: linux/unix ...

  4. Linux学习笔记15——GDB 命令详细解释【转】

    GDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具. 和所有常用的调试工 ...

  5. C语言 - 结构体(struct)比特字段(:) 详细解释

    结构体(struct)比特字段(:) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26722511 结构体(struc ...

  6. 姿势体系结构的详细解释 -- C

    我基本上总结出以下4部分: 1.问题的足迹大小. 2.字节对齐问题. 3.特别保留位0. 4.这种结构被存储在存储器中的位置. #include <stdio.h> #include &l ...

  7. Java - 面向对象(object oriented)计划 详细解释

    面向对象(object oriented)计划 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24058107 程序包括 ...

  8. 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释

    迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...

  9. 设计模式 - 观察者模式(Observer Pattern) 详细解释

    观察者模式(Observer Pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26583157 版权全部 ...

随机推荐

  1. Python中执行变量而非字符串

    Python中执行变量而非字符串 设想这样的场景,你需要大型项目的开发.但是项目的开发第一步是啥? 当然是import导入了. ...but............ 默认 import 后面跟着字符串 ...

  2. Python2和Python3共存,pip共存

    使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份. 1.下载python3和python2 进入python官网,链接https:/ ...

  3. oracle 创建临时表空间/表空间,用户及授权

    1:创建临时表空间 create temporary tablespace user_temp tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj ...

  4. Saiku2.6 保存查询后,重新打开报 Error Loading Query错误。

    发现Saiku2.6的查询保存后重新打开就会报如下错误,同等的Schema文件和数据库环境在3.15环境里面打开是一切正常的. 后面对比了一下2.6和3.15的启动环境,发现有些差异的地方. 2.6启 ...

  5. SPOJ - TTM 主席树

    给你一个系列\(a[1...n]\),要求可以区间求和,区间更新,也可以回溯过去 经典的主席树板子题,很久以前做的题了,代码太丑回炉重写 PS.题目标题To The Moon也是我最喜欢的游戏之一 这 ...

  6. js对函数参数的封装

    对函数参数的封装 一个原始函数有n个参数,用wrap对函数进行封装,生成一个新的函数,当给它传入参数数量为n的时候,将执行原始函数,否则不执行 //函数封装 function wrap(func){ ...

  7. request.upload.addEventListener in not a function。

    本人在使用vue开发一套后台系统时,碰到了一个上传文件的需求,因为平时做的上传是使用ajax的方式来进行上传. 现在是使用axios来进行上传,方式没有什么改变: npm i  axios  直接上 ...

  8. C# winform窗体传值 利用委托 子窗体传值给父窗体

    首先在Form2中定义委托和事件: //声明委托 和 事件 public delegate void TransfDelegate(String value); public partial clas ...

  9. 关于DES加密之选择更新版

    数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的.通常,自动取款 ...

  10. CSAPP阅读笔记-栈帧-来自第三章3.7的笔记-P164-P176

    1.基本结构: 如上图所示,是通用的栈帧结构.大致分两块,调用者函数P和被调用者函数Q. 对P来说,要做的工作是把传递参数中多于6个的部分压栈,随后把Q返回时要执行的下一条指令的地址压栈. 对Q来说, ...