解决方案 »

  1.   

    你用通过Post访问这个URL而不是GET。
      

  2.   

    你没有实现servlet中的get方法
    然后你前台访问的时候可能是get方式提交
    两种选择
    1、把后台的doGet方法实现
    2、修改前台的提交方式
      

  3.   

    你可以实现doget()  然后在doget()中调用dopost(),这样就两个都不会报错了。
      

  4.   

    非常感谢各位,这个问题解决了,但是又有新的问题了
    我分别写了一个添加书签成功和失败的Servlet,但是返回不出页面
    这是为什么呀?
      

  5.   

    //这是Success的代码
    package cc;
    import cc.Book;import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * Servlet implementation class Success
     */
    @WebServlet("/Success")
    public class Success extends HttpServlet {
    private static final long serialVersionUID = 1L;
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Success() {
            super();
            // TODO Auto-generated constructor stub
        } /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  {
    Book book=(Book) request.getAttribute("book");
    response.setContentType("text/html;charset=UTF-8");// TODO Auto-generated method stub
    PrintWriter out = response.getWriter();
    // TODO Auto-generated method stub
    out.println("<html>");
    out.println("<head>");
    out.println("<title>添加书签成功</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>添加书签成功<h1>");
    out.println("<ul>");
    out.println("<li>书名:"+book.getName()+"</li>");
    out.println("<li>作者:"+book.getAuthor()+"</li>");
    out.println("<li>出版社:"+book.getChuban()+"</li>");
    out.println("</ul>");
    out.println("</body>");
    out.println("</html>");
    out.close();
    }    protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
    doPost(request, response);
    }}
    //这是Error的代码
    package cc;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Iterator;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * Servlet implementation class Error
     */
    @WebServlet("/Error")
    public class Error extends HttpServlet {
    private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Error() {
            super();
            // TODO Auto-generated constructor stub
        } /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  {
    response.setContentType("text/html;charset=UTF-8");// TODO Auto-generated method stub
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head>");// TODO Auto-generated method stub
    out.println("<title>书签添加失败</title>");
    out.println("<body>");
    out.println("<h1>书签添加失败<h1>");
    out.println("<ul style=\"color:rgb(255,0,0);\">");
    List errorList=(List) request.getAttribute("errors");
    Iterator<String>errors=errorList.iterator();
    while(errors.hasNext()){
    out.println("<li>"+errors.next()+"</li>");
    }
    out.println("</ul>");
    out.println("</body>");
    out.println("</html>");
    }
        protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
    doPost(request, response);
    }
    }