<%@page contentType="text/html;charset=GB2312"%>
<%@page import="java.sql.*"%>
<%!String strSQL="";%>
<html>
<head>
</head>
<body>
<jsp:include page="header.html">
<jsp:useBean id="ManageCar" scope="session" 
                                  class="UseBean.Database"/>
<%
String BookNo=request.getParameter("DelCarNo");
String name=(String)session.getValue("USERNAME");//获取会话中已登录用户名
String url="";
url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("BuyData.mdb");
strSQL="select BookInfor.* from BookInfor,BuyRecord where BookInfor.BookNo=BuyRecord.BookNo and UserName='"+name+"'";if(ManageCar.ExecuteSQL(strSQL,url)){
%>
<form action="BuyBook.jsp" method=post>
<table border="1" bordercolor=RoyalBlue align="center" width="60%">
   <tr><td><img src="Image/bookno1.jpg"></td>
   <td width="10"><img src="Image/bookname1.jpg"></td>
   <td><img src="Image/bookauthor1.jpg"></td>
   <td><img src="Image/bookpublish1.jpg"></td>
   <td><img src="Image/publishdate1.jpg"></td>
   <td><img src="Image/bookprice1.jpg"></td>
   <td><img src="Image/deleteBook.jpg"></td></tr>
<%
   while((ManageCar.rs).next()){
      String temptBookNo=(ResultSetShow.rs).getString("BookNo")
      %>
      <tr><td><%=temptBookNo%></td>
      <td><%=(ResultSetShow.rs).getString("BookName")%></td>
      <td><%=(ResultSetShow.rs).getString("BookAuthor")%></td>
      <td><%=(ResultSetShow.rs).getString("PublishCompany")%></td>
      <td><%=(ResultSetShow.rs).getString("PublishDate")%></td>
      <td><%=(ResultSetShow.rs).getString("Price")%></td>
      <td align="center" valign="middle">
      <form action=WatchCar.jsp method=post>
      <input type=hidden name=DelCarNo>
      <a href=WatchCar.jsp?DelCarNo=<%=temptBookNo%>>删除</a></form></td>
      </tr>
      <%
      }
      %>
      </table>
      <p></p>
      <center><input type="submit" value="立即购买"></center>
      </form>
  <jsp:include page="tail.html"/>
  </body>
  </html>//Database.java
      
package UseBean;import java.sql.*;
import java.io.*;
import java.util.*;public class Database{ public Connection con=null;
 public Statement stm=null;
 public ResultSet rs=null;
 public String strSQL=""; public Database(){
 }
 public boolean LinkDatabase(String url){
   try{
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       }catch(ClassNotFoundException e){
       System.out.println(e.toString());
       return false;
       }
   try{
       con=DriverManager.getConnection(url,"","");
       stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
       }catch(SQLException e){
   System.out.println(e.toString());
       return false;
       }
       return true;
  }  public boolean ExecuteSQL(String strSQL,String url){
       if(LinkDatabase(url)){
         try{
             rs=stm.executeQuery(strSQL);
             }catch(SQLException e){
             System.out.println(e.toString());
             return false;
          }
          return true;
        }
        return false;
      }
  public boolean UpdateSQL(String strSQL,String url){
   if(LinkDatabase(url)){
   try{
   stm.executeUpdate(strSQL);
          }catch(SQLException e){
  System.out.println(e.toString());
  return false;
  }
  return true;
  }
  return false;
  }
  public void CloseDatabase(){
  try{
  rs.close();
  stm.close();
  con.close();
      }catch(SQLException e){
  System.out.println(e.toString());
  }
  }
}
出现了这样的错误:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /BuyData/WatchCar.jsp(11,0) Expecting "jsp:param" standard action with "name" and "value" attributes
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:90)
org.apache.jasper.compiler.Parser.parseParam(Parser.java:852)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1800)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1060)
org.apache.jasper.compiler.Parser.parseInclude(Parser.java:888)
org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1211)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1559)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.请高手指点,很急的,因为课程设计的时间要到了
谢谢

解决方案 »

  1.   

    感觉是name的值没有获取到...你out.println一下name的值看下...我以前好像是用session.getAttribute("");
      

  2.   

    先看看你前面的session 是怎样保存的 session .setAttribute("",xx);还是session.putValue();再后面改成对应的取值方法, 还有将USERNAME改称小写的试试.拙见不只对否 试一下!
      

  3.   

    把strSQL="select BookInfor.* from BookInfor,BuyRecord where BookInfor.BookNo=BuyRecord.BookNo and UserName='"+name+"'";
    先把之后的全删了..
    加个out.println(name);
    看下输出什么东西?还是出错的话,把
    //String name=(String)session.getValue("USERNAME");//获取会话中已登录用户名
    屏蔽掉,加上String name="数据库的存在的用户";
      

  4.   

    从错误信息看是jsp:param的tag出了问题(这个tag需要name和value两个属性),而你给的jsp代码中没有jsp:param这个tag。
    比较奇怪。