错误提示:
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: Exception in JSP: /membermanger/delmember.jsp:74:     String[] memdel=request.getParameterValues("memdel");
5:     String sql="delete from T_VIPINFO where CARDID='";
6:     String sql1="update T_VIPINFO set COMMENDCARDID=' ' where COMMENDCARDID='";
7:     for(int i=0;i<memdel.length;i++){
8:        sql+=memdel[i]+"'";
9:        sql1+=memdel[i]+"'";
10:        if(i>0){
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filter.CharsetFilter.doFilter(CharsetFilter.java:44)
root cause java.lang.NullPointerException
org.apache.jsp.membermanger.delmember_jsp._jspService(delmember_jsp.java:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filter.CharsetFilter.doFilter(CharsetFilter.java:44)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.23源代码:
<%@ page import="java.sql.*,ckstudio.db.*" pageEncoding="UTF-8"%>
<%
    faq mdb = (faq)request.getAttribute("mdb");
    String[] memdel=request.getParameterValues("memdel");
    String sql="delete from T_VIPINFO where CARDID='";
    String sql1="update T_VIPINFO set COMMENDCARDID=' ' where COMMENDCARDID='";
    for(int i=0;i<memdel.length;i++){
       sql+=memdel[i]+"'";
       sql1+=memdel[i]+"'";
       if(i>0){
         sql+=" or CARDID='"+memdel[i]+"'";
         sql1+=" or COMMENDCARDID='"+memdel[i]+"'";
       }
    }
    int dd=mdb.executeUpdate(sql);
    mdb.executeUpdate(sql1);
    if(dd>0) {
%>
<script>location.href
  alert("数据已删除");
  window.location.href("memberupdate.jsp");
</script>
<%}%>请问代码错在那里?在线等待回复!谢谢!

解决方案 »

  1.   

    你先不要执行sql语句,先把最终拼接的sql字符串输出来看下,看看有没有问题再作调试
      

  2.   

    4 String[] memdel=request.getParameterValues("memdel");
    5: String sql="delete from T_VIPINFO where CARDID='";
    6: String sql1="update T_VIPINFO set COMMENDCARDID=' ' where COMMENDCARDID='";
    7: for(int i=0;i<memdel.length;i++){其中第4行的memdel 是null,导致第7行时出空指针错误
      

  3.   

    对memdel只有null的时候才会包空指针。
    也就是说String[] memdel=request.getParameterValues("memdel");没有取到值!
      

  4.   

    按照1楼提议修改代码为:
    <%@ page import="java.sql.*,ckstudio.db.*" pageEncoding="UTF-8"%>
    <%
        faq mdb = (faq)request.getAttribute("mdb");
        String[] memdel=request.getParameterValues("memdel");
        String sql="delete from T_VIPINFO where CARDID='";
        String sql1="update T_VIPINFO set COMMENDCARDID=' ' where COMMENDCARDID='";
        for(int i=0;i<memdel.length;i++){
           sql+=memdel[i]+"'";
           sql1+=memdel[i]+"'";
           if(i>0){
             sql+=" or CARDID='"+memdel[i]+"'";
             sql1+=" or COMMENDCARDID='"+memdel[i]+"'";
           }
        }
    out.println(sql) ;
    out.println(sql1) ;
    %>得出结果为:
    delete from T_VIPINFO where CARDID='153105' 
    update T_VIPINFO set COMMENDCARDID=' ' where COMMENDCARDID='153105' 修改代码后没有出错,所以memdel应该已经取到值!
    错误原因仍然不明!
      

  5.   

    空指针异常,怀疑是你的参数memdel写错了
      

  6.   

    String[] memdel=request.getParameterValues("memdel");取到的是空值,检查memdel参数跟页面的name是否一致,或者是页面上有没有赋值
      

  7.   

    测试SQL语句显示的“153105”就是传递过来的编号!数据已经接收到了呀!
      

  8.   

    我去掉UPDATE的语句后出现这个错误了:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /membermanger/delmember.jsp:129:          sql+=" or CARDID='"+memdel[i]+"'";
    10:        }
    11:     }
    12:     int dd=mdb.executeUpdate(sql);
    13:     if(dd>0) {
    14: %>
    15: <script>location.href
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    filter.CharsetFilter.doFilter(CharsetFilter.java:44)
    root cause java.lang.NullPointerException
    org.apache.jsp.membermanger.delmember_jsp._jspService(delmember_jsp.java:56)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    filter.CharsetFilter.doFilter(CharsetFilter.java:44)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.5.23