仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 783|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网页编程之J2EE编程起步仓酷云

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,  本文经由过程复杂例子,形貌怎样使用EJB开辟、部署和运转一个客户机/服务器使用。例子的客户端作为Java自力使用运转,由ConverterClient.java类完成。它完成一个复杂的及时会话,次要经由过程客户端使用挪用服务器端EJB类ConverterEJB.java来完成。假如你已安装了J2EE,则能够在doc/guides/ejb/examples/converter目次中找到这些例子。
  
为了完成本文所形貌的复杂例子,你必要完成以下义务:
  ·编写和编译EJB程序
  ·创立J2EE使用
  ·打包EJB(.jar)
  ·部署J2EE使用
  ·编写和编译客户端程序
  ·运转客户端
  上面章节我们迁就上述事情义务和所触及的常识点举行复杂论述。
  条件
  完成本文供应例子的条件是您安装了Javasoft.com或相干操纵体系厂商网站下载的J2SESDK,和安装了响应操纵体系版本的J2EESDK(www.javasoft.com下载)并举行了准确设置。关于J2SE和J2EE的安装、设置和别的进一步信息,请参阅产物相干文档。
  EJB编码
  每一个EJB程序必需请求编写下述代码:
  ·远程接口(Remoteinterface)
  ·当地接口(Homeinterface)
  ·完成组件(Enterprisebeanclass)
  远程接口编码
  远程接口界说了客户端可以挪用的贸易办法,这些贸易办法是有服务器真个企业组件完成的,本文所触及的Converter.java编码以下:
  importjavax.ejb.EJBObject;//引进必需的包
  importjava.rmi.RemoteException;
  publicinterfaceConverterextendsEJBObject{//必需承继EJBObject类
  /*界说客户端能够挪用的办法*/
  publicdoubledollarToYen(doubledollars)throwsRemoteException;
  publicdoubleyenToEuro(doubleyen)throwsRemoteException;
  }
  当地接口编码
  当地接口界说了员徐客户端创立、查找或挪动EJB的办法,本文所触及的当地接口类ConverterHome接口只界说了一个create办法,前往远程接口范例,编码以下:
  importjava.io.Serializable;
  importjava.rmi.RemoteException;
  importjavax.ejb.CreateException;
  importjavax.ejb.EJBHome;
  publicinterfaceConverterHomeextendsEJBHome{
  Convertercreate()throwsRemoteException,CreateException;
  }
  企业组件类(EJB)编码
  本文中的企业组件(EJB)是一个无形态会话组件,定名为ConverterEJB.java,该组件完成了两个贸易办法:dollarToYen和yenToEuro,与远程接口Converter所界说客户端可会见办法分歧,该类编码以下:
  importjava.rmi.RemoteException;
  importjavax.ejb.SessionBean;
  importjavax.ejb.SessionContext;
  publicclassConverterEJBimplementsSessionBean{
  publicdoubledollarToYen(doubledollars){
  returndollars*121.6000;
  }
  publicdoubleyenToEuro(doubleyen){
  returnyen*0.0077;
  }
  publicConverterEJB(){}
  publicvoidejbCreate(){}
  publicvoidejbRemove(){}
  publicvoidejbActivate(){}
  publicvoidejbPassivate(){}
  publicvoidsetSessionContext(SessionContextsc){}
  }
  编译EJB
  如今必要对上述三个类举行编译,在UNIX平台和NT/9X平台上的编译略有区分,分离以下编译:
  UNIX:
  1.鄙人面的剧本compileEJB.sh中,将该成实践J2EE安装目次。
  #!/bin/sh
  J2EE_HOME=
  CPATH=.:$J2EE_HOME/lib/j2ee.jar
  javac-classpath"$CPATH"ConverterEJB.javaConverterHome.javaConverter.java
  2.运转compileEJB.sh剧本
  Windows:
  1.鄙人面的compileEJB.bat批处置文件中,将该为实践J2EE安装目次。
  setJ2EE_HOME=
  setCPATH=.;%J2EE_HOME%libj2ee.jar
  javac-classpath%CPATH%ConverterEJB.javaConverterHome.javaConverter.java
  2.运转批处置文件compileEJB.bat。
  创立J2EE使用
  你不克不及够间接将企业组件(EJB)部署到J2EE服务器,必需将组件加到一个J2EE使用中然后再部署。在本节,你将创立一个叫做ConverterApp的新J2EE使用并保留为ConverterApp.ear。
  1.在命令行提醒符下启动J2EE服务器:
  j2ee?verbose
  (中断服务器命令j2ee-stop.)
  2.在另外一个终端窗口运转部署工具:
  deploytool
  (按F1猎取部署工具匡助)
  3.创立新的J2EE使用
  a.在部署工具当选择“文件”菜单
  b.从“文件”菜单当选择“新使用”
  c.点击扫瞄
  d.在文件选择框中定位寄存.ear文件的目次
  e.文件定名为ConverterApp.ear.
  f.点击“新使用”
  g.点击“断定”
  企业组件(EJB)打包
  本部分你将运转部署工具的创立EJB导游来完成下述义务:
  ·创立组件部署形貌符
  ·将形貌符和组件类打包为.jar文件
  ·将EJB.jar文件打包到J2EE使用ConverterApp.ear文件
  从“文件”菜单当选择创立EJB来入手下手创立新的EJB,这个导游将显现上面的对话框:
  先容对话框:
  a.浏览导游特征申明文档
  b.点击“下一步”
  EJBJAR对话框:
  a.在标有"EnterpriseBeanwillgoin,"的组合框当选择ConverterApp.
  b.在JARDisplayName域输出ConverterJAR,声明EJB.jar文件包括该组件,该名字会在树形使用布局中出现。
  c.点击增添内容文本域
  d.在内容编纂对话框顶部,输出包括.class文件的目次
  e.选择该目次下相干.class到场:Converter.class,ConverterEJB.class,和ConverterHome.class.
  f.点击断定
  g.点击下一步
  综合对话框:
  a.在组件范例当选择“会话”
  b.选择“无形态”
  b.在EJB类组合框当选择ConverterEJB.
  c.在当地接口组合框当选择ConverterHome.
  d.在远程接口组合框当选择Converter.
  e.在企业组件定名域中输出ConverterBean.
  f.点击下一步
  情况出口对话框:
  由于你能够跳事后面的对话框,以是能够点击完成停止创立EJB使用义务。
  部署J2EE使用
  如今J2EE使用中已包括企业组件(EJB)了,能够对其举行部署。
  1.指定企业组件的JNDI名字
  a.在使用部署波农工具中,在使用树形布局当选择ConverterApp
  b.选择JNDI名字标签
  c.在JNDI名字域中,输出MyConverter并确认。客户端将利用该名字来定位当地接口。
  2.部署J2EE使用
  a.从工具菜单当选择“部署”
  b.在第一个对话框当选择ConverterApp为部署对象,Localhost为方针服务器
  c.选择标有"ReturnClientJar."的选择框
  d.在文本域中敲进ConverterAppClient.jar切实其实切目次,如J2EE的例子目次doc/guides/ejb/examples/converter
  e.点击下一步
  f.在第二个对话框中,核实ConverterBean的JNDI定名为MyConverter.
  g.点击下一步
  h.在第三个对话框中点击停止
  i.在部署历程对话框中,点击OK完成部署
  开辟客户端
  客户端程序ConverterClient是一个自力运转的Java使用,创立ConverterClient次要包含以下步骤:
  1.客户端编码
  2.客户端编译
  客户端编码
  ConverterClient.java源码展现了EJB客户端最基础的义务完成,即:
  ·定位当地接口
  ·创立企业组件(EJB)
  ·挪用贸易办法
  定位当地接口
  ConverterHome接口界说了EJB声明周期办法如create,在中ConverterClient能够挪用create办法之前ConverterHome对象必需被实例化,包含三个步骤:
  1.创立JNDI定名高低文
  Contextinitial=newInitialContext();
  2.查找与JNDI定名MyConverter绑定的对象
  java.lang.Objectobjref=initial.lookup("MyConverter");
  3.限制指向ConverterHome对象的参考
  ConverterHomehome=
  (ConverterHome)PortableRemoteObject.narrow(objref,
  ConverterHome.class);
  创立企业组件(EJB)实例
  客户端经由过程挪用当地接口ConvertHome对象的create办法创立ConverterEJB类对象,create办法前往组件Converter范例的对象。然后,远程办法界说的在ConverterEJB完成的贸易办法能够被客户端挪用。当客户端挪用create办法时,EJB容器将实例化ConverterEJB,然后挪用ConverterEJB.ejbCreate办法。
  ConvertercurrencyConverter=home.create();
  挪用贸易办法
  完成上述义务后,挪用贸易办法就对照复杂了。你挪用Converter对象的办法,EJB容器将响应的挪用运转在J2EE服务器中的ConverterEJB实例的办法。客户端挪用贸易办法dollarToYen的代码以下:
  doubleamount=currencyConverter.dollarToYen(100.00);
  ConverterClient源码
  上面是ConverterClient.java的完全源码:
  importjavax.naming.Context;
  importjavax.naming.InitialContext;
  importjavax.rmi.PortableRemoteObject;
  importConverter;
  importConverterHome;
  publicclassConverterClient{
  publicstaticvoidmain(String[]args){
  try{
  Contextinitial=newInitialContext();
  Objectobjref=initial.lookup("MyConverter");
  ConverterHomehome=
  (ConverterHome)PortableRemoteObject.narrow(objref,
  ConverterHome.class);
  ConvertercurrencyConverter=home.create();
  doubleamount=currencyConverter.dollarToYen(100.00);
  System.out.println(String.valueOf(amount));
  amount=currencyConverter.yenToEuro(100.00);
  System.out.println(String.valueOf(amount));
  currencyConverter.remove();
  }catch(Exceptionex){
  System.err.println("Caughtanunexpectedexception!");
  ex.printStackTrace();
  }
  }
  }
  编译客户端代码
  UNIX:
  1.鄙人面剧本compileClient.sh,对依据J2EE实践安装目次作响应修改。
  #!/bin/sh
  J2EE_HOME=
  CPATH=.:$J2EE_HOME/lib/j2ee.jar
  javac-classpath"$CPATH"ConverterClient.java
  2.运转剧本文件compileClient.sh
  Windows:
  1.鄙人面批处置文件compileClient.bat中,对依据实践J2EE安装目次举行修正。
  setJ2EE_HOME=
  setCPATH=.;%J2EE_HOME%libj2ee.jar
  javac-classpath%CPATH%ConverterClient.java
  2.运转批处置文件compileClient.bat
  运转客户端
  运转客户端你必要ConverterAppClient.jar文件,该文件包括同意客户端与EJB容器中EJB实例通讯所需的存根类,ConverterAppClient.jar文件在部署J2EE使用过程当中创立。
  UNIX:
  1.鄙人面剧本testClient.sh,对依据J2EE实践安装目次作响应修改。
  #!/bin/sh
  J2EE_HOME=
  CPATH=$J2EE_HOME/lib/j2ee.jar:ConverterAppClient.jar:.
  java-classpath"$CPATH"ConverterClient
  2.运转剧本文件testClient.sh
  Windows:
  1.鄙人面批处置文件testClient.bat中,对依据实践J2EE安装目次举行修正。
  setJ2EE_HOME=
  setCPATH=.;%J2EE_HOME%libj2ee.jar;ConverterAppClient.jar
  java-classpath"%CPATH%"ConverterClient
  2.运转批处置文件testClient.bat
  罕见成绩处置
  当运转ConverterClient时发明上面毛病:
  1.java.lang.ClassCastException
  大概没法找到ConverterAppClient.jar文件。
  2.java.lang.NoClassDefFoundError:ConverterClient
  没法定位ConverterClient.class文件。
  3.java.lang.NoClassDefFoundError:javax/naming/Context
  没法找到所需的j2ee.jar文件,确认CLASSPATH设置。
  4.javax.naming.NameNotFoundException:LookupofnameMyConverterfailed.
  J2EE服务器没法定位JNDI名字MyConverter所绑定的组件。
  5.javax.naming.NamingException:Erroraccessingrepository:CannotconnecttoORBat....
  J2EE服务器没有运转。

Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
简单生活 该用户已被删除
沙发
发表于 2015-1-21 11:13:11 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
柔情似水 该用户已被删除
板凳
发表于 2015-1-29 14:34:40 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
变相怪杰 该用户已被删除
地板
发表于 2015-1-30 22:56:58 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
再现理想 该用户已被删除
5#
发表于 2015-2-3 13:07:41 | 只看该作者
是一种使用者不需花费很多时间学习的语言
老尸 该用户已被删除
6#
 楼主| 发表于 2015-2-6 08:01:43 | 只看该作者
是一种突破用户端机器环境和CPU
小魔女 该用户已被删除
7#
发表于 2015-2-10 04:45:25 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
因胸联盟 该用户已被删除
8#
发表于 2015-2-28 19:57:38 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
小女巫 该用户已被删除
9#
发表于 2015-3-7 14:34:05 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
乐观 该用户已被删除
10#
发表于 2015-3-13 01:07:14 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
飘灵儿 该用户已被删除
11#
发表于 2015-3-13 05:05:04 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
12#
发表于 2015-3-13 09:08:55 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
若天明 该用户已被删除
13#
发表于 2015-3-20 17:44:49 | 只看该作者
是一种使用者不需花费很多时间学习的语言
活着的死人 该用户已被删除
14#
发表于 2015-3-25 07:31:38 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
若相依 该用户已被删除
15#
发表于 2015-3-30 19:23:34 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
海妖 该用户已被删除
16#
发表于 2015-4-5 14:39:29 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
再见西城 该用户已被删除
17#
发表于 2015-4-11 00:27:16 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
灵魂腐蚀 该用户已被删除
18#
发表于 2015-4-15 00:46:58 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-4-16 01:25:39 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表