自由编程报错???

自由编程报错???

http://img1.sycdn.imooc.com//climg/5c84d3c400013c6514020548.jpg

http://img1.sycdn.imooc.com//climg/5c84d40300014a0904610525.jpg

package com.imooc.jdbc.demo1;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.imooc.jdbc.utils.JDBCUtils;

public class AddCourseServlet extends HttpServlet {
	public void deGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    //接收jsp传过来的参数
	String name = request.getParameter("name");
	String category = request.getParameter("category");
	String desp = request.getParameter("desp");
	String createTime=request.getParameter("createTime");
	//保存数据到数据库
	Connection conn=null;
	PreparedStatement pstmt=null;
	try {
		//获得连接
		conn=JDBCUtils.getConnection();
		//编写SQL
		String sql="insert into course values(null,?,?,?,?)";
		//预处理SQL
		pstmt=conn.prepareStatement(sql);
		//设置参数值
		pstmt.setString(1, name);
	    pstmt.setString(2, category);
	    pstmt.setString(3, desp);
	    pstmt.setString(4, createTime);
	    //执行SQL
	    int i=pstmt.executeUpdate();
	    if(i>0) {
	    	System.out.println("添加成功!");
	    	request.getRequestDispatcher("showCourseServlet").forward(request, response);
	    }
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		JDBCUtils.release(pstmt, conn);
	     }
}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

***************************************

package com.imooc.jdbc.demo1;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/*
 * JDBC的工具类
 * @author jt
 */

public class ConnectionUtil{
    private static final ComboPooledDataSource dataSource=new ComboPooledDataSource();
	/*
	 * 获得连接的方法
	 * @throws SQLException
	 */
	public static Connection getConnection() throws Exception{
		Connection conn=dataSource.getConnection();
		return conn;
	}
	
	/*
	 * 资源释放
	 */
	public static void release(Statement stmt,Connection conn) {
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt=null;
		}
	}
	
	public static void release(ResultSet rs,Statement stmt,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			rs=null;
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt=null;
		}
	}
	
}

**************************************************

package com.imooc.jdbc.demo1;

import java.sql.Date;

public class Course{
	private int id;
	private String name;
	private String category;
	private String desp;
	private Date createTime;
	
	public Course() {
		super();
	}

	public Course(int id, String name, String category, String desp, Date createTime) {
		super();
		this.id = id;
		this.name = name;
		this.category = category;
		this.desp = desp;
		this.createTime = createTime;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCategory() {
		return category;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public String getDesp() {
		return desp;
	}

	public void setDesp(String desp) {
		this.desp = desp;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Override
	public String toString() {
		return "Course [id=" + id + ", name=" + name + ", category=" + category + ", desp=" + desp + ", createTime="
				+ createTime + "]";
	}
	
	
}

****************************************************************

package com.imooc.jdbc.demo1;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.imooc.jdbc.utils.JDBCUtils;
import com.mysql.cj.xdevapi.Result;

/*
 * 显示所有课程的Servlet
 */
public class ShowCourseServlet extends HttpServlet {
        public void doGet(HttpServletRequest request,HttpServletResponse response) {
        //定义一个List集合来存放课程
        List<Course> courseList=new ArrayList<Course>();
        Connection conn=null;
        PreparedStatement pstmt=null;
        ResultSet rs=null;
        try {
        	//获得连接
        	conn=JDBCUtils.getConnection();
        	//编写SQL
        	String sql="select * from course";
        	//预编译SQL
        	pstmt=conn.prepareStatement(sql);
        	//执行SQL
        	rs=pstmt.executeQuery();
        	while(rs.next()) {
        		int id=rs.getInt("id");
        		String name=rs.getString("name");
        		String category=rs.getString("category");
        		String desp=rs.getString("desp");
        		Date createTime=rs.getDate("createTime");
        		System.out.println(id+"   "+name+"   "+category+"   "+desp+"   "+createTime);
        		//将结果封装到Course中
        		Course course=new Course();
        		course.setId(id);
        		course.setName(name);
        		course.setCategory(category);
        		course.setDesp(desp);
        		course.setCreateTime(createTime);
        		//将结果存放到List集合中
        		courseList.add(course);
        		System.out.println(courseList);
        	}
        	request.setAttribute("list", courseList);
        	request.getRequestDispatcher("/showCourse.jsp").forward(request, response);
        	
        }catch(Exception e) {
        	e.printStackTrace();
        }finally {
        	//释放资源
        	JDBCUtils.release(rs, pstmt, conn);
        }
        }
        public void dePost(HttpServletRequest request,HttpServletResponse response) {
        	doGet(request,response);
        }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

15回答
提问者 慕羲 2019-03-15 08:51:35

没有配置映射路径,需要怎么配置?

http://img1.sycdn.imooc.com//climg/5c8af70d0001935310360409.jpg

  • 同学根据楼上老师的建议,在Servlet上方增加注解:@WebServlet("ShowCourseServlet") 即可配置好Servlet。祝学习愉快!
    2019-03-15 14:19:10
chrismorgen 2019-03-14 16:37:16

你好同学,如下图所示标记的位置,很明显你的路径是错误路径,请问你有在web.xml中配置ShowCourseServlet的映射路径吗?

http://img1.sycdn.imooc.com//climg/5c8a120e000158bf08280106.jpg

建议同学使用注解来完成,譬如添加如下标记的代码,然后在使用http://localhost:8080/ShowCourseServlet来访问该serlvet,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c8a127e0001e9b107270203.jpg

  • 提问者 慕羲 #1
    没有配置映射路径
    2019-03-15 08:50:41
提问者 慕羲 2019-03-14 14:43:00

现在没有报错信息, 但是运行完404报错???

http://img1.sycdn.imooc.com//climg/5c89f7f10001730712580749.jpg

chrismorgen 2019-03-14 10:23:22

下图标记的泛型应该是你对应的实体类,建议你将下图两个地方改为Course就不会报错了,getName方法是Course类中的,而不是ShowCourseServlet中的方法哦,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c89ba350001ad2507540084.jpg

提问者 慕羲 2019-03-13 19:50:53

依然还有报错?

http://img1.sycdn.imooc.com//climg/5c88ee9a0001dc3e12370730.jpg

chrismorgen 2019-03-12 19:04:19

你好同学,你在下图的标记的地方缺少java.util.*这个包哦,所以导致list集合无法使用(list集合是java.util这个包下的),在下图标记的地方再添加java.util.*这个引用就可以了,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c878b5200012a1106760051.jpg

提问者 慕羲 2019-03-12 15:26:56

还有jsp报错?????

http://img1.sycdn.imooc.com//climg/5c875f2400015a8f12760806.jpg

http://img1.sycdn.imooc.com//climg/5c875f3d0001060304480596.jpg

chrismorgen 2019-03-12 15:11:56

你好同学,如下图所示,建议你将java.util.Date,改为java.sql.Date。这是两个不同的包哦,修订之后后不会报错了。

http://img1.sycdn.imooc.com//climg/5c875b5d0001d59704600185.jpg

修订之后的效果如下,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c875bb70001c6b604910295.jpg

提问者 慕羲 2019-03-12 08:36:58
package com.imooc.jdbc.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import org.junit.jupiter.api.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;
/*
 * JDBC的工具类
 * @author jt
 */

public class JDBCUtils {
    private static final ComboPooledDataSource dataSource=new ComboPooledDataSource();
	/*
	 * 获得连接的方法
	 * @throws SQLException
	 */
	public static Connection getConnection() throws Exception{
		Connection conn=dataSource.getConnection();
		return conn;
	}
	
	/*
	 * 资源释放
	 */
	public static void release(Statement stmt,Connection conn) {
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt=null;
		}
	}
	
	public static void release(ResultSet rs,Statement stmt,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			rs=null;
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt=null;
		}
	}
	
}


提问者 慕羲 2019-03-11 16:37:08
create database jdbctest;
use jdbctest;
create table course(
  id INT primary key AUTO_INCREMENT COMMENT '课程编号',
  name VARCHAR(20) NOT NULL COMMENT '课程名称',
  category VARCHAR(20) NOT NULL COMMENT '课程方向',
  desp VARCHAR(30) NOT NULL COMMENT '课程描述',
  createTime DATETime NOT NULL COMMENT '创建时间'
);
insert into course values (null,"Java零基础","Java","Java基础语法",now DATE);
insert into course values (null,"Java Web","Java","JSP和Servlet",now DATE);
insert into course values (null,"前端小白","前端","HTML/CSS/JS",now DATE);


提问者 慕羲 2019-03-11 16:36:43
create database jdbctest;
use jdbctest;
create table course(
  id INT primary key AUTO_INCREMENT COMMENT '课程编号',
  name VARCHAR(20) NOT NULL COMMENT '课程名称',
  category VARCHAR(20) NOT NULL COMMENT '课程方向',
  desp VARCHAR(30) NOT NULL COMMENT '课程描述',
  createTime DATETime NOT NULL COMMENT '创建时间'
);
insert into course values (null,"Java零基础","Java","Java基础语法",now DATE);
insert into course values (null,"Java Web","Java","JSP和Servlet",now DATE);
insert into course values (null,"前端小白","前端","HTML/CSS/JS",now DATE);


chrismorgen 2019-03-11 13:40:15

你好同学,建议你将sql建表语句也粘贴一下,方便老师对你的代码进行系统的调试,并告诉你那里出现了问题,祝学习愉快~

  • 提问者 慕羲 #1
    贴出来了,now DATE 要不要换成2019/3/11 16:38:00
    2019-03-11 16:38:50
  • chrismorgen 回复 提问者 慕羲 #2
    不需要换额,now Date指的就是当前时间哦,建议同学将JDBCUtils类中的代码也粘贴一下哦,祝学习愉快~
    2019-03-11 18:58:24
提问者 慕羲 2019-03-10 17:20:05

代码报错页面?????

http://img1.sycdn.imooc.com//climg/5c84d6a00001138113690587.jpg

http://img1.sycdn.imooc.com//climg/5c84d6bf0001e54114160576.jpg

提问者 慕羲 2019-03-10 17:18:18

老师帮忙看看查询哪里需要 改进的???


提问者 慕羲 2019-03-10 17:17:08

配置文件

driverClass=com.mysql.cj.jdbc.Driver

url=jdbc:mysql:///jdbctest?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8

username=root

password=1234

********************************************************************************************

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>课程添加</title>
</head>
<body>
      <form action="AddCourseServlet" method="post"  enctype="multipart/from-data">
      <h3 align = "center">课程添加</h3>
          <table align="center">
          <tr>
               <td>课程名</td>
               <td><input type="text" name="name"></td>
          </tr>
          <tr>
               <td>所属方向</td>
               <td><input type="text" name="category"></td>
          </tr>
          <tr>
               <td>课程描述</td>
               <td><input type="text" name="desp"></td>
          </tr>
          <tr>
                <td><input type="submit" value="添加"></td>
          </tr>
          </table>
      </form>
</body>
</html>

*************************************************************************

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
      <h3>错误跳转页面</h3>
</body>
</html>

************************************************

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示所有课程</title>
</head>
<body>
       <h3 align="center">添加成功</h3>
       <table align="center">
            <tr>
                <td>课程名称</td>
                <td>所属方向</td>
                <td>课程描述</td>
                <td>创建时间</td>
            </tr>
            <%
            	//获取集合
                List<ShowCourseServlet> courseList = (List<ShowCourseServlet>)request.getAttribute("list");
                for(ShowCourseServlet course : courseList) {
            %>
            <tr>
                <td><%=course.getName() %></td>
                <td><%=course.getCategory() %></td>
                <td><%=course.getDesp() %></td>
                <td><%=course.getCreateTime() %></td>
            </tr>
            <%
                   }
            %>
       </table>
</body>
</html>

自由编程8-2的作业完成,运行报错???老师帮忙看看???

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师