分享
 
 
 

9.1 Eclipse的WEB环境的搭建

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

*******************************************************

作者:陈刚,普通程序员,曾有幸以Eclipse插件方式开发过一个中型软件。现将所学

付诸于纸,暂取书名<Eclipse插件开发指南>,将于2005年初由清华大学出版社出版。

blog:http://blog.csdn.net/glchengang/

*******************************************************

第9章 Eclipse的J2EE开发

Eclipse默认安装是没有J2EE开发支持的,它需要安装第三方插件,本章的主要介绍的J2EE开发插件是Lomboz,主要开发环境是Tomcat + Lomboz + Struts + Hibernate,这是当前比较流行的一种选择。其中Tomcat充当WEB服务器;Lomboz是J2EE开发的工具;Struts提供强大的MVC模式支持;Hibernate替代笨重的EJB来充当数据库的持久层。

以上所有的工具和软件包不仅流行、功能强大、而且是免费的,是J2EE开发典型搭配。本章将分三个层次来渐进式的展开讲解:

l Lomboz下的纯J2EE开发

l 融合Struts的J2EE开发

l 融合Struts和Hibernate后的J2EE开发

由于篇幅有限,本章以开发环境的安装和配置为重点,并辅以一个典型而有深度的实例来演示具体的开发操作,最后给出一个扩展知识的资料索引。

本章和第8章一样也使用CVS来管理所有例程,在每一节的标题后会用括号显示这一节的版本号。本章具体的环境为:WindowsXP + JDK1.4.2_06 + Eclipse3.1M4 + cvsnt2.0.58d + Tomcat5.0.28 + Lomboz3.1.0 + Struts 1.2.4。

9.1 WEB环境的搭建(V0010)

9.1.1 下载CVS版本注意事项

由于V0010版,存在一些空目录,而这些空目录也是必须要的,否则项目会出错。这需要修改一个CVS的配置,如下图9.1所示,打开Eclipse的首选项→小组→CVS→将“修剪空目录”项取消勾选。

图9.1 修改CVS配置

9.1.2 Tomcat的下载与安装

这一节先搭建好Tomcat环境,Tomcat的下载安装和Eclipse、Lomboz都没有直接关系,它是完全独立的。

1、下载Tomcat

(1)用IE打开Tomcat的下载页面:http://jakarta.apache.org/tomcat/index.html,选择页面左边的链接“Binaries”,转到下图9.2所示的页面:

图9.2 Tomcat项目选择

(3)单击上图中标识的“Tomcat”项,出现如下图9.3所示的页面

图9.3 具体下载项

(4)下载上图9.3所示的“5.0.28.exe”项,下载后的文件名为:jakarta-tomcat-5.0.28.exe

l 注意:

l (1)不要下载Tomcat5.5.*版,因为那需要JDK5.0的支持;也不要下载4.1.*版,它的功能太弱了。因为不同版本之间的安装和配置都会有所不同,为了和本教程同步,一定要下载5.0.28版。

l (2)如果用FlashGet等多线程下载工具无法下载,则改用原始的IE右键菜单的“另存为…”项来下载。

2、安装Tomcat

安装Tomcat的过程比较简单,双击得到的下载文件:jakarta-tomcat-5.0.28.exe,开始安装。

(1)选择安装组件。接受默认的勾选即可,如下图9.4所示。

图9.4 选择组件

(2)选择Tomcat安装目录。也一样接受默认值,将安装到C:\Program Files\Apache Software Foundation\Tomcat 5.0目录下,如下图9.5所示:

图9.5 Tomcat的安装目录

(3)选择HTTP监听端口(Port),如下图9.6所示。默认端口是8080,如果8080端口已被你电脑上的其他软件所占用(如IIS、JBoss等),则可以另选择一个空闲的端口。最后,给Tomcat的超级管理员admin设为一个密码(本书设为123456)。

图9.6 设置端口和密码

(4)设置Tomcat使用的JVM,本书的默认值为“C:\Program Files\Java\j2re1.4.2_06”,如下图9.7所示。很多资料都指出,在安装JDK时要设置设置classpath、JAVA_HOME、path等环境变量,但本书从第一章开始就从没有设置过这些环境变量,一样可以运行通畅,也许是新版的JDK1.4.2_06很好的解决了这些问题。从这一步也可以看到,Tomcat已经在安装时定位好了JVM的位置,不必再手工设置了。

设置好JVM后,单击“install”按钮,开始安装。

图9.7 定位JVM的位置

(5)安装完成之后,在Windows的“控制面板”→“管理工具”→“服务”窗口中,可以看到Tomcat已经注册为windows的一项服务,如下图9.8所示。请确定它是“手动”方式,这一点在开发时很重要,因为我们以后要通过Eclipse来启动Tomcat。

图9.8 windows“服务”窗口

3、启动Tomcat

虽然以后在开发时,是要通过Eclipse来启动Tomcat,但现在为了测试Tomcat是否安装成功,暂时先启动Tomcat。

(1)可以通过Windows的“开始”菜单→“Apache Tomcat5.0”组→“Configure Tomcat”项来运行Tomcat的配置界面(如下图9.10所示),这个界面包含了Tomcat的一些参数设置,这些设置一般都不用去改动它。直接“单击”按钮,即可启动Tomcat。

图9.10 Tomcat的配置界面

(2)在IE浏览器中输入“http://localhost:8080”或“http://127.0.0.1:8080”,其中8080为安装时设置的端口号。如果启动成功,则会出现如下图9.11所示的页面;反之,如果没有出现此页面,则表示启动未成功,这时你需要检查前面的安装步骤是否和本书的一致。

图9.11 验证Tomcat是否安装及启动成功

附注:在上图页面的左部有两个链接:Tomcat Administration、Tomcat Manager,它们是用于管理Tomcat的,登录密码都是在安装Tomcat时设置的用户名admin和密码123456。其中,Tomcat Adiministration项可以设置数据库连接池、管理用户及权限、以及其他一些Tomcat服务器相关设置;Tomcat Manager项主要用来发布网页管理,通过它可以轻松的将一个WAR包发布到Tomcat中。

关于Tomcat中文问题的解决,请参阅9.4.6节。

9.1.3 Lomboz的下载与安装

下载Lomboz时一定要针对Eclipse的版本来选择相应的Lomboz版本下载,否则对应版本不同,很有可能会导致Lomboz无法正常使用。本章由于依然要使用CVS,所以还是用Eclipse3.1M4版,Lomboz选择相应的3.1.0版。

1、下载Lomboz

Lomboz的下载地址是:http://forge.objectweb.org/project/showfiles.php?group_id=97 ,下载页面如下图9.12所示,请选择for Eclipse3.1.x的Lomboz来下载,而且还需要同时下载emf包(如图中箭头所示)。

下载后的文件名为:

l org.objectweb.lomboz_3.1.0.N20050106.zip

l emf-sdo-runtime-I200412160800.zip

图9.12 Lomboz的下载页面

2、安装Lomboz

(1)因为Lomboz、emf是Eclipse的插件,所以它和其他Eclipse插件的安装方法一样,本书采用Links式的插件安装方法,具体步骤不再重复,请参阅1.2节的安装步骤。

下图9.13是安装完成后的目录结构:

图9.13 lomboz、emf的安装目录结构

其中图9.13中的links目录有新创建的两个文本文件:

l 文件lomboz.link,内容仅一句:path=lomboz_3.1.0.N20050106

l 文件emf.link,内容也仅一句:path=emf-sdo-runtime-I200412160800

(2)验证Lomboz是否安装成功

启动Eclipse。如果安装成功,选择“文件”→“新建”→“项目”会出现如下图9.14所示的Lomboz项目。

图9.14 验证Lomboz是否安装成功

(3)如果未能出现上图画面,请做如下检查和尝试:

l 删除eclipse目录下的子目录configuration,再启动Eclipse试一试。

l 检查Lomboz的版本是否和Eclipse的一致。

l Links文件中的path项是否设置正确。

l Lomboz的目录结构是否正确:..\lomboz_3.1.0.N20050106\eclipse\plugins,注意lomboz_3.1.0.N20050106和plugins的中间还有个elcipse目录。

9.1.4 Lomboz的环境设置

安装完Lomboz之后,还需要针对Tomcat做一些设置才能用于开发WEB,具体操作步骤如下:

(1)打开Eclipse的首选项,设定JDK的tools.jar包的位置,本书是“C:\jdk\lib\tools.jar”,如下图9.15所示:

图9.15 设定JDK的tools.jar包的位置

(2)如下图9.16所示,注意,在Server types项的下拉框中,要选择和当前所用Tomcat版本相对应的项;Application Server Directory和Classpath Variable两项都是指向Tomcat的安装目录:C:\Program Files\Apache Software Foundation\Tomcat 5.0。

图9.16 Tomcat在Lomboz中的设置

(3)Tomcat5.0.28版本在Lomboz中无法启动,必须还要做一些小修改。到Lomboz插件的“..\lomboz_3.1.0.N20050106\eclipse\plugins\com.objectlearn.jdt.j2ee_3.0.1\servers”目录中,可以看到各种Web服务器的配置文件,它们都会显示在上图9.16的server types下拉框中,除了tomcat50x.server文件外,其他都不需要,把它们都删除掉或者备份到其他地方。最后,用记事本打开tomcat50x.server,并将所有“${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed”项替换成“${serverRootDirectory}/common/endorsed”,共有两处,约在文件中的35、39行位置。

9.1.5 JSP的HelloWorld

本小节将写一个JSP的HelloWorld,用来验证以上Tomcat和Lomboz的环境是否安装成功。

1、设置Java的构建路径

打开Eclipse首选项,如下图9.17所示,选择“java”→“构建路径”→选择“文件夹”项。经过此步设置之后,新建的Java项目(包括J2EE项目)就会默认以bin为输出目录。

l 注意:这一步相当重要,因为用Lomboz创建J2EE项目时,是无法象创建普通Java项目那样选择“项目布局”的,此时J2EE项目的输出目录将会是在项目根目录下,以后JavaBean的java文件也会和class文件混在一块,非常不便。更关键的是,在后面会要重新定位JavaBean的输出路径,如果不经过这一步,则定位JavaBean的输出路径时,整个项目的输出路径也会自动定位到bin目录下,但此时项目结构都会调整,容易导致混乱。总之,此步一定不能省略。

图9.17 设置Java项目的构建路径

2、创建一个J2EE项目

(1)重启Eclipse。选择“文件”→“新建”→“项目”,选择如下图9.18所示的“Lomboz J2EE Project”项目,然后单击“下一步”。

图9.18 选择“Lomboz J2EE Project”项目

(2)输入项目名称myweb,然后单击“下一步”。

(3)在接下的“定义Java构建设置”页中不做任何改变,直接单击“下一步”。

(4)最后一个页面是J2EE的设置,如下图9.19、9.20所示。共有三步:创建一个名为hello的Web Modules(WEB模块);在Targeted Servers选项卡中,选择“Apache Tomcat v5.0.x”项并单击“Add”加入;单击“完成”按钮,开始生成一个J2EE项目。

图9.19 创建一个Web Modules

图9.20 设置Targeted Servers

(5)完成以上操作之后,“包资源管理器”视图中会出现如下图9.21所示的项目结构。

图9.21 myweb项目的项目结构

3、在Lomboz中启动Tomcat

右键单击“hello模块”,弹出如下图9.22所示的右键菜单,选择Run Server来启动Tomcat(启动前确保Tomcat还是停止状态)。在这个菜单中还有其他常用的菜单项:

l Stop Server - 停止Tomcat

l Debug Server - 用调试方式启动Tomcat。在WEB开发中,它比Run Server更常用。

l Check All JSP Syntax - 检查项目中所有JSP文件的语法是否符合规范

l Undeploy Module - 删除已经发布在Tomcat上的WEB模块

l Deploy Module - 发布WEB模块到Tomcat上

l Show in Browser - 在IE中预览本WEB模块的效果。

图9.22 hello模块的右键菜单

如果启动Tomcat成功,在控制台会显示如下图9.23所示的字符串。

图9.23 控制台的输出显示

4、发布hello模块

右键单击hello模块,打开如上图9.22所示的右键菜单,选择Deploy Module项,将hello模块发布到Tomcat。

从下图9.24的控制台输出,可以看出Lomboz使用Ant来发布网页,每一行都显示出hello模块的打包发布过程,下面给出一些关键词解释:

l mkdir - 创建目录

l copy - 复制文件

l jar - 用JDK的jar来打包(这里是打包成hello.war)

l delete - 删除文件

图9.24 发布hello模块时的控制台输出

再次调出hello模块的右键菜单,选择Show in Browser项。Lomboz将打开IE浏览器,得到如下图9.25所示的效果,也可以直接打开IE浏览器,输入地址“http://127.0.0.1:8080/hello/”来查看效果。这个页面显示的是index.jsp文件。

图9.25 用IE来查看网页效果

5、修改index.jsp

如下图9.26所示,修改index.jsp来显示一个HelloWorld字符串。

图9.26 修改index.jsp

保存好之后,还要再用“Deploy Module” 菜单项重新发布hello模块,然后才能在IE中看到修改后的效果。

6、一些相关问题

(1)如果看不到修改效果,有可能是IE的页面缓存的原因,可以尝试如下解决办法:关掉IE,然后再打开,进入“工具”→“Internate选项”,单击下图9.27中的“删除文件”按钮来删除IE的网页缓存。

图9.27 删除IE页面缓存

(2)同样是因为缓存原因,在停止Tomcat服务后,即使刷新网页却依然能正常显示。将IE关掉重启,页面即会无法访问。

(3)如果是在Eclipse中启动Tomcat的,则关闭Eclipse,Tomcat服务也随之停止。但建议还是使用“Stop Server”菜单项来正常停止Tomcat服务。

9.1.6 如何不必发布就可以在IE上显示WEB修改效果

经过前面设置后,虽然可以开发WEB了,但每一次修改都要重新发布hello模块,才能在IE上显示修改后的效果,这无疑是开发时无法接受的,照这样,开发的时间进度至少要增加一倍。本小节将给出不必不发布就可以在IE上显示修改效果的方法。

首先,解决的办法是基于以下知识的:

l 在发布hello模块时,Lomboz是将hello模块打成一个WAR压缩包,然后复制到Tomcat的webapps目录,在IE上显示的网页就是来自于这个目录下的WAR压缩包中,所以不能直接显示修改后的JSP文件也是可以理解的了。

l Tomcat要发布网页,不是必须得打成WAR包,也可以发布未经压缩的文件目录。实际项目中,直接发布零散文件的方式居多,因为这样更新JSP文件比较方便。

l 在Tomcat安装目录下的conf子目录里有一个名为server.xml的文件,它可以用来定义一个新的WEB应用。

由上面的知识,可以得出以下解决思路:通过修改server.xml文件,定义一个新的WEB应用,将这个WEB应用定位到Eclipse的workspace目录中的myweb项目。这样设置以后,IE显示的文件就是Eclipse中正在编写的JSP文件了,也就是说,不必再经过打包成WAR发布这一步。

具体操作步骤如下:

(1)为了避免干扰,先将原来发布的hello模块删除。

打开Tomcat主页面:http://127.0.0.1:8080/。选择链接“Tomcat Manager”,输入用户名密码(admin、123456),得到如下图9.28所示页面。单击hello模块右侧的“Undeploy”将hello模块从Tomcat上的撤消发布。

图9.28 撤消Tomcat上的hello模块

(2)修改server.xml,定义一个新的WEB应用

server.xml此文件的具体路径如下:C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\server.xml。此server.xml文件最未尾的</Host>项之前插入一项<Context>的设置,<Context>的具体代码如下:

<Context path="/hello"

reloadable="true"

docBase="C:\eclipse3.1M4\eclipse\workspace\myweb\hello"

workDir="C:\eclipse3.1M4\eclipse\workspace\myweb\bin" />

代码说明:

l 注意一定要将以上代码加在紧靠</Host>项之前,<Context>的几个属性可以分行写,也可以写成一行。

l path - 是指WEB模块的名称hello,这样其访问地址为:http://127.0.0.1:8080/hello/

l docBase - 定义jsp文件位置。本处指向Eclipse中hello模块的路径

l workDir - 在IE显示之前,JSP要先编译成servlet,这个属性就是定义hello模块输出的servlet的所在位置。如下图9.29所示,因为所建的myweb项目默认的输出路径为myweb\bin目录,所以这里的workDir也定位到此myweb\bin目录。

图9.29 myweb项目的默认输出文件夹

(4)右键单击“hello”模块→选择Lomboz J2EE→选择Debug Server(或Run Server)。然后,在IE浏览器中输入“http://127.0.0.1:8080/hello/”来查看效果。最后,随便修改一下index.jsp文件,直接刷新一下IE,如果可以看到修改后的效果,表示以上所有设置成功。

如下图9.30所示的“导航器”视图(注意:不是“包资源管理器”视图),index.jsp在经过IE显示之后生成几个新文件和目录(可能需要先刷新一下myweb项目):

图9.30 myweb项目结构

9.1.7 配置Tomcat的数据库连接池

在WEB开发中,有没有数据库连接池对WEB性能的影响非常大,Tomcat有自带的连接池,这一节就来配置Tomcat的连接池。

1、复制JDBC连接包

将第8章使用的JDBC连接包mysql-connector-java-3.0.16-ga-bin.jar复制到C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib目录下,common\lib是Tomcat的全局引用库的所在目录,Tomcat在启动时会自动加载这个目录中的所有JAR包。

有些网上的文章说也可以将数据库连接包复制到WEB应用的WEB-INF\lib中(本例的myweb\hello\WEB-INF\lib目录),这个目录是hello模块发布时会自动加载的一个包目录。但经笔者实验,如果连接包将放在此目录中,不用数据库连接池方式来访问数据库,则连接包可以正常使用;如果使用Tomcat连接池,则会出错误,连接包无法使用。

2、进入Tomcat的配置页面

用IE浏览器输入地址:http://127.0.0.1:8080/admin/ ,打开Tomcat服务器配置的登录页面,再输入用户名admin、密码123456,进入Tomcat的配置页面,如下图9.31所示:

图9.31 连接池设置

单击左边的树结点“Data Source”→选择右上角的下拉框的“Create New Data Source”项,然后在表格中输入相应的连接池配置信息:

l JNDI Name:jdbc/mysql - 设置连接池的JNDI名,在Java程序会用到此名。

l Data Source URL:jdbc:mysql://localhost/sms - 数据库连接字串,sms是数据库。

l JDBC Driver Class:com.mysql.jdbc.Driver - JDBC连接类。

l User Name:root - 数据库登录用户名。

l Password:****** - 数据库登录密码。本例为123456。

l Max. Active Connections:4 - 最大连接数。实际应用时,应该根据WEB使用情况设置得大一些;开发时,4个连接足够了。

l Max. Idle Connections:2 - 最大空闲连接数。

l Max. Wait for Connection:5000 - 最大等待连接限制。

l Validation Query:验证用的查询语句,可以不填。

填写完以上信息之后,单击右下角的“Save”按钮保存修改,再单击右上角的“Commit Changes”按钮提交修改。

3、修改Tomcat的server.xml文件

server.xml文件的具体路径:C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\server.xml,在原来的<Context>项中加入一个子项< ResourceLink>:

<Context path="/hello"

reloadable="true"

docBase="C:\eclipse3.1M4\eclipse\workspace\myweb\hello"

workDir="C:\eclipse3.1M4\eclipse\workspace\myweb\bin">

<ResourceLink name="jdbc/mysql"

global="jdbc/mysql"

type="javax.sql.DataSourcer"/>

</Context>

4、测试数据库连接池

将以下测试程序命名为test.jsp,创建在hello模块的根目录下,然后通过IE地址:http://127.0.0.1:8080/hello/test.jsp来访问。这个测试程序从数据库连接池中获得一个数据库连接对象Connection,然后再查询数据库的iuser表,并用name(姓名)列的数据打印出来(注:iuser是在第8章创建的用户表)。test.jsp运行效果如下图9.32所示:

图9.32 test.jsp的效果

test.jsp源代码如下:

<%@ page contentType="text/html; charset=GBK"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%

Connection con=null;

Statement sm=null;

ResultSet rs=null;

try{

InitialContext ctx=new InitialContext();

DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");

con = ds.getConnection();

sm = con.createStatement();

rs = sm.executeQuery("select * from iuser");

while(rs.next())

out.println(rs.getString("name")+",");

}catch(Exception e){

e.printStackTrace();

}finally {

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {}

rs = null;

}

if (sm != null) {

try {

sm.close();

} catch (SQLException e) {}

sm = null;

}

if (con != null) {

try {

con.close();

} catch (SQLException e) {}

con = null;

}

}

%>

程序说明:

l <%@ page contentType="text/html; charset=GBK"%> 这一行是设置网页的字符集,也是解决中文乱码问题的关键一句。如果是纯html页面,则应在</HEAD>项之前加入这样一句:<META http-equiv=Content-Type content="text/html; charset=GBK">。

l <%@ page import="java.sql.*"%> 这一句类似于Java中的import java.sql.*。

l ctx.lookup("java:comp/env/jdbc/mysql"); 这一句中comp/env是固定不变的,jdbc/mysql是前面连接池设置的JNDI Name。

l 在程序最后一定要关闭数据库连接(实际是将连接返回给连接池,并没有真正关闭),否则,很快就会因连接数耗尽,而无法再正常显示JSP页面。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有