關於Servlet轉到jsp頁面出現的404問題
阿新 • • 發佈:2018-12-03
本人通過在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是放在這下面的話,那麼跳轉頁面的時候,路徑要加上新建的資料夾名。
當然,如果你使用絕對路徑,那肯定是對了。只是提醒下使用相對路徑的夥伴要注意下。