草木瓜 2006-5-26
一、前言
jsp开发,一般来说需要前端开发工具和后台服务。weblogic是集成了工具和服务的大型系统。
需要重视的是,bea公司的weblogic最低要求配置内存512m,即使对服务器参数文件做优化,
仍然不能根本解决问题。
二、安装配置weblogic
windows安装没什么好说的。
安装后,weblogic自动建了三个服务器(workshop,integration,portal),用户可以选择,不爽的
也可以自行创建,创建方面的内容《weblogic domain 配置方法》一文已有非常详尽的讲述。简单的
方法是从模板选所择,这里选择 工具->weblogic server->配置向导 的basic weblogic workshop
domain模板。
三、新建应用程序,添加web项目,
域服务器创建好了,选择 文件->新建->应用程序,选择服务嚣,选择应用程序,完成创建。在所建
应用程序里添加web项目。
四、web应用
添加数据库web应用。在web项目里,添加jsp文件和java class。本例使用index.jsp,error.jsp,
clsdb.java,db.properties四个文件。
目录结构如下:
应用程序名/web项目名/web-inf/...
应用程序名/web项目名/index.jsp
应用程序名/web项目名/error.jsp
应用程序名/web项目名/db.properties
应用程序名/web项目名/javacls/clsdb.java
index.jsp 起始页面,数据浏览
--------------------------------------------------
<body>
<%
javacls.clsdb db=new javacls.clsdb();
boolean i;
i=db.openconnection();
if(i=true)
{
java.sql.resultset rs=db.exequery("select d from test");
rs.next();
while(!rs.isafterlast())
{
out.println(rs.getobject(1));
rs.next();
}
}
%>
</body>
error.jsp 错误显示页面
--------------------------------------------------
<p>
发生错误
<br>
错误描述:
<%=exception.tostring()%>
<br>
错误原因:
<%=exception.getmessage()%>
</p>
clsdb.java 数据库操作类,非常典型的数据库应用方法
--------------------------------------------------
package javabean;
public class clsdb
{
java.sql.connection cn=null;
java.sql.statement sqlstm=null;
java.sql.resultset rs=null;
public clsdb()
{}
//打开数据库连接
public boolean openconnection()
{
//读取设置
java.util.properties prop=new java.util.properties();
try
{
java.io.inputstream in=this.getclass().getresourceasstream("../db.properties");
prop.load(in);
if(in!=null)in.close();
}
catch(java.io.ioexception e)
{
system.out.println("[opencn] 配置文件打开错误! ");
return false;
}
string jdbc=prop.getproperty("drivers");
string url=prop.getproperty("url");
string user=prop.getproperty("user");
string password=prop.getproperty("password");
//加载jdbc
try
{
class.forname(jdbc);
}
catch(java.lang.classnotfoundexception e)
{
system.out.println("[opencn] 装载jdbc驱动出错! ");
return false;
}
//打开数据库连接
try
{
this.cn=java.sql.drivermanager.getconnection(url,user,password);
}
catch(exception e)
{
e.printstacktrace();
return false;
}
return true;
}
//执行查询
public java.sql.resultset exequery(string _sqlstring)
{
try
{
this.sqlstm=this.cn.createstatement();
this.rs=this.sqlstm.executequery(_sqlstring);
return this.rs;
}
catch(exception e)
{
e.printstacktrace();//此外用于打印错误堆栈
return null;
}
}
//执行更新
public void exenonquery(string _sqlstring) throws java.sql.sqlexception
{
this.sqlstm=this.cn.createstatement();
this.sqlstm.executeupdate(_sqlstring);
if(this.sqlstm!=null)this.sqlstm.close();
}
//关闭对象
public void close() throws java.sql.sqlexception
{
if(this.rs!=null)this.rs.close();
if(this.sqlstm!=null)this.sqlstm.close();
if(this.cn!=null)this.cn.close();
}
protected void finalize() throws throwable
{
this.close();
}
}
db.properties 数据库配置文件
--------------------------------------------------
drivers=oracle.jdbc.driver.oracledriver
url=jdbc:oracle:thin:@localhost:1521:wincn
user=liwei
password=liwei
五、重要补充说明:本篇文章别的都是废话,惟独这段不是!
本例使用的jdbc驱动是oracle提供的,java只提供驱动的接口,具体必须由各数据库厂商来实现。如果
环境变量等没有配置正确,找不到包,可以在 应用程序名/web项目名/库 下添加驱动包。
drivers=oracle.jdbc.driver.oracledriver这个包的位置在e:/oracle/ora92/jdbc/lib/classes12.jar
查看包的信息就知道,写成oracle.jdbc.oracledriver也是可以的。
url一项内容是数据库的具体对象,前面jdbc:oracle:thin表明是通过jdbc,而且是oracle提供的驱动包,
thin是oracle的连接方式。下面@后面是主机名或主机地址+端口,最后一项是数据库实例名sid。
注意:
在调试过程中weblogic会提示找不到类oracle.jdbc.dirver.oracledriver的文件,这个提示完全是误报,
是不是bug不得而知!不用理会继续执行!
在连接中文字符集(zhs16gbk)数据库不会出现乱码,如果连接英文字符集(us7ascii)则会出现。解决方法
是作些必要的转换。前提是客户端与服务嚣的字符集要一致。
index.jsp 文件内容更改
while(!rs.isafterlast())
{
string test=rs.getstring(1);
byte[] tempbyte=test.getbytes("iso8859-1");
string temp=new string(tempbyte,"gb2312");
out.println(temp);
rs.next();
}
新闻热点
疑难解答