JSP的环境引擎--Enhydra

摘要   Enhydra――海獭是种哺乳动物,它会从海底涝贝壳,然后躺在海面上,把贝壳放在肚皮上用涝起来的石头砸碎再吃,它一生都生活在海里,是真正的冲浪高手,现在的互联网就像大海,丰富而又无处不在,我们也想象海獭一样去冲浪,于是互联网中的Enhydra诞生了。 (2002-09-06 14:08:21) -------------------------------------------------------------------------------- By Wing Enhydra的特点   Enhydra――海獭是种哺乳动物,它会从海底涝贝壳,然后躺在海面上,把贝壳放在肚皮上用涝起来的石头砸碎再吃,它一生都生活在海里,是真正的冲浪高手,现在的互联网就像大海,丰富而又无处不在,我们也想象海獭一样去冲浪,于是互联网中的Enhydra诞生了。   Enhydra作为一个应用服务的开发平台,是基于J2EE标准,在Java虚拟机之上建立的。Enhydra运用了已经在Java中比较成熟的面向对象的技术来设计它本身的层次结构,利用了Java强大的功能、优秀的可移植性,继承了Java精良的模块化、层次化设计思想。这种与Java的密切关系使得Enhydra自然具备了优良的可移植性、可扩展性,使其可以适应现今跨平台、多层结构的应用服务任务。   源码开放保证了Enhydra强大的生命力和可扩展性, 这一举措将大大提高enhydra的开发速度,Lutris正在把Enhydra与Bull软件公司的企业Java Bean服务器和法国电信CORBA对象请求代理软件进行系统集成,这将使Enhydra支持无线设备。由于它的源码开放,我们可以站在巨人的肩膀上看世界,不断获得各种技术资料和帮助。   Enhydra产品主要包括Enhydra Application Server 和 Enhydra development environment主要有几部分构成:   Multiserver:可以单独或者和其他Web Server挂接在一起运行Enhydra application。   Enhydra application:是运行在Multiserver下,同时在运行时使用application framework的java程序。   The application framework :enhydra应用程序框架提供Web应用所应有的最底层结构,它分为三个独立的层次: 表示层(The presentation layer)、商务层(The business layer)、数据层(The data layer)。 也就是说,利用它,只需向框架中加入一个应用程序对象和一系列表示层、商务层、数据层对象构成有机的整体即可搭构一个应用程序对象。而且维护起来相当的方便。 Enhydra tools :开发Enhydra 应用的工具。   要讲清楚Enhydra的作用,首先让我们来看看服务器端运行模式的改变。以前,当客户机浏览器发出对某种信息或是服务的请求时,Web服务器接受并处理这种请求,向数据库请求数据,得到数据后,回送给客户机,这种两层结构即为我们所熟知的client/server模式,如图。   客户机<-------- >Web服务器<--------->数据库   现在不同了,随着对互联网需求的增加,特别是全球电子商务市场的迅猛发展,我们要建立的网站是要满足几万几十万用户同时访问的要求,Web服务器要处理的任务越来越复杂,对于数据库的访问越来越多,使用旧的client/server模式发展电子商务是无法想像的,于是提出了一种新的三层模式,如图所示。   客户机<--------> Web服务器<--------->应用服务器<-------->数据库   在Web服务器和数据库之间加入了一个应用服务器。事实上这个应用服务器在client/server模式中就已存在,但它分散在客户层和数据库服务器层,现在我们把它的分散的两部分提取出来,组成专门的应用服务器,使客户层变"瘦",使数据库服务器更专注数据库操作。要构成这个应用服务器,首先要有一个类似于操作系统的运行环境,也就是"中间件",准确的讲"中间件"就是指位于应用服务器平台(操作系统、硬件)与应用程序之间的软件产品,应用程序在其支持下运行。当Web服务器接收到来自客户机的请求时,将请求发送到应用服务器去处理,在应用服务器上运行着中间件平台,其上运行相应的处理这种请求的应用程序,这些应用程序对请求进行处理,访问数据库,并向Web服务器传送处理结果。   Enhydra环境本身就是运行在应用服务器上的中间件产品,准确的讲,它是中间件组的集成,并构成了一个平台,这个平台包括开发平台和运行平台。即使用Enhydra环境中的工具开发出来的应用程序,在Enhydra运行环境上运行。   Enhydra作为中间件产品有很多优点,它对各种硬件平台、操作系统、数据库以及Client端实现了兼容。Enhydra运行环境可以在多种硬件平台和操作系统上运行,当我们要改变硬件或软件环境时,只需把在Enhydra开发环境中编写的应用程序用很少的时间重新编译即可。利用Enhydra开发应用产品可以降低开发成本,提高工作效率。比如Enhydra开发环境已经为您提供了标准应用程序框架,如何响应,如何处理,如何访问数据库等等程序的结构非常清晰。这些基础程序的开发在工作中本来要占用大量的时间和经费,使用Enhydra,我们可以将精力更多的用在业务应用程序上。   此外,Enhydra有很多特性,它是Open Source的,你不用为使用它而花钱, 同时会有很多人来丰富它改进它,这些人不再局限于某一个公司某一个国家。Open Source 必将是软件业发展的主流,在这方面Enhydra走在世界的前面。Enhydra的应用程序要求使用JAVA语言来编写,这就使得应用程序的通用性和安全性得到保证。Enhydra符合很多的工业标准如Servlets, JSP, Java, XML, HTML, JDBC等等,同时Enhydra提供了丰富的开发工具, Application Wizard命令行工具,帮你创建基本的Enhydra应用程序框架。XMLC用来产生一个JAVA对象来反映出XML文件的结构,使用该对象并使用DOM接口在运行时实现程序对XML文件内容的访问和更新。DODS是建立你的数据模型的一种工具。数据模型中的数据对象和数据库中的表有一一对应的关系。基于以上的原因我们能轻松的使用Enhydra开发出business-to-business, business-to-consumer, e-commerce等多种多样的可靠而且可扩展的应用程序,以满足Internet和电子商务发展的需要。 Enhydra在Linux下的安装   首先到http://enhydra.enhydra.org/software/downloads/index.html下载最新Enhydra的版本; 一、安装JDK   解压:tar zxvf jdk-1_2_2-linux-i386.tar.gz mv jdk-1_2_2 /usr/local/jdk1.2.2   把”export JAVA_HOME=/usr/local/jdk1.2.2”加入环境变量文件中,一般是$HOME/.bash_profile 二、安装Enhydra   解压下载的Enhydra包 tar zxvf enhydra3.1.tar.gz mv enhydra3.1 /usr/local/   这样就把enhydra安装在/usr/local/enhydra3.1目录下 三、enhydra Multiserver Admin的启动   进入enhydra3目录, 如果enhydra安装在/usr/local下 cd /usr/local/enhydra3.1   如果enhydra安装在/enhydra/local下 cd /enhydra/local/enhydra3.1   然后输入 ./bin/multiserver   如果已经设置了path环境变量   直接在命令提示符下输入multiserver并回车   这样就会在窗口输出一些信息,主要是显示监听的几个端口信息 http://localhost:8001/ - The Multiserver Admin Console http://localhost:8002/ - The Welcome Application http://localhost:8003/ - The Javadoc for Enhydra http://localhost:8004/ - Enhydra里自带的sample   一些jsp和servlet文件和tomcat里的sample差不多, 在这里可以测试一下jsp和servlet看看能否运行, 如果不能运行JSP和servlet, 检查一下path和classpath)   在IE或NETSCAPE里运行http://localhost:8001/   提示输入username和password username admin password enhydra   用户名和密码可以在multiserverAdmin.conf里修改 四、建立我们自己的应用目录   首先建立一个目录(随意建到哪里)   例如:建立一个test目录   在enhydra$提示符下输入命令: mkdir test   然后回车 列出目录ls –l mkdir test ls -l total 12 -rw-r--r-- 1 500 everyone 937 Apr 14 2000 README drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 apps drwxr-xr-x 2 500 everyone 0 Mar 30 08:58 bin -r-xr-xr-x 1 500 everyone 4090 Apr 14 2000 configure drwxr-xr-x 4 500 everyone 0 Mar 30 08:59 director drwxr-xr-x 6 500 everyone 0 Mar 30 08:58 dist drwxr-xr-x 7 500 everyone 0 Mar 30 08:58 doc drwxr-xr-x 7 500 everyone 0 Mar 30 08:59 dods drwxr-xr-x 3 500 everyone 0 Mar 30 08:59 examples drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 filters drwxr-xr-x 2 500 everyone 0 Mar 30 08:58 lib drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 logs -rw-r--r-- 1 500 everyone 16569 Mar 30 08:59 multiserver.conf drwxr-xr-x 3 500 everyone 0 Mar 30 09:52 test drwxr-xr-x 3 500 everyone 0 Mar 30 08:58 webapps drwxr-xr-x 3 500 everyone 0 Mar 30 09:04 work drwxr-xr-x 3 500 everyone 0 Mar 30 08:59 xml cd test appwizard test Creating new tree for Enhydra application test in . est ... Done.   这样建立了个应用程序的目录test   是application root directory(等会要用到) cd test ls -l total 3 -rw-r--r-- 1 500 everyone 619 Mar 30 10:41 Makefile -rw-r--r-- 1 500 everyone 595 Mar 30 10:41 README -rw-r--r-- 1 500 everyone 880 Mar 30 10:41 config.mk drwxr-xr-x 5 500 everyone 0 Mar 30 10:41 test cd test ls Makefile data start Test.java multiserver.conf.in test.conf business presentation 建立application, 在命令行输入make make   运行后就回出现下列信息 Build Started Fri Mar 30 10:51:00 2001 + /usr/local/enhydra3.0.1/bin/xmlc -d ../../ classes -class test.presentation.WelcomeHTML -generate both Welcome.html Adding to JAR classes: Enhydra.gif ……………………………   如果这里出现错误,检查一下classpath是否设置正确你的classpath里需要enhydra.jar这个package 现在让我们看看application root directory, 也就是前面说的test目录 cd .. ls Makefile README classes config.mk output test   对比一下, 可以看的出来多出两个目录, make在application root directory方向上建了两个子目录classes和output   Output目录:   用来放运行你的应用程序所需要的几个配置文件 ---multiserver.conf Multiserver配置文件 ---AppName.conf(这里是test.conf)application配置文件 ---start start script   运行一下我们刚建立的application cd output ls multiserver.conf start test.conf ./start *** *** Connect to http://false:9000/ *** 2001.03.30 11:11:17: Multiserver,INFO: Starting Enhydra Multiserver 2001.03.30 11:11:19: Multiserver,INFO: HTTP listening on port: 9000 2001.03.30 11:11:19: Multiserver,INFO: Starting servlet/application test 2001.03.30 11:11:19: Multiserver,INFO: Application test has url prefix "". 2001.03.30 11:11:19: test,INFO: test: init Enhydra Java Application Server Copyright 1997-2000 Lutris Technologies, Inc. All rights reserved. 2001.03.30 11:11:20: .Test,INFO: Enhydra Java Application Server 2001.03.30 11:11:20: .Test,INFO: Copyright 1997-2000 Lutris Technologies, Inc. 2001.03.30 11:11:20: .Test,INFO: All rights reserved.   默认情况下监听9000端口。   现在我们可以应用这个APPLICATION了,   在NETSCAPE里输入http://localhost:9000/   这是个动态产生的presentation object (po) 文件. 五、建立WEB应用程序目录   Enhydra 作为JAVA APPICATION SERVER,怎样让我们刚刚建好的application目录运行编写的jsp和servlet的呢???   写两个例子测试一下Hello.jsp和HelloWorld.java /**********Hello.jsp(jsp文件)********************** hellworld <% out.println("HelloWorld!!!"); %> ************END***********************/ /*************************HelloWorld.java(servlet文件)************* *****************************COPY ***************************** import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println(""); out.println("Hello World!"); out.println(""); out.println(""); out.println("

Hello World!

"); out.println(""); out.println(""); } } ************END*************/   使用我们刚才在第四步建立的test application root目录   首先我在test/test下建立了一个webapps目录   目录结构: webapps |_____jsp |_____servlet |_____web_info |______classes |______jsp   可以根据这个结构自己建目录,现在把前面的hello.jsp放到jsp目录下。 HelloWord.java放到servlet目录下, 然后用javac 编译这个.java为.class文件   到web-info下的classes目录里, 现在让Multiserver Admin Console来管理应用程序。   把/enhydra3.1/apps/multiserverAdmin.conf这个文件copy到/usr/local/test/test/output.   操作: cp /usr/local/enhydra3.0.1/apps/multiserverAdmin.conf /usr/local/test/test/output   用vi编辑工具打开/usr/local/enhydra3.1/test/test/output/ multiserver.conf   找到这几行 Application.MultiserverAdmin.ConfFile = multiserverAdmin.conf Application.MultiserverAdmin.Description = "The Enhydra Multiserver Management Console." Application.MultiserverAdmin.Running = yes Connection.p9001.Type = http Connection.p9001.Port = 9001 Channel.p9001.aChan.Servlet = MultiserverAdmin Channel.p9001.aChan.Url = "/" Channel.p9001.aChan.Enabled = yes   把前面的#号去掉,保存.   output目录下   在命令行输入./start   将监听9000和9001两个端口。 http://localhost:9001-------The Multiserver Admin Console http://localhost:9000-------应用   在浏览器里打开http://localhost:9001 username->admin password->enhydra   启动了Multiserver's graphical administration program   点击ADD按钮, 在弹出的小窗口里面   Application/Servlet/War: 选择War(Web Application Doc Root)   Name: 取个名字吧, 我的这个就叫myapp吧   Doc Root: /usr/local/enhydra3.1/test/test/webapps/ (这个填写web 应用程序的方向, 一定要填对) /*******************以下可选**************************/ Session timeout: (optional) 30 (填写session超时时间) War expanded:(optional) War validated: (optional) Invoker Enabled:(optional) (如果想让Servlet工作, 选中这个选项) WorkDir Persistent:(optional) Description:(optional)   点击OK   这样就会在主窗口的左面Applications列表里多出了一个myapp   点击myapp,在窗口的右面部分出现状态信息。   有两个选项, 点击CONNECTIONS, 然后点create   填入端口号9002 (注意端口不要有冲突)   OK后。用鼠标点击在主窗口的左面的start按钮。   必须让9002 running, 否则9002不能工作   然后保存 save state。 下次就可以直接使用了   注意:这里很容易出问题的。最好把multiserver.conf的内容研究明白,最容易出现的问题就是端口不能绑定(bind)。   在浏览器中输入 http://localhost:9002/jsp/hello.jsp   和 http://localhost:9002/servlet/HelloWorld   如果一切正常就可以看到我们熟悉的Hello World字样了,这时你的enhydra就算安装成功了。 Enhydra在Windows下的安装   首先到http://enhydra.enhydra.org/software/downloads/index.html下载最新Enhydra的版本; 一、安装JDK   1、双击jdk1_2_2-00x-win.exe文件进行安装,使用缺省配置进行安装,JDK的缺省安装目录为 C:jdk1.2.2,JRE的缺省安装目录为C:Program FilesJavaSoftJRE1.2;   2、 在控制面板里的SYSTEM中设置环境变量path和classpath path= c:jdk1.2.2in;c:jdk1.2.2 classpath=c:jdk1.2.2lib ools.jar; C:jdk1.2.2libdt.jar;.   如果是win98, 在autoexec.bat文件里设置path和classpath. 二、安装Enhydra   安装之前保证windows安装在C盘 ,Enhydra在WIN 2K下的安装和其他应用程序的安装没什么不同, 按步骤安装即可需要注意的是安装时需要确定JDK的安装目录.其他默认就可以了。 安装完成后会在c盘生成三个目录 : bin, usr enhydra. 三、设置环境变量   确定enhydra安装目录,应该在usrlocal或enhydralocal下path里加上你的安装目录localenhydra3.0.1in; 因为在BASH shell里经常使用这个目录下的执行文件   classpath里加上你的安装目录localenhydra3.0.1libenhydra.jar;   Enhydra在WINDOWS下使用了UNIX bash shell 环境和command emulator, 操作和UNIX/linux相同。点击桌面的Enhydra Shell图标,打开一个SHELL,出现欢迎信息和提示符.   如下所示: * c:enhydra>echo off * - * Welcome to The Enhydra Development Environment. * Many thanks to the Cygnus group for the GNU tools... * - * Enhydra$ *------------------------------------------------------*/ 在Enhydra$命令行敲入命令:ls -l /*----------------------操作如下------------------- * Enhydra$ ls -l * total 7 * -rwxr-xr-x 1 0 everyone 177 Feb 17 1999 ENHYDRA.BAT * -rw-r--r-- 1 0 everyone 2238 Jan 13 1999 Enhydra.ico * -rw-r--r-- 1 0 everyone 967 Jan 14 1999 EnhydraShell_95_98.pif * -rw-r--r-- 1 0 everyone 376 Jan 14 1999 EnhydraShell_NT.lnk * -rw-r--r-- 1 0 everyone 186 Jan 13 1999 Install-License.txt * -rw-r--r-- 1 0 everyone 524 Jan 14 1999 Install-Readme.txt * drwxr-xr-x 4 0 everyone 0 Feb 24 2001 local * Enhydra$   继续输入命令: * Enhydra$ cd local * Enhydra$ ls -l * total 384 * -rw-r--r-- 1 0 everyone 785086 Feb 24 2001 Uninst.isu * drwxr-xr-x 8 0 everyone 0 Feb 24 2001 enhydra-demos3.0.1 * drwxr-xr-x 14 0 everyone 0 Feb 24 2001 enhydra3.0.1 * Enhydra$   退出虚拟shell按ctrl+c。   Enhydra在windows下的使用和在Linux下的基本相同,只要把一些命令这个虚拟的unix环境下执行就可以了,在这里我们就不多作介绍了。 <淘宝热门商品:
 

4.60 元  

旺智通讯手机配件商城-----诚邀各地商家加盟合作(可代发货)

皇冠推荐 特卖 诺基亚原装二手BL-5C电池 型号BL5C

 

 

【25元或以上商品任意2件包运】【时尚卓尔】-个性随我秀


来源:程序员网

小小豆叮

0 Responses to "JSP的环境引擎--Enhydra"

发表评论