Topic: 请教一个关于JNDI的问题??

  Print this page

1.请教一个关于JNDI的问题?? Copy to clipboard
Posted by: sun7bear
Posted on: 2006-05-07 12:06

ContactBean.java:
package com.jspdev.page;

import java.util.*;
import com.jspdev.util.*;
import java.sql.*;

public class ContactBean {
private Connection conn;
Vector v;
public ContactBean() throws Exception {
11conn = DatabaseConn.getConnection();
v = new Vector();
}
public int getAvailableCount() throws Exception {
int ret = 0;
Statement stmt = conn.createStatement();
String strSql = "select count(*) as num from contact";
ResultSet rset = stmt.executeQuery(strSql);
while (rset.next()) {
ret = rset.getInt("num");
}
return ret;
}

public PageBean listData(String page) throws Exception {
try {
PageBean pageBean = new PageBean(this);
int pageNum = Integer.parseInt(page);
Statement stmt = conn.createStatement();

String strSql = "select top" + pageNum * pageBean.rowsPerPage
+ "* from contact order by userName";
ResultSet rset = stmt.executeQuery(strSql);
int i = 0;
while (rset.next()) {
if (i > (pageNum - 1) * pageBean.rowsPerPage - 1) {
Object[] obj = new Object[6];
obj[0] = rset.getString("userName");
obj[1] = new Integer(rset.getInt("mobile"));
obj[2] = rset.getString("phone");
obj[3] = rset.getString("mail");
obj[4] = rset.getDate("lastcontact");
obj[5] = rset.getString("mem");
v.add(obj);
}
i++;
}
rset.close();
stmt.close();
pageBean.curPage = pageNum;
pageBean.data = v;
return pageBean;
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {

}
}

public Vector getResult() throws Exception {
return v;
}
public static void main(String[] args) {
int j = 0;
try {
67ContactBean d = new ContactBean();
j = d.getAvailableCount();
System.out.println(j);
} catch (Exception e) {
e.printStackTrace();
}
}
}
DatabaseConn.java:
package com.jspdev.util;

import java.sql.*;
import javax.naming.Context;
import javax.sql.DataSource;
import javax.naming.InitialContext;

public class DatabaseConn {

/**
* @param args
*/
public static synchronized Connection getConnection() throws Exception {

try {
Context initCtx = new InitialContext();
17Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/DBPool");
return ds.getConnection();
} catch (SQLException e) {
throw e;
} catch (Exception e) {
throw e;
}
}
}
运行ContactBean.java怎么报如下错误呢?
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.jspdev.util.DatabaseConn.getConnection(DatabaseConn.java:17)
at com.jspdev.page.ContactBean.<init>(ContactBean.java:11)
at com.jspdev.page.ContactBean.main(ContactBean.java:67)

2.Re:请教一个关于JNDI的问题?? [Re: sun7bear] Copy to clipboard
Posted by: sunjavaduke
Posted on: 2006-05-07 14:56

这个文件不是直接用来运行的
是要放在bean里的

3.Re:请教一个关于JNDI的问题?? [Re: sun7bear] Copy to clipboard
Posted by: sun7bear
Posted on: 2006-05-07 15:57

PageBean.java:
package com.jspdev.page;
import java.util.Vector;
public class PageBean {

  /**
   * @param args
   */
  public int curPage; // 当前是第几页

  public int maxpage; // 一共有多少页

  public int maxRowCount; // 一共有多少行

  public int rowsPerPage = 5; // 每页多少行

  public Vector data; // 本页要显示的资料

  public void countMaxPage() {// 根据总行数计算总页数

    if (this.maxRowCount % this.rowsPerPage == 0) {
      this.maxpage = this.maxRowCount / this.rowsPerPage;
    } else {
      this.maxpage = this.maxRowCount / this.rowsPerPage + 1;
    }
  }

  public Vector getResult() {
    return this.data;
  }

  public PageBean(ContactBean contact) throws Exception {
    this.maxRowCount = contact.getAvailableCount();// 得到总行数
    this.data = contact.getResult();
    this.countMaxPage();
  }

}
contact.jsp:
<jsp:useBean id="pageCtl" class="com.jspdev.page.PageBean" scope="request"/>
<table border=1>
<% java.util.Vector v = pageCtl.getResult();
java.util.Enumeration e = v.elements();
while(e.hasMoreElements())
{
Object[] obj=(Object[])e.nextElement();
%>
<tr>
<td align="center" width="95"><%= obj[0] %></td>
<td align="center" width="93"><%= obj[1]%></td>
<td align="center" width="71"><%= obj[2] %></td>
<td align="center" width="142"><%= obj[3] %></td>
<td align="center" width="142"><%= obj[4] %></td>
<td align="center" width="142"><%= obj[5] %></td>
</tr>
<%}%>
</table>
<%if(pageCtl.maxpage !=1){%>
<form name="PageForm" action="/page/servlet/contactservlet" method="post">
<%@ include file="/pageman.jsp"%>
</form>
<%}%>
可是我放在PageBean中,然后运行contact.jsp,怎么报如下错误呢?
org.apache.jasper.JasperException: /contact.jsp(1,1) The value for the useBean class attribute com.jspdev.page.PageBean is invalid.
  org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

4.Re:请教一个关于JNDI的问题?? [Re: sun7bear] Copy to clipboard
Posted by: sun7bear
Posted on: 2006-05-09 18:07

怎么无人问津列


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923