servlet向js输出json数据时总是执行error(data)

这是本人在做基础javaweb时,针对出错的问题进行了总结-----1(测试程序为期末作业,做一个课程评价系统)

在servlet向js输出json数据时总是执行error(data),调试了一晚上仍未解决,便重新理顺了逻辑,使得问题得以解决!

实现的模块是管理员添加课程并显示。在添加成功后,最初是在AddCourseServlet中进行跳转到另一个ShowCourseServlet,然后在ShowCourseServlet中查询数据库显示数据,将显示的数据跳转到相应的show_course.jsp页面,在此处贴上出错代码:

AddCourseServlet:

if(search){
            System.out.println("插入课程信息成功!");
            resp.sendRedirect("servlet/ShowCourse");
            //不能req.getRequestDispatcher("servlet/ShowCourse").forward(req, resp);
            
        }

注:下篇博文解释resp.sendRedirect("servlet/ShowCourse");与req.getRequestDispatcher("servlet/ShowCourse").forward(req, resp);因为在测试中也犯过错。对两个方法理解模糊

ShowCourseServlet:
                while(rs.next()){
                Course cs=new Course();
                int courseId=rs.getInt("courseId");
                String courseName = rs.getString("courseName");
                String teacher = rs.getString("teacher");
                System.out.println("课程id为:"+courseId+"课程名为:"+courseName+"老师为:"+teacher);
                cs.setCourseId(courseId);
                cs.setCourseName(courseName);
                cs.setTeacher(teacher);
                list.add(cs);
                
            }
            JSONArray jsonarray = JSONArray.fromObject(list);    
            //将json对象转为字符串,以便将字符串输出
             String data = jsonarray.toString();
            System.out.println(data);
            out.write(data);
            req.getRequestDispatcher("/views/show_course.jsp").forward(req, resp);
            show_course.jsp:

function showresult(){
    

//测试document.write(Date());
        $.ajax({
                    //提交方式
                    type : "GET",
                    //提交的Action
                    url : "servlet/ShowCourse",
                    data : {
                    //提交的数据                   
                    },
                    //返回数据类型
                    dataType : "json",
                    
                    success : function(data) {
                        alert("success");
                        var d = eval(data);
                        for ( var i in d) {
                            var str = '<tr><td>'
                                    + d[i].courseId
                                    + '</td><td>'
                                    + d[i].courseName
                                    + '</td><td>'
                                    + d[i].teacher
                                    + '</td></tr>';
                            $('#tbody').append(str);
                            }
                        
                    },
                    error : function(data)
{                        alert("fail");
                    },
                });

    }
    </script>

确逻辑应为:AddCourseServlet添加课程成功后跳转到展示页面show_course.jsp,在此页面请求ShowCourseServlet

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值