本人通过在servlet里面连接数据库,获取数据,然后通过打包集合传到另外一个jsp页面的时候,出现了404问题。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
//PrintWriter out=response.getWriter();
/*try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/javaweb";
String username="root";
String password="1223360222";
Connection conn=(Connection) DriverManager.getConnection(url,username,password);
Statement stmt=(Statement) conn.createStatement();
String sql="SELECT * FROM tb_bbok";
//out.print("hello world");
ResultSet rs=stmt.executeQuery(sql);
List<Book>list=new ArrayList<Book>();
while(rs.next()){
Book book=new Book();
book.setId(rs.getInt("id"));
book.setName(rs.getString("name"));
//out.println(rs.getInt("id"));
book.setPrice(rs.getFloat("price"));
book.setBookCount(rs.getInt("bookcount"));
book.setAuthor(rs.getString("author"));
list.add(book);
}
request.setAttribute("list", list);
rs.close();
stmt.close();
conn.close();
//out.close();
}catch(ClassNotFoundException ex){
ex.printStackTrace();
}catch(SQLException ex){
ex.printStackTrace();
}*/
RequestDispatcher rd=request.getRequestDispatcher("JDBC/bookQuery.jsp");
rd.forward(request, response);
原因是
RequestDispatcher rd=request.getRequestDispatcher("JDBC/bookQuery.jsp");的bookQuery.jsp的路径没对。
如果jsp文件直接放在web下面,这个绝对路径就是对的,但是如果你在web现在新建了文件夹,你的bookQuery.jsp是放在这下面的话,那么跳转页面的时候,路径要加上新建的文件夹名。
当然,如果你使用绝对路径,那肯定是对了。只是提醒下使用相对路径的伙伴要注意下。