WebLogic下JSP连接数据库_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3814 | 回复: 0   主题: WebLogic下JSP连接数据库        下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2011-8-9 14:38:39 | [全部帖] [楼主帖] 楼主

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();
}




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论