第二个jsp页面bookmodify.jsp如下:<%@page import="java.sql.*"%>
<%@page contentType="text/html;charset=gb2312"%><%
String sql ;
String rs ;
String isbn1;
isbn1=request.getParameter("isbn");
sql="select * from book where isbn like'"+isbn1+"'";
 try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   String url="jdbc:odbc:bookserver";
   String user="sa";
   String password="zst";
   Connection con=DriverManager.getConnection(url,user,password);
   Statement stmt=con.createStatement();
   ResultSet  result=stmt.executeQuery(sql);
   while (result.next())
      {
      String isbn=result.getString("isbn");
      String title=result.getString("title");
      String totalnumber=result.getString("totalnumber");
      String buynumber=result.getString("buynumber");
      %>
<form method="POST" action="bookmodifysubmit.jsp?isbn=<%=isbn%>" name="bookmodify">
  <table border="1" width="100%">
    <tr>
      <td width="17%">isbn</td>
      <td width="83%"><input type="text" name="isbn" size="20"  value="<%=isbn%>" value="<%=isbn%>"></td>
    </tr>
    <tr>
      <td width="17%">图书书名</td>
      <td width="83%"><input type="text" name="title" size="20" value="<%=title%>"></td>
    </tr>
    <tr>
      <td width="17%">单价</td>
      <td width="83%"><input type="text" name="price" size="20" value=<%=price%>></td>
    </tr>
    <tr>
      <td width="17%">出版社</td>
      <td width="83%"><input type="text" name="publisher" size="20" value="<%=publisher%>"></td>
    </tr>
    <tr>
      <td width="17%">出版年份</td>
      <td width="83%"><input type="text" name="publishyear" size="20" value="<%=publishyear%>"></td>
    </tr>
    <tr>
      <td width="17%">评论</td>
      <td width="83%"><input type="text" name="comment" size="20" value=<%=comment%>></td>
    </tr>
    <tr>
      <td width="17%">图书数量</td>
      <td width="83%"><input type="text" name="totalnumber" size="20" value=<%=totalnumber%>></td>
    </tr>
    <tr>
      <td width="17%">图片</td>
      <td width="83%"><input type="text" name="picture" size="20" value=<%=picture%>></td>
    </tr>
  </table>
  <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
    <p> </p>  
    <p> </p>  
      <%
      
      out.println("</br>");
      }
   stmt.close();              
   con.close();              
  }              
 catch(Exception e)              
  {              
  System.err.println(" 数据查询没有成功!"+e.getMessage());              
  }              
%>      异常报告如下:
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error--------------------------------------------------------------------------------type Exception reportmessage Internal Server Errordescription The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
An error occurred at line: 38 in the jsp file: /bookmodify.jspGenerated servlet error:
D:\tomcat\work\localhost\_\bookmodify$jsp.java:119: Undefined variable: price
                out.print(price);
                          ^
An error occurred at line: 42 in the jsp file: /bookmodify.jspGenerated servlet error:
D:\tomcat\work\localhost\_\bookmodify$jsp.java:126: Undefined variable: publisher
                out.print(publisher);
                          ^
An error occurred at line: 46 in the jsp file: /bookmodify.jspGenerated servlet error:
D:\tomcat\work\localhost\_\bookmodify$jsp.java:133: Undefined variable: publishyear
                out.print(publishyear);
                          ^
An error occurred at line: 50 in the jsp file: /bookmodify.jspGenerated servlet error:
D:\tomcat\work\localhost\_\bookmodify$jsp.java:140: Undefined variable: comment
                out.print(comment);
                          ^
An error occurred at line: 58 in the jsp file: /bookmodify.jspGenerated servlet error:
D:\tomcat\work\localhost\_\bookmodify$jsp.java:154: Undefined variable: picture
                out.print(picture);
                          ^
5 errors, 1 warning at org.apache.jasper.compiler.Compiler.compile(Compiler.java:285)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:536)--------------------------------------------------------------------------------

解决方案 »

  1.   

    publishyear=(int)request.getParameter("publishyear");
    注意,request.getParameter("publishyear");返回的是一个String ,这是一个对象,不能cast 为int
    还有一个错误是因为你没有声明变量
      

  2.   

    int 换成 Integer.parseInt比如:totalnumber=Integer.parseInt(request.getParameter("totalnumber"));publishyear=Integer.parseInt(request.getParameter("publishyear"));float 换成Float.parseFloat();price=Float.parseFloat(request.getParameter("price"));
      

  3.   

    1.publishyear=(int)request.getParameter("publishyear");
    改为publishyear=Integer.parseInt(request.getParameter("publishyear"));
    2.<td width="83%"><input type="text" name="price" size="20" value=<%=price%>></td>
    中的price没有定义
      

  4.   


    不要乱叫前辈,我也才开始学jsp1个多月而已。只是在这里顺便回答一些我勉强能够解决的问题。
      

  5.   

    wellsoon:
          Sorry!
          称你兄弟,好吧!
          其实我第二个页面里的变量没有定义,关键是我不知道怎样定义,让你笑话了!
          谢谢告诉我怎样定义好吗?!
      

  6.   


    合乎,我不介意达到,主要看见这些只叫高手前辈近来的帖子,每次我都要犹豫很久才敢进来。
    根据我的猜测,你要用的变量的值是从这里取出来的吧???改成下面这样子就可以了啊:
    while (result.next())
          {
          String isbn=result.getString("isbn");
          String title=result.getString("title");
          String totalnumber=result.getString("totalnumber");
          String buynumber=result.getString("buynumber");
          String comment=result.getString("comment");
          String publishyear=result.getString("publishyear");
          String price=result.getString("price");
          String picture=result.getString("picture");
          %>下面的html里就可以用到它们了。我想你的意思可能是要从数据库记录里读出值来,
    不知道对不对。
      

  7.   

    看了你的第二个jsp,是想提交用户评论吗???value后面什么都不要写,就是空的,
    name就是变量的名字了,提交的时候会作为字符串
    (类似“comment=这本书还不错&price=............”)提交上去。