public class showServlet extends HttpServlet {
String oper1,oper2,oper3;
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("gbk");
String bookname=request.getParameter("bookname");
String isbn=request.getParameter("isbn");
String bookauthor=request.getParameter("bookauthor");
String bookpublisher=request.getParameter("bookpublisher");
oper1=request.getParameter("oper1");
oper2=request.getParameter("oper2");
oper3=request.getParameter("oper3");
System.out.println(oper1);
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();

ServletContext application=session.getServletContext();
ResultSet rs=selectBookByConditions(bookname, isbn, bookauthor, bookpublisher);
if(rs!=null)
{
try {
while(rs.next())
{
System.out.println(rs.getString("bookName")+rs.getString("isbn"));
application.setAttribute("result", rs);
request.getRequestDispatcher("front/showBook.jsp").forward(request, response); }
} catch (SQLException e) {
e.printStackTrace();
}

// response.sendRedirect("front/showBook.jsp");
}
else
{
out.print("<script language=javascript>alert('没有相关书籍');location.href='selectBook.jsp'</script>");
}
// System.out.println(rs);
// response.sendRedirect("front/showBook.jsp");

}
这样请求转发总是报错,错误指向红色代码部分,请大家帮帮忙,谢谢!!

解决方案 »

  1.   

    楼主你在循环内调用RequestDispatcher.forward,要转发多少次啊....
    第一次forward后,response就提交了,再次forward会抛IllegalStateException
      

  2.   

    就算转发到另一个页面 ,你写的那循环也不会再执行下去了 
      没人这样转发过~~~~  
       把 while 改成 IF吧
      

  3.   

    还有一点response.sendRedirect("front/showBook.jsp"); 前面加/