代码如下 5<%@ page contentType="text/html;charset=gb2312" language="java"%>
<%@include file="../inc/dbstart.jsp"%>
<link rel="stylesheet" href="../css/css.css" type="text/css">
<%
if(request.getParameter("add")!=null)
{
String jingdian=request.getParameter("chengshiJd");
String chengshi=request.getParameter("chengshiName");
sql3="select * from chengshi where chengshi_name="+chengshi;
rs3=stmt3.executeQuery(sql3);
rs3.next();
if(rs3.getString("chengshi_name").equals(chengshi))
{
int s=Integer.parseInt("chengshi_id");
}
else 
sql1="insert into chengshi (chengshi_name) values('"+chengshi+"')";
stmt1.executeUpdate(sql1);
sql4="insert into chengshi_jd(jd_name)values ('"+jingdian+"')";
stmt4.executeUpdate(sql4);
%>
<%
sql2="insert into chengshi_jd(jd_name,cs_id)values('"+jingdian+"','"+s+"')";
stmt2.executeUpdate(sql2);
%>
<jsp:forward page="../index/you.jsp"/>
<%
}%>
<TABLE align="center">
<TR>
<TD>添加:</TD>
</TR>
<form METHOD=POST ACTION="add.jsp" name="tx"><TR>
<TD>旅游景点:<INPUT TYPE="text" NAME="chengshiJd"></TD>
</TR><TR>
<TD>旅游城市:<INPUT TYPE="text" NAME="chengshiName"></TD>
</TR>
<TR>
<TD><INPUT TYPE="submit" value="确定" name="add">&nbsp;<INPUT TYPE="reset"></TD>
</TR>
</form>
</TABLE>
<%@include file="../inc/dbclose.jsp"%>

解决方案 »

  1.   

    报错信息: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: Unable to compile class for JSP: An error occurred at line: 25 in the jsp file: /lvyouchengshi/add.jsp
    s cannot be resolved
    22: 
    23: 
    24: <%
    25: sql2="insert into chengshi_jd(jd_name,cs_id)values('"+jingdian+"','"+s+"')";
    26: stmt2.executeUpdate(sql2);
    27: %>
    28:  <jsp:forward page="../index/you.jsp"/>
    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:423)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
      

  2.   

    关于数据库的 变量的定义 如sql1 rs1 之类  已经在dbstart.jsp中 定义过   在这里用include file引用
      

  3.   

    if(rs3.getString("chengshi_name").equals(chengshi))
        {
            int s=Integer.parseInt("chengshi_id");
        }这个局部变量s只在这个括号的范围内有效!!!!!!!!!
      

  4.   

    <%
        int s;
        if(request.getParameter("add")!=null)
        {
            String jingdian=request.getParameter("chengshiJd");
            String chengshi=request.getParameter("chengshiName");
            sql3="select * from chengshi where chengshi_name="+chengshi;
        rs3=stmt3.executeQuery(sql3);
        rs3.next();
        if(rs3.getString("chengshi_name").equals(chengshi))
        {
            s=Integer.parseInt("chengshi_id");
        }
        else 
            sql1="insert into chengshi (chengshi_name) values('"+chengshi+"')";
                stmt1.executeUpdate(sql1);
            sql4="insert into chengshi_jd(jd_name)values ('"+jingdian+"')";
                stmt4.executeUpdate(sql4);
    %>
      

  5.   

    if(rs3.getString("chengshi_name").equals(chengshi))
        {
            int s=Integer.parseInt("chengshi_id");
        }
    你的S是局部变量,出了这个大括号就找不到它了,改成下面这样
    int s;
    if(rs3.getString("chengshi_name").equals(chengshi))
        {
            s=Integer.parseInt("chengshi_id");
        }
      

  6.   

    An error occurred at line: 29 in the jsp file: /lvyouchengshi/add.jsp
    The local variable s may not have been initialized
    26: 
    27: 
    28: <%
    29: sql2="insert into chengshi_jd(jd_name,cs_id)values('"+jingdian+"','"+s+"')";
    30: stmt2.executeUpdate(sql2);
    31: %>
    32:  <jsp:forward page="../index/you.jsp"/>改过之后 变成这个错误了
      

  7.   

    dbstart.jsp里面定义变量的时候有的没有初始化
      

  8.   

    sql1="";
    sql2="";
    ......
    ResultSet rs = null;
    Statement stmt=null;
    定义的时候赋值一下
      

  9.   

    我真的赋值了 在dbstart.jsp里赋值的 在这个页面 引用的   不过 我刚才在小猪大人的指点下 把 int s; 放到前面并赋值为0   错误就又变了 这次更奇怪了 org.apache.jasper.JasperException: An exception occurred processing JSP page /lvyouchengshi/add.jsp at line 1310:  String jingdian=request.getParameter("chengshiJd");
    11:  String chengshi=request.getParameter("chengshiName");
    12:  sql3="select * from chengshi where chengshi_name="+chengshi;
    13:  rs3=stmt3.executeQuery(sql3);
    14:  while (rs3.next()){
    15: 
    16:  if(rs3.getString("chengshi_name").equals(chengshi))
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    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)
    root cause javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '¹' 附近有语法错误。
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    org.apache.jsp.lvyouchengshi.add_jsp._jspService(add_jsp.java:190)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    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)
    root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '¹' 附近有语法错误。
    com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Unknown Source)
    com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
    org.apache.jsp.lvyouchengshi.add_jsp._jspService(add_jsp.java:118)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
      

  10.   

    "select * from chengshi where chengshi_name='"+chengshi+"'";
      

  11.   

    bug也太多了吧,都是简单的错误,要学会自己调试啊
      

  12.   

    你的sql语句=后面的字符串没有单引号啊!!!
      

  13.   

     
    "select * from chengshi where chengshi_name='"+chengshi+"'";这样改 以后虽然不报错了 但是 整体
    功能 不能实现  不知道为什么  额外在问吧   谢谢  小猪大人   总算不报错了 那就结贴去了
      

  14.   

    简单点说,s超出了使用边界if(rs3.getString("chengshi_name").equals(chengshi))
     {
            int s=Integer.parseInt("chengshi_id");
     }
    错了 ,s应该放在if外声明。
    O(∩_∩)O~   LZ给分