Username:
Password:
Remember Me?
使用Ant和Tomcat创建Web应用
< 上一篇
|
下一篇 >
来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00
应当尽量避免使用JSPs实现复杂逻辑;那种程式也许容易写,但难以调试而且几乎不可能被理解和维护。好的解决方案是用JSPs负责Web页面的显示(这正是JSPs擅长的),把复杂逻辑的实现交给Java,如对数据库的访问。这样,程式不但比较容易实现和调试,而且易于理解和维护。
这个Web应用程式能够运行在专用Web服务器或是个人电脑上,操作系统能够是Windows,Linux,或Mac OS。所需的软件包有Java运行时环境(JDK1.2或以上版本),Tomcat最新版本(Tomacat 4或以上版本),连同Ant研发工具(Ant 1.4或以上版本)。Ant用于创建Web应用程式包(WAR),连同在Tomcat上安装部署WAR文档,配置关系数据库接口javax.sql.DataSource。任何以上提到的软件包都能够通过Internet免费获得。
这个Web应用程式还需要一个数据库。几乎任何支持SQL而且有JDBC驱动的关系数据库都能够。MySQL是个符合条件的不错选择。从MySQL.com能够得到MySQL的最新版本连同他的JDBC驱动Connector/J。
为了让Ant和Tomact管理软件协同工作,需要将catalina-ant.jar从Tomcat的server/lib目录拷贝到Ant的lib目录下。将您的数据库JDBC驱动程式复制到Tomcat的common/lib目录下使Tomcat和其上的Web应用程式能够访问数据库。最后,必须建立Tomcat的admin和manager角色(roles),及其用户名和密码,编辑Tomcat的conf目录下的tomcat-user.xml文档如下:
roles="admin,manager"/>
我的研发环境是Apple Cube,运行Mac OS X 10.2.1操作系统,软件包JDK 1.3.1,Tomcat 4.1.12,Ant1.5.1,MySQL 3.23.52,及Connector/J 3.0.1-beta。操作系统升级到Mac OS X 10.2.2未出现任何问题。同样Tomcat升级到4.1.17也没出现问题。
Web应用程式
本文通过一个叫做AddressBook的简单地址簿程式来说明怎样应用将要介绍的技术。这个应用程式的目的不是建立一个地址簿的正式版本,他仅仅是个例子。
AddressBook中的Java程式
AddressBook中包含三个Java程式。图1显示了他们在Tomcat中的是怎样使用的。
AddressBook.ContextListener
AddressBook.ContextListener是个servlet上下文监听器,他在AddressBook开始和关闭时被调用,能够使用AddressBook的部署描述文档web.xml配置。当AddressBook开始运行时,创建一个AddressesDB的实例并将他作为一个上下文属性保存;而当AddressBook运行结束时,从上下文属性中取出AddressesDB对象并关闭数据库连接。在运行过程中,当JSPs需要连接数据库,他们将访问上下文属性中的AddressesDB对象。
细节请看ContextListener.java的完整的,带有注释的源代码。
AddressBook. AddressesDB
AddressBook. AddressesDB用于操作地址数据库。他的构造函数建立一个数据库连接,这个会话能够被多个Web会话共享。这个类提供多个数据库连接函数:
• getAddress(id)返回用id标识的地址,假如地址没找到则返回null。
• addAddress(address)添加地址并返回改变的行数
• deleteAddress(id)删除地址并返回改变的行数
• getAddresses()返回数据库中任何地址的聚集,假如数据库无效返回null
• close()关闭数据库连接
细节请看AddressesDB.java的完整的,带有注释的源代码。
AddressBook. Address
AddressBook. Address是用于描述地址的类。在用JSPs编程时,用类集中描述数据仍不失为一个好的方法。在AddressBook中使用的就是这种方法。
AddressBook. Address的构造函数将地址内容保存于对象中。这个类中包括取得单个地址域的普通get函数,两个获取合并的地址域的get函数,连同一个地址比较函数:
• Address(id,surname,fisrtname,street,district,city,postcode)
• getId()
• getSurname()
• getFirstname()
• getStreet()
• getDistrict()
• getCity()
• getPostcode()
• getFullname()返回firstname+” ”+surname
• getFulladdress()返回street+” ”+district+” ”+city+” ”+postcode
• compareTo(address)返回负整数、零、正整数,分别对应surname和firstname大于、等于、小于这个surname和firstname,比较是大小写不敏感的。在存储地址聚集时使用。
细节请看Address.java的完整的,带有注释的源代码。
AddressBook中的JSP页面
AddressBook有七个JSP页。每个代表一个对AddressBook数据库进行单独操作的Web页。每个页面数据库的状态和前页数据库的状态是相互单独的。假如数据库被其他用户改变了,Web页面将检测到并产生相应的动作。例如,假如您正在修改一个地址而另一个用户在确认修改之前删除了该地址,JSP将通知您修改不存在的地址失败。
图2显示JSPs之间的逻辑关系。
Home.jsp是AddressBook的主页,也就是用户使用AddressBook时见到的第一个页面。他用一个表显示Address库中的任何地址。表中的每一行显示一个地址,连同删除或修改地址的连接。页面底部有一个添加新地址的连接。配置信息见web.xml notes。
• 添加地址连接将控制权交给RequestAdd.jsp
• 删除地址连接将控制权交给RequestDelete.jsp,同时将要删除的地址id传递给该页
• 修改地址连接将控制权交给RequestModify.jsp,同时将要修改的地址id传递给该页
细节请看Home.jsp的完整的,带有注释的源代码。
RequestAdd.jsp
RequestAdd.jsp提供一个地址表单用于输入新地址。页面底部的取消连接能够取消这次操作。
• 提交表单将新的地址域值连同控制权交给DoAdd.jsp
• 取消操作将控制权交给Home.jsp
细节请看RequestAdd.jsp的完整的,带有注释的源代码。
DoAdd.jsp
DoAdd.jsp显示接收到的地址域值。然后将新地址添加到数据库并显示是否成功的信息。页面底部有一个继续连接。
• 点击继续连接回到Home.jsp
细节请看DoAdd.jsp的完整的,带有注释的源代码。
RequestDelete.jsp
RequestDelete.jsp读取得到的id相应的地址。该页面在表中显示地址域以便让您确认删除的是正确的地址。页面底部的两个连接分别是继续请求的继续连接和取消请求的取消连接。
• 选择继续连接将转到DoDelete.jsp并传递要删除的地址id
• 选择取消连接回到Home.jsp
细节请看RequestDelete.jsp的完整的,带有注释的源代码。
DoDelete.jsp
DoDelete.jsp读取传递给他的id。在表中显示该id对应的地址,从数据库中删除他,并显示是否成功。页面底部是继续连接。
• 选择继续连接回到Home.jsp
细节请看DoDelete.jsp的完整的,带有注释的源代码。
RequestModify.jsp
RequestModify.jsp显示一个表单并填入当前的地址,同时提供提交按钮和取消连接。
• 提交表单将新的地址域值连同控制权交给DoModify.jsp
• 选择取消连接回到Home.jsp
细节请看RequestModify.jsp的完整的,带有注释的源代码。
DoModify.jsp
DoModify.jsp显示接收到的修改的地址域值。然后修改数据库中的地址记录,并返回成功和否。页面底部是继续连接。
• 选择继续连接回到Home.jsp
细节请看DoModify.jsp的完整的,带有注释的源代码。
AddressBook的Addresses数据库表
怎样建立数据库取决于所用的数据库软件。若您用的不是MySQL以下的步骤就需要根据情况修改。AddressBook只有一个表Addresses,保存在数据库Public中。表Addresses有七个域:
• id,主键,自动增长的数据域
• surname,长度为24的字符域,保存联系人的姓
• firstname,长度为24的字符域,保存联系人的名
• street,长度为80的字符域,保存地址的第一行
• district,长度为80的字符域,保存地址的第二行
• city,长度为40的字符域,保存城市名
• postcode,长度为10的字符域,保存邮政编码
首先建立MySQL数据库(Mac OS X 10.2.1)。用管理员权限启动mysql命令行工具,需要的话输入密码。创建Public数据库,连同账号mysqlusername密码mysqlpassord。命令如下:
# mysql -u root -p
mysql> create database Public;
mysql> grant all privileges on Public.* to mysqlusername@localhost identified by ’mysqlpassword’ wi
喜欢本文,那就收藏到:
上一篇:
Tomcat连接池首次配置成功状态
下一篇:
Hibernate源码浅析
相关评论
我也要评论
还没有关于此文章的相关评论!
首页
上一页
下一页
尾页
昵称:
(为空则显示guest)
评论分数:
★
★ ★
★★★
★★★★
★★★★★
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
相关推荐
xml轻松学习手册(3)xml的术语_xml教程
xml轻松学习手册(4)xml语法_xml教程
xml轻松学习手册(5)xml实例解析_xml教程
了解web页面工具语言xml(一)产生背景_xml教程
了解web页面工具语言xml(二)定义_xml教程
了解web页面工具语言xml(三)支持工具_xml教程
了解web页面工具语言xml(四)应用分类_xml教程
了解web页面工具语言xml(五)好处_xml教程
了解web页面工具语言xml(六)展望_xml教程
xml技术上传文档_xml技巧
相关资讯
Perl教学第四篇列表和数组变量
Perl教学第五篇文档读写
Perl教学第六篇模式匹配
PerlScript的介绍
用perl访问mysql数据库
Perl语言的文字处理模式之三
Perl语言的文字处理模式之二
Perl语言的文字处理模式之一
本地调试PERLCGI程式
怎样利用Perl研发Internet/Intranet应用之二
点击发布文章
导航
主页
设为首页
加入收藏
联系我们
赞助商
文章类别
行业资讯
域名资讯
虚拟主机
托管租用
VPS
CDN
网站运营
技术资讯
Mac OS
网络设备
路由技术
网络技术
HTML/DHTML
源码天堂
网络编程
Java
Perl
C/C++
Shell
数据库其他
DB2
Sybase
存储备份
硬件技术
网站建设
通信技术
虚拟化技术
安全其他
安全工具
加密和破解
数据库安全
程序安全
网络安全
系统安全
防火墙
VPN
网管技术其他
Informix
Oracle
PostgreSQL
Dreamweaver教程
windows操作系统
XML编程
NET编程
JSP编程
PHP编程
ASP编程
Mssql
Mysql
Access
Coreldraw
flash
web服务器
ftp服务器
mail服务器
邮件系统
IBM-AIX
HP-UX
Sco
Solaris
FreeBSD
Linux
Proxy
CSS教程
Javascript教程
Ajax
dns服务器
Photoshop教程
站长资讯
冲浪宝典
订阅
Rss Feed
主机赞助商连接:
华夏名网虚拟主机域名注册
关于我们 | 网站声明 | 联系我们 | 广告服务 IDC中文资讯站-客观公证的IDC产业权威媒体
Copyright
@
2007-2008 IDCNEWS.NET, All Rights Reserved
蜀ICP备07504800号