论坛首页 入门技术论坛

请教 java 与 access问题

浏览 2650 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-11-19  

我试作了一个电子商务系统,采用jsp + javaBean+access+tomcat 5.0

这么总是重现数据无法读取的错误,问题是我在测试buyerBean.java的时候 数据库 还是可以用的,怎么在checklogon.jsp 时就不行了呢? 不知那位高手能指点一下,万分感激

具体代码

buyerBean.java

package book;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.lang.String;

 

public class BuyerBean
{
 private String memberID=null;
 private String memberName=null;
 private String pwd=null;
 private int logontimes=-1;
 private static String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
 private static String strDBURL="jdbc:odbc:bookstore";
 private Connection con=null;
 private ResultSet rs=null;
 
 public BuyerBean()
 {
  try{
    Class.forName(strDBDriver);
     }
  catch(ClassNotFoundException e)
  {
   System.err.print("BuyerBean():"+e.getMessage());
  }
  
  
 }
 public int getLogontimes()
 {
  String strsql=null;
  try{
   con=DriverManager.getConnection(strDBURL,"","");
   Statement statement=con.createStatement();
   strsql="select logonTimes,membername from buyerInfo where memberID='"+memberID+"'and pwd='"+pwd+"'";
   rs = statement.executeQuery(strsql);
   
   while(rs.next())
   {
    logontimes = rs.getInt("logonTimes");
    memberName= rs.getString("membername");
   }
   rs.close();
   if(logontimes!=-1)
   {
    strsql="update buyerInfo set logonTimes=logonTimes+1 where memberID='"+memberID+"'";
   }
   con.close();
   statement.close();
  }
  catch(SQLException e)
  {
   System.err.println("BuyerBean.getLogontimes():"+e.getMessage());
  }
  return logontimes;
 }
 public void setMemberID(String memberID)
 {
  this.memberID=memberID;
 }
 public void setPwd(String password)
 {
  this.pwd=password;
 }
 public String getMemberName()
 {
  return memberName;
 }
 //public static void main(String args[])
 //{
     //BuyerBean buyer= new BuyerBean();
  // buyer.setMemberID("200420630101");
   // buyer.setPwd("kelianlang");
 //System.out.print(buyer.getLogontimes());
 //System.out.println(buyer.getMemberName());
 
 //}


}

default.jsp 首页

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>KELIANALNG网上书店</title>
</head>
<center>
<p><font size="+3">KELIANLANG 网上书店</font></p><br>
<hr width="778" color="blue" height="2">
<font size="+2">会员登陆</font>
<form action="checklogon.jsp" method="post">
  <p><font size="+1">请输入会员号和密码</font></p>
 
  <p><br>
  会员号:
  <input type="text" name="memberID">
  </p>
  <p>密  码:
    <input type="password" name="pwd">
    <br>
    <input type="submit" name="submit" value="提交"> 
    <input type="reset" name="reset" value="重置">
  </p>
</form>
</center>
<body>
</body>
</html>

checklogon.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.lang.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<jsp:useBean class="book.BuyerBean" id="buyer" scope="page"></jsp:useBean>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>KELIANALNG网上书店</title>
</head>
<h1 align="center">KELIANLANG网上书店</h1>
<%
   String memberID = request.getParameter("memberID");
   String pwd = request.getParameter("pwd");
   buyer.setMemberID(memberID);
   buyer.setPwd(pwd);
%>

<%
  int logontimes = buyer.getLogontimes();
   if(logontimes >=0)
     {
    session.setAttribute("memberID",memberID);
 
%>
<h2 align="center"><%=buyer.getMemberName()%>欢迎你第<%=logontimes+1%>次来到KELIANLANG网上书店</h2>
<h2 align="center"><a href="booklist.jsp">进入书店</a></h2>
<%
}
else{
%>
<h2 align="center">对不起,<%=memberID%>你的用户名和密码不一致</h2>
<h2 align="center"><a href="default.jsp">重新登陆</a></h2>
<%
}
%>
<body>
</body>
</html>

报出的错误是:

HTTP Status 500 -


 

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:272)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)

 

root cause

java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
	java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
	java.security.AccessController.checkPermission(AccessController.java:427)
	java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
	java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1512)
	sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
	java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1255)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:164)
	book.BuyerBean.<init>(BuyerBean.java:26)
	org.apache.jsp.checklogon_jsp._jspService(checklogon_jsp.java:52)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:272)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)

 

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.



   发表时间:2006-11-19  
1.资源释放顺序不对
  rs.close();
   if(logontimes!=-1)
   {
    strsql="update buyerInfo set logonTimes=logonTimes+1 where memberID='"+memberID+"'";
   }
   con.close();
   statement.close();

2.贴代码请用code标签,建议必要时代码打包,以方便他人重现错误
3.这种问题请转新手区,在这里多半会被投隐藏贴
0 请登录后投票
   发表时间:2006-11-19  
知道了,谢谢了.
0 请登录后投票
   发表时间:2006-11-19  
可能是有点忘本了;现在看到这种连接数据库方式觉得有点不舒服!呵呵!能解决问题就好!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics