|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。web|程序 JBuilder是一个开放的JavaIDE,它集成了Tomcat、Weblogic等服务器。固然JDK、Tomcat、Weblogic不休晋级,我们仍能够在JBuilder中利用它们的最新版本。因为Tomcat服务器的设置对照庞大,习气了Windows平台的程序员经常对Tomcat的利用感应狐疑。本文给出了一个利用Tomcat情况下的数据库毗连池DatabaseConnectionPool(DBCP)的例子,申明了用JBuilder开辟Web使用的一样平常步骤,并回覆了一些常常碰到的成绩。
JBuilder2005所带JDK的版本是1.4.2_04-b05,其文件放在目次JBuilder_HOMEjdk1.4下,Tomcat的最新版本是5.0.27,其文件放在目次JBuilder_HOME hirdpartyjakarta-tomcat-5.0.27下。上面起首给出给出了一个利用Tomcat情况下的数据库毗连池DatabaseConnectionPool(DBCP)的例子。
1.File-NewProject新建工程文件,输出工程文件称号myWeb和目次C:myWeb
2.Project-ProjectProperties设置工程文件的属性,选择Tomcat为服务器
3.File-New新建WebModule(WAR)
输出WebModule的称号DBTest和目次DBTest
4.File-New新建JSP,输出jsp文件的称号test.jsp,发生test.jsp文件后修正test.jsp的内容
Test.jsp:
<%@pagecontentType="text/html;charset=Big5"%>
<html>
<head>
<title>DBTest</title>
</head>
<body>
<%
foo.DBTesttst=newfoo.DBTest();
tst.init();
%>
<h2>Results</h2>
Foo<%=tst.getFoo()%><br/>
Bar<%=tst.getBar()%>
</body>
</html>
将会天生一个称号为test的runtimeconfiguration。
选Run-Configurations-Edit可修正runtimeconfiguration,出格是能够指定服务器的端标语和是不是主动搜刮为被占用的端口。
5.File-NewClass,输出类名DBTest和包名foo,发生DBTest.java文件后修正它的内容
DBTest.java
packagefoo;
importjavax.naming.*;
importjavax.sql.*;
importjava.sql.*;
publicclassDBTest{
Stringfoo="NotConnected";
intbar=-1;
publicvoidinit(){
try{
Contextctx=newInitialContext();
if(ctx==null)
thrownewException("Boom-NoContext");
DataSourceds=(DataSource)ctx.lookup("java:comp/env/JDBC/TestDB");
if(ds!=null){
Connectionconn=ds.getConnection();
if(conn!=null){
foo="GotConnection"+conn.toString();
Statementstmt=conn.createStatement();
ResultSetrst=stmt.executeQuery("selectid,foo,barfromtestdata");
if(rst.next()){
foo=rst.getString(2);
bar=rst.getInt(3);
}
conn.close();
}
}
}catch(Exceptione){
e.printStackTrace();
}
}
publicStringgetFoo(){returnfoo;}
publicintgetBar(){returnbar;}
}
6.修正web.XML的内容
web.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/J2EE"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4">
<description>MySQLTestApp</description>
<resource-ref>
<description>DBConnection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
7.F9运转使用,myWeb目次中将会天生Tomcat子目次,个中包括了conf子目次,
在Tomcat_HOMEconfCatalinalocalhost目次中天生了DBTest.XML文件
8.将myWebTomcatconf目次中的文件server8080.xml到场工程文件,修正server8080.xml的内容
server8080.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<Serverdebug="0"port="8081"shutdown="SHUTDOWN">
<Servicename="Catalina">
<ConnectoracceptCount="10"connectionTimeout="60000"debug="0"maxThreads="75"minSpareThreads="5"port="8080"/>
<Enginedebug="0"defaultHost="localhost"name="Catalina">
<HostapPBase="C:myWebTomcatwebapps"autoDeploy="false"debug="0"deployXML="false"name="localhost"unpackWARs="false">
<Contextpath="/DBTest"docBase="C:myWebDBTest"debug="5"reloadable="true"crossContext="true"workDir="C:myWebTomcatworkDBTest">
<LoggerclassName="org.apache.catalina.logger.FileLogger"prefix="localhost_DBTest_log."suffix=".txt"timestamp="true"/>
<Resourcename="JDBC/TestDB"auth="Container"type="Javax.sql.DataSource"/>
<ResourceParamsname="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!--
MaximumnumberofdBconnectionsinpool.Makesureyou
configureyourMySQLdmax_connectionslargeenoughtohandle
allofyourdbconnections.Setto0fornolimit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!--
MaximumnumberofidledBconnectionstoretaininpool.
Setto0fornolimit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!--
MaximumtimetowaitforadBconnectiontobecomeavailable
inms,inthisexample10seconds.AnExceptionisthrownif
thistimeoutisexceeded.Setto-1towaitindefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!--MySQLdBusernameandpasswordfordBconnections-->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>topcomputer</value>
</parameter>
<!--Classnameformm.mysqlJDBCdriver-->
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<!--
TheJDBCconnectionurlforconnectingtoyourMySQLdB.
TheautoReconnect=trueargumenttotheurlmakessurethatthe
mm.mysqlJDBCDriverwillautomaticallyreconnectifmysqldclosedthe
connection.mysqldbydefaultclosesidleconnectionsafter8hours.
-->
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://nt04:1433;DatabaseName=test</value>
</parameter>
</ResourceParams>
</Context>
</Host>
</Engine>
</Service>
</Server>
9.将JDBC驱动放在C:BorlandJBuilder2005 hirdpartyjakarta-tomcat-5.0.27commonlib目次中
10.在SQLServer中创建数据库test,数据库表文件testdata
creatTable.sql:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[testdata])andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable[dbo].[testdata]
GO
CREATETABLE[dbo].[testdata](
[id][int]NOTNULL,
[foo][varchar](50)COLLATEChinese_Taiwan_Stroke_CI_ASNULL,
[bar][int]NOTNULL
)ON[PRIMARY]
GO
输出几笔记录作为测试数据。
11.F9
12.在c:myWebmulu中创建批处置文件startup.bat和shutdown.bat内容分离以下:
startup.bat:
C:BorlandJBuilder2005JDK1.4inJavaw-classpath"C:BorlandJBuilder2005 hirdpartyjakarta-tomcat-5.0.27inootstrap.jar;C:BorlandJBuilder2005jdk1.4lib ools.jar""-Dcatalina.home=C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"org.apache.catalina.startup.Bootstrap-config"C:myWebTomcatconfserver8080.XML"start
Shutdown.bat:
C:BorlandJBuilder2005jdk1.4injavaw-classpath"C:BorlandJBuilder2005 hirdpartyjakarta-tomcat-5.0.27inootstrap.jar;C:BorlandJBuilder2005jdk1.4lib ools.jar""-Dcatalina.home=C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"org.apache.catalina.startup.Bootstrap-config"C:myWebTomcatconfserver8080.xml"stop
13.运转startup.bat,在扫瞄器输出http://localhost:8080/DBTest/test.JSP
怎样部署Web使用?
1.打包天生war文件
2.将DBTest.war拷贝到Tomcat_HOMEwebapps
3.在Tomcat_HOMEconfCatalinalocalhost目次中创建文件DBTest.xml
DBTest.xml
<!--
ContextconfigurationfilefortheTomcatAdministrationWebApp
$Id:admin.xml,v1.22002/07/2312:13:05remmExp$
-->
<Contextpath="/DBTest"docBase="/DBTest"debug="5"reloadable="true"crossContext="true"workDir="../work/DBTest">
<LoggerclassName="org.apache.catalina.logger.FileLogger"prefix="localhost_DBTest_log."suffix=".txt"timestamp="true"/>
<Resourcename="JDBC/TestDB"auth="Container"type="javax.sql.DataSource"/>
<ResourceParamsname="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!--
MaximumnumberofdBconnectionsinpool.Makesureyou
configureyourMySQLdmax_connectionslargeenoughtohandle
allofyourdbconnections.Setto0fornolimit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!--
MaximumnumberofidledBconnectionstoretaininpool.
Setto0fornolimit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!--
MaximumtimetowaitforadBconnectiontobecomeavailable
inms,inthisexample10seconds.AnExceptionisthrownif
thistimeoutisexceeded.Setto-1towaitindefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!--MySQLdBusernameandpasswordfordBconnections-->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>topcomputer</value>
</parameter>
<!--Classnameformm.mysqlJDBCdriver-->
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<!--
TheJDBCconnectionurlforconnectingtoyourMySQLdB.
TheautoReconnect=trueargumenttotheurlmakessurethatthe
mm.mysqlJDBCDriverwillautomaticallyreconnectifmysqldclosedthe
connection.mysqldbydefaultclosesidleconnectionsafter8hours.
-->
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://nt04:1433;DatabaseName=test</value>
</parameter>
</ResourceParams>
</Context>
4.启动Tomcat,DBTest.war将会解压到Tomcat_HOMEwebappsDBTest,而且在Tomcat_HOMEworkCatalinalocalhost目次中天生DBTest目次
为何不克不及天生war文件?
在protertiesforWebModule对话框中设置与Build有关的属性BuildWebarchive。
怎样在Web使用中到场目次和文件?
右击Moduledirectory,在弹出的菜单当选择New-directory,输出目次称号;或右击拟在个中创建文件的目次,在弹出的菜单当选择New-File,选择文件范例,输出文件名。注重如许到场的文件只能是指定的文件范例。如许到场的目次和文件城市打包到war文件中。
怎样到场别的范例的文件?
能够将文件拷贝到指定的目次,在protertiesforWebModule对话框中设置属性Content,选择includeallclassesandresources,如许也能够将到场的文件打包到war文件中。
怎样利用指定的JDK?
选择菜单Tools-Configure-JDKs,在弹出的对话框中按New按钮,然后选择JDK的路径。
选择菜单Project-ProjectProperties,在弹出的对话框当选择到场的JDK。
怎样利用指定的Tomcat?
选择菜单EntERPrise-ConfigureServers,在弹出的对话框当选择Tomcat5.0后按Copy按钮,
选择Copy发生的服务器CopyofTomcat5.0,选择HomeDirectory
选择菜单Project-ProjectProperties,在弹出的对话框中设置属性server,选择到场的Tomcat服务器
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|