这个是留言板的liuyan.jsp的部分
            <form name="form1" method="post" action="Insert_3_Database.jsp"><table width="573" border="0" align="center" cellpadding="1" cellspacing="1" bordercolor="#000000" bgcolor="#FFFFFF" class="style11">
              <tr>
                <td width="140" align="right">姓名:</td>
                <td width="250" valign="top"><p align="left">
                    <input type="text" name="username" maxlength="20" size="16" />
                </p></td>
              </tr>
              <tr>
                <td width="140" align="right">留言:</td>
                <td width="250" valign="top"><p align="left">
                    <input type="text" name="liuyan" maxlength="80" size="70" />
                </p></td>
              </tr>
              <tr>
                <td width="140" align="right"></td>
                <td width="250" valign="top"><br />
                    <input type="submit" name="Submit5" value="提交" class="style11" />
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <input type="reset" name="Submit22" value="重置" class="style11" />              </td>
              </tr>
            </table>  </form>这个是接收数据的页面Insert_3_Database.jsp
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<html>
<head>
<title>向数据库增加信息</title>
</head>
<body>
<%!
public String ChangeEncoding(String str){//处理中文字符串函数
   String s=str;
   try
   {
     byte temp[]=s.getBytes("ISO-8859-1");
     s=new String(temp);
     return s;
   }
   catch(Exception e)
   {
     System.out.print("数据类型转换出错。"+e.toString());
     return s;
   }
}
%>
<%
   //接收客户端提交的数据
   String username=ChangeEncoding(request.getParameter("uesrname").trim());
   String liuyan=request.getParameter("liuyan").trim();
   //构造SQL语句
   String sql="insert into liuyan(username,liuyan)"+
              "values('"+username+"','"+liuyan+"')";
   try
     {
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//载入驱动程序
     String url="jdbc:odbc:bu";//StudentData为ODBC数据源
     String username="sa";//用户名
     String password="";//用户密码
     Connection con=DriverManager.getConnection(url,username,password);//连接数据库
     Statement stmt=con.createStatement();
     stmt.executeUpdate(sql); //执行SQL语句
     out.print("<center>");
     out.println("<P><font size=2'>"+"向数据库增加留言信息"+"</font>");
     out.println("<P><font size=2'>"+"该留言信息数据已经成功添加到数据库。"+"</font>");
     out.print("</center>");
     stmt.close();
     con.close();
   }
   catch(Exception e)
   {
     e.printStackTrace();
   }
%>
</body>
</html>
然后就输出这些个错误
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 34 in the jsp file: /Insert_3_Database.jsp
Duplicate local variable username
31:      {
32:      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//载入驱动程序
33:      String url="jdbc:odbc:bu";//StudentData为ODBC数据源
34:      String username="sa";//用户名
35:      String password="";//用户密码
36:      Connection con=DriverManager.getConnection(url,username,password);//连接数据库
37:      Statement stmt=con.createStatement();
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)请帮忙解决一下吧!!

解决方案 »

  1.   

    异常信息"Duplicate local variable username "说得很清楚,变量username 重复定义了下面的两处重复定义了
    String username=ChangeEncoding(request.getParameter("uesrname").trim());  String username="sa";//用户名 重新改一下变量名即可。
      

  2.   

       String username1=ChangeEncoding(request.getParameter("uesrname").trim());
       String liuyan=request.getParameter("liuyan").trim();
       //构造SQL语句
       String sql="insert into liuyan(username,liuyan)"+
                  " values('"+username1+"','"+liuyan+"')";
    改了一下名字,可是还是不出啊!
    org.apache.jasper.JasperException: An exception occurred processing JSP page /Insert_3_Database.jsp at line 2522: %>
    23: <%
    24:    //接收客户端提交的数据
    25:    String username1=ChangeEncoding(request.getParameter("uesrname").trim());
    26:    String liuyan=request.getParameter("liuyan").trim();
    27:    //构造SQL语句
    28:    String sql="insert into liuyan(username,liuyan)"+
    还是有问题啊!
      

  3.   

    我搞定了,是getPeParameter的问题,取得的值应该再给定义一下,username=new String(username.getBytes("8859_1"));加这个就搞定啦,还是谢谢你拉!