javaee和javase的区别中有snippets吗

JavaEE学习者越来越多,JavaEE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习 JavaEE学习方向。
首先我们需要知道Java和JavaEE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种 软件系统的流派,当然目前主要是.NET和Java两大主流体系。
JavaEE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B /S(Browser浏览器/Server服务器)结构,而JavaEE主要是指B/S结构的实现。
JavaEE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从设计模式开始学习。
JavaEE是一个虚的大的概念,JavaEE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到JavaEE应该说最终要落实到这三个子概念 上。
这三种技术的每个技术在应用时都涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器,你如果要开发一个Web应用,无 论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。
Web技术中除了Jsp/Servlet技术外,还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简称为Jsp/Servlet+JavaBeans系统。
谈到JavaBeans技术,就涉及到组件构件技术(component),这是Java的核心基础部分,很多软件设计概念(设计模式)都是通过 JavaBeans实现的。
JavaBeans不属于JavaEE概念范畴中,如果一个JavaBeans对象被Web技术(也就是Jsp/Servlet)调用,那么 JavaBeans就运行在JavaEE的Web容器中;如果它被EJB调用,它就运行在EJB容器中。
EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务、安全机制,这样 能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。
至此,JavaBeans组件发展到EJB后,并不是说以前的那种JavaBeans形式就消失了,这就自然形成了两种JavaBeans技 术:EJB 和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且这个JavaBeans不依附某种框架,或者干脆可以说:这个 JavaBeans是你为这个应用程序单独开发创建的。
JavaEE应用系统开发工具有很多:如JBuilder、Eclipse等,这些IDE首先是Java开发工具,也就是说,它们首要基本功能是可以开 发出JavaBeans或Java class,但是如果要开发出JavaEE系统,就要落实到要么是Web技术或EJB技术,那么就有可能要一些专门模块功能(如eclipse需要 lomboz插件),最重要的是,因为JavaEE系统区分为容器和应用两个部分,所以,在任何开发工具中开发JavaEE都需要指定JavaEE容器。
JavaEE容器分为WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用 Tomcat实现的。所以你开发的Web应用程序可以在上面两种容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上运行,商业产品 Websphere/Weblogic等和JBoss属于同一种性质。
JavaEE容器也称为JavaEE服务器,大部分时它们概念是一致的。
如果你的JavaEE应用系统的数据库连接是通过JNDI获得,也就是说是从容器中获得,那么你的JavaEE应用系统基本与数据库无关,如果你在你的 JavaEE 应用系统耦合了数据库JDBC驱动的配置,那么你的JavaEE应用系统就有数据库概念色彩,作为一个成熟需要推广的JavaEE应用系统,不推荐和具体数据库耦 合,当然这其中如何保证JavaEE应用系统运行性能又是体现你的设计水平了。
衡量JavaEE应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护 性、可拓展性的软件设计目标。
为了达到这个目的,诞生各种框架概念,JavaEE框架标准将一个系统划分为WEB和EJB主要部分,当然我们有时不是以这个具体技术区分,而是从设计 上抽象为表现层、服务层和持久层,这三个层次从一个高度将JavaEE分离开来,实现解耦目的。
因此,我们实际编程中,也要将自己的功能向这三个层次上靠,做到大方向清楚,泾渭分明,但是没有技术上约束限制要做到这点是很不容易的,因此我们还 是必须借助JavaEE具体技术来实现,这时,你可以使用EJB规范实现服务层和持久层,Web技术实现表现层;
EJB为什么能将服务层从Jsp/Servlet手中分离出来,因为它对JavaBeans编码有强制的约束,现在有一种对JavaBeans弱约 束,使用Ioc模式实现的(当然EJB 3.0也采取这种方式),在Ioc模式诞生前,一般都是通过工厂模式来对JavaBeans约束,形成一个服务层,这也是是Jive这样开源论坛设计原理 之一。
由此,将服务层从表现层中分离出来目前有两种可选架构选择:管理普通JavaBeans(POJO)框架(如Spring、 JdonFramework)以及管理EJB的EJB框架,因为EJB不只是框架,还是标准,而标准可以扩展发展,所以,这两种区别将来是可能模糊,被纳 入同一个标准了。 但是,个人认为:标准制定是为某个目的服务的,总要牺牲一些换取另外一些,所以,这两种架构会长时间并存。
这两种架构分歧也曾经诞生一个新名词:完全POJO的系统也称为轻量级系统(lightweight),其实这个名词本身就没有一个严格定义,更多 是一个吸引人的招牌,轻量是指容易学习容易使用吗?按照这个定义,其实轻量Spring等系统并不容易学习;而且EJB 3.0(依然叫EJB)以后的系统是否可称为轻量级了呢?
前面谈了服务层框架,使用服务层框架可以将JavaBeans从 Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关,一 般是通过标签库(taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。
这样,表现层和服务层的分离是通过两种框架达到目的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来是其目的,持久层框 架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。
持久层框架目前呈现百花齐放,各有优缺点的现状,所以正如表现层框架一样,目前没有一个框架被指定为标准框架,当然,表现层框架现在又出来了一个 JSF,它代表的页面组件概念是一个新的发展方向,但是复杂的实现让人有些忘而却步。
在所有这些JavaEE技术中,虽然SUN公司发挥了很大的作用,不过总体来说:网络上有这样一个评价:SUN的理论天下无敌;SUN的产品用起来撞 墙;对于初学者,特别是那些试图通过或已经通过SUN认证的初学者,赶快摆脱SUN的阴影,立即开溜,使用开源领域的产品来实现自己的应用系统。
最后,你的JavaEE应用系统如果采取上面提到的表现层、服务层和持久层的框架实现,基本你也可以在无需深刻掌握设计模式的情况下开发出一个高质量的 应用系统了。
还要注意的是: 开发出一个高质量的JavaEE系统还需要正确的业务需求理解,那么域建模提供了一种比较切实可行的正确理解业务需求的方法,相关详细知识可从UML角度结合 理解。
当然,如果你想设计自己的行业框架,那么第一步从设计模式开始吧,因为设计模式提供你一个实现JavaBeans或类之间解耦参考实现方法,当你学 会了系统基本单元JavaBean或类之间解耦时,那么系统模块之间的解耦你就可能掌握,进而你就可以实现行业框架的提炼了,这又是另外一个发展方向了。
以上理念可以总结为一句话:JavaEE开发三件宝: Domain Model(域建模)、patterns(模式)和framework(框架)。
推荐一套高质量的JavaEE开源系统: JPestore
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:78699次
积分:1292
积分:1292
排名:第17017名
原创:51篇
转载:26篇
(1)(1)(1)(1)(1)(1)(1)(4)(2)(2)(6)(2)(2)(1)(1)(7)(1)(2)(1)(7)(2)(6)(2)(1)(2)(3)(2)(13)(1)一.项目中木有ejb的包, 二.我用的是Eclipse ,不是MyEclipse 三.项目中木有javaee.jar.求帮助!!!_百度知道
一.项目中木有ejb的包, 二.我用的是Eclipse ,不是MyEclipse 三.项目中木有javaee.jar.求帮助!!!
java.hibernate.OneToMany.AnnotationBinder.orphanRemoval()Z at org.processIdPropertiesIfNotAlready(AnnotationBinder:796)(省去一串.persistence.lang.java.真不好意思.AnnotationBinder: javax:1912) at org.cfg.java.hibernate,这是异常信息.processElementAnnotations(AnnotationBinder.cfg.谢谢关注..NoSuchMethodError
提问者采纳
我遇到这样的问题.,一般把错误信息复制出来google之不管怎么麻烦..jar包问题.
提问者评价
是个好办法...谢谢关注.看来都没遇到过这个问题.结了吧.
其他类似问题
为您推荐:
您可能关注的推广
ejb的相关知识
其他2条回答
你是基于这些开发么?正常的web项目就是没有的你想加入这些包。hibernate 1对多关系异常?还是只是描述,只有jre包 你这个应该是配置的问题
同问,楼主找到解决办法了吗?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁大型的javaEE项目中,是不是所有的jsp文件会根据不同的功能分成几个文件夹放置?那路径怎么弄?_百度知道
大型的javaEE项目中,是不是所有的jsp文件会根据不同的功能分成几个文件夹放置?那路径怎么弄?
所以就找不到了,有的时候就是找不到Struts的Action,因为他将一个jsp文件夹的名字自动放到了action的前面我使用的是Struts2
提问者采纳
还是推荐单独写个类,网上应该有),但是这种方法比较麻烦,但是如何获得这些文件的路径!,这个类里面写个统一获得文件路径的方法,可以单独写个类,然后写获得路径的方法,也可以用jsp内置获得文件路径的方法(具体方法你自己搜搜把是的啊
提问者评价
非常感谢,谢谢大家了。看来我还得好好研究研究这路径的问题了。
其他类似问题
为您推荐:
其他2条回答
也方便阅读,分功能建立文件夹是为了方便修改的时候好找随你喜欢,主要是一个规范管理
路径一般写绝对路径,而且jsp不是几个文件夹就能放下的。一般好几十个还差不多,大点的按百算
您可能关注的推广
javaee的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁trackbacks-0
MySQL数据库做开发的朋友,都或多或少的遇到过中文乱码的问题。大象根据项目实践,在此将自己的成功经验总结拿出来和大家分享。
&&&&我使用的MySQL数据库版本是5.0.27,按以下几点处理,可以很好的解决中文乱码问题。数据库安装
&&&&latin1字符集,而应该选择utf8字符集。在创建表的时候,还应该设定默认字符集编码为utf8。
&&&&2、数据库配置文件
&&&&gb2312、gbk等等,我们可以通过修改MySQL根目录下的my.ini文件来改变字符编码。
&&&&打开my.ini文件,修改下图中画红线的部分。utf8,而不是utf-8或UTF-8
&&&&utf8。大象试过,在所有设置都相同的情况下,这里如果保留默认的latin1,当在应用中向数据库插入数据时,就会出现乱码。而改成utf8则不会。
&&&&MySQL的工具也有很多。我也用过很多,在这里我向大家推荐Navicat Lite for MySQL工具,界面如下:
&&&&8.1版。
&&&&4、Eclipse工作空间
&&&&Eclipse工具做Java开发的占绝大多数,那么为了避免中文乱码的发生,Eclipse的工作空间也应该设置成UTF-8编码。&&&&
&&&&5、页面字符编码
&&&&UTF-8的字符编码,那么对于展示层的JSP,我们也应该进行相应的设置。
&&&&JSP页面顶部设置编码格式
&&&&&%@ page contentType="text/charset=UTF-8" %&
&&&&在head之间加入meta设置
&&&&&meta http-equiv="Content-Type" content="text/charset=utf-8"/&
&&&&另外,大象建议表单提交采用post方式。
&&&&6、数据库连接
&&&&连接数据库的地址中我们也应该加入字符设置,请看下面蓝色的字符。
&&&&jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8
&&&&7、容器配置文件
&&&&web.xml中加入字符过滤器。定义& --&
&&&&&!-- Character Encoding filter --&
&&&&&filter&
&&&&&&&&&filter-name&encodingFilter&/filter-name&
&&&&&&&&&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&&&&&&&&&init-param&
&&&&&&&&&&&&&param-name&encoding&/param-name&
&&&&&&&&&&&&&param-value&UTF-8&/param-value&
&&&&&&&&&/init-param&
&&&&&&&&&init-param&
&&&&&&&&&&&&&param-name&forceEncoding&/param-name&
&&&&&&&&&&&&&param-value&true&/param-value&
&&&&&&&&&/init-param&
&&&&&/filter&
&&&&&!-- Filter 映射 --&
&&&&&filter-mapping&
&&&&&&&&&filter-name&encodingFilter&/filter-name&
&&&&&&&&&url-pattern&/*&/url-pattern&
&&&&&/filter-mapping&
&&&&这里用到的是Spring的编码过滤器,我们可以直接拿来用。不过请注意forceEncoding这个参数,把它设置为true表示不管请求中的编码是什么格式,都将强制采用encoding中设置的编码方式。另外对于响应也将按照encoding指定的编码进行设置。
&&&&通过以上几个步骤,应该可以完全解决使用MySQL数据库所带来的中文乱码问题。如果你按照这些设置做过后还是出现了乱码,请提出来,让我们一起来解决。
&&&&大象不建议大家为了实现中文问题而采取gb2312或gbk等编码方式,我们应该使用基于Unicode的编码。而UTF-8是目前互联网上使用最广泛的一种Unicode的实现方式,特别是目前JavaEE的企业级项目,都是基于互联网式的Web应用。所以我们应该使用这种统一的字符集编码方式。另外,对于SQLServer和Oracle数据库,不会出现像MySQL这样的乱码问题,但我们也应该坚持在开发过程中统一采用UTF-8的编码方式。希望此文能对大家有所帮助。& &&本文为菠萝大象原创,如要转载请注明出处。bolo
阅读(4020)
&re: JavaEE应用中MySQL中文乱码完全解决方案
这个也叫做完全的解决方案,图片还要加上自己的标记,太那个了....&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@E2
这是针对MySQL数据库的中文编码问题,按照这样做,可以解决中文乱码的问题,我没有夸大,你觉得我哪里写的不好,可以提出来,但这么模糊的说&这个也叫做完全解决方案&,我就不太明白了。另外,图片加上水印,是防盗转,没有别的意思。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
说白了,所有地方统一编码。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@Aspen
可以这么说,我当时遇到的问题其实只有两个。一是在my.ini文件的第二个字符集设置上,没有改成utf8。另一个就是工具有问题,生成的数据库和表对中文有BUG,改成Navicat,重新生成一遍就好了。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案[未登录]
写的挺好的。鼓励一下楼主。谢谢分享。另:有些人就会说风凉话。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@roypayne
谢谢支持,我是很用心在写,也欢迎真正的批评指正,而不是无目的的拍砖。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
建议把背景换下,这个看着太花了&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@SoJog呃。。。还好吧,只是一个水印而已,而且很浅呐&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@菠萝大象
这个还好呀,SSH2 ANNOTATION那几遍文章,汗。。。头昏&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@SoJog
啊,你千万别晕,晕了我可没医药费哦,呵呵。你就将就看吧,你不知道blogjava换图片好麻烦的,如果不加水印,有些盗文者很可耻,不加转载链接,这个我就很生气了,我欢迎转载,但不欢迎匿名转载。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
楼主真是很用心,谢谢你&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
@zhhaojie谢谢支持,我会努力的。&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
还是不行&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
以前解决过,现在又没法弄了。。。只是更改了my.ini文件,我没涉及到上层应用,就是在mysql dos client下插入查找数据,还是乱码问题,开始latin,乱码汉字是???,改成utf8,出现的更不知道是哪国繁体文&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
Ver 14.14 Distrib 5.5.34, for Win32 (x86)-------我直接在[mysqld]下添加default-character-set=utf8或default-character-server=utf8,但之后就无法启动服务了..难道其他朋友修改my.ini后都能正常启动??这是我执行 status命令后其中的几行:Server characterset:
characterset:
gbkClient characterset:
characterset:
&re: JavaEE应用中MySQL中文乱码完全解决方案
@wkl17请你仔细看我文中写的,我并没有写要添加default-character-set=utf8或default-character-server=utf8这些,我只写了要改编码。你怎么会添加呢?第一个地方要改的是[mysql],改它下面的default-character-set=utf8第二个地方[mysqld],这下面改character-set-server=utf8以下是我用status显示的结果-------------------------------mysql
Ver 14.14 Distrib 5.5.36, for Win32 (x86)Connection id:
1Current database:Current user:
root@localhostSSL:
Not in useUsing delimiter:Server version:
5.5.36 MySQL Community Server (GPL)Protocol version:
10Connection:
localhost via TCP/IPServer characterset:
characterset:
utf8Client characterset:
characterset:
utf8TCP port:
3306Uptime:
43 sec-----------------------------------你的很明显是服务器端还是latin1字符集,而客户端却是gbk,你再好好检查一下&&&&&&
&re: JavaEE应用中MySQL中文乱码完全解决方案
谢谢楼主分享,解决了乱码问题&&&&&&
282930311234678910121315161718192022232425262728293012345678
随笔分类(65)
随笔档案(65)
积分与排名
阅读排行榜
评论排行榜

我要回帖

更多关于 javaee和javase的区别 的文章

 

随机推荐