不会单步调试一下啊,都不知道你是哪里出exception,你让人家怎么帮你看嘛,把你的Exception贴上来,代码太长了.

解决方案 »

  1.   

    哦,异常是在doError(req,res,"指定教师"+tid+"失败,更新数据库有误!!!Rows affected: " + refer);上面一行:String tid=cour.getTea_id();抛出的。
    如果没有这一行,把tid变成tea_name,则会更新数据库失败。sql语句在查询分析器里就可以执行,不过要把tea_id直接用数据库中的数据代替。那么这里应该是得到的tea_id不正确,是不是course类的set,get方法用的不对啊,我是新手,希望前辈们耐心点帮我看看,指点一下:(
      

  2.   

    你的cour变量从声明到使用有赋值吗?我怎么看到Course cour = null;然后就是String tid=cour.getTea_id();
      

  3.   

    course cour = null;<---你干吗?
    course cour = new course()<---这样才对吧? 你的doRefertea里不是已经写对的吗?看下面两句
    String tid=cour.getTea_id();
    doError(req,res,"指定教师"+tid+"失败,更新数据库有误!!!Rows affected: " + refer);
    这两句前好像没有给
    tea_id 任何值...String tid=cour.getTea_id();<---你这时好像没给private String tea_id;<---好像只定义没付值..
    public String getTea_id(){return tea_id;}<---你返回一个空值了....
      

  4.   

    可是我的course类中的refertea方法中有用setTea_id(tid);给tea_id赋值啊
      

  5.   

    还有,我先调用的doRefertea,所以course cour=null应该没影响的吧,我是按照书上说的,对象要先赋空值吗不是。
    还有“能声明空对象的尽量声明空对象,不要图省事用null代替。”这句话有点不明白哦,声名空对象不就是得用null吗?
      

  6.   

    public int doRefertea(HttpServletRequest req,HttpServletResponse res,String            cour_id,String tea_name)
                 throws ServletException,IOException{
        course cour=new course();
        int num=0;
        num=cour.refertea(cour_id,tea_name);

        return num;
       }
    }
    你在这里赋值?晕不行D这个course cour=new course();只有效于doRefertea里..
      

  7.   

    public int doRefertea(HttpServletRequest req,HttpServletResponse res,String            cour_id,String tea_name)
                 throws ServletException,IOException{
        course cour=new course();
        int num=0;
        num=cour.refertea(cour_id,tea_name);

        return num;
       }
    }
    你在这里赋值?晕不行D这个course cour=new course();只有效于doRefertea里..
      

  8.   

    public int doRefertea(HttpServletRequest req,HttpServletResponse res,String            cour_id,String tea_name)
                 throws ServletException,IOException{
        course cour=new course();
        int num=0;
        num=cour.refertea(cour_id,tea_name);
        this.cour.setTea_id(cour.getTea_id());<---这样试试
        return num;
       }
    }
      

  9.   

    啊!jackwin(想过更好的生活!!):多谢多谢~
    我也怀疑来着,终于可以确定问题是出在这里了!!!
    可是,能不能说的详细点呢?
    我该怎么做呢?
    将返回类型改为course类型吗?我试试去~
      

  10.   

    public class CourseSvlt extends HttpServlet{    course cour = null;<---使用我的方法要将这定义在此

    public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
        String cour_id =req.getParameter("cour_id");
        //course cour = null;<--这个无需
        String action = action = req.getParameter("action");
        String message="";
        int refer=0;那么你的doRefertea里也可以这样改public int doRefertea(HttpServletRequest req,HttpServletResponse res,String            cour_id,String tea_name)
                 throws ServletException,IOException{
        //course cour=new course();<--可以不用了
        int num=0;
        num=cour.refertea(cour_id,tea_name);
        return num;
       }
    }
      

  11.   

    我把  String tid=cour.getTea_id(); 这句注释掉了,下面那行也改成 doError(req,res,"指定教师失败,更新数据库有误!!!Rows affected: " + refer); 了。
    可是运行就会转到错误页面了,显示:指定教师失败,更新数据库有误!!!Rows affected:0这应该是refertea方法中的问题了吧,再帮我看下吧,我看不出什么问题啊:(
      

  12.   

    if(tea_id.equals(null)){<---问题应该出这里了吧...忘记了equals不知道能不能比较null的变量,你这样的比较可能问题很多我给个我写的函数你see see
    public boolean EmptyStr(String s) {//测试是否空字符或者null字符
    try {
    if (s != null && (s.trim()).length() != 0)
    return true;
    else
    return false;
    } catch (Exception e) {
    return false;
    }
    }