试图获取 java servlets doGet 方法以将浏览器带到正确的页面

问题描述

Here is the web xml

我正在尝试获取将浏览器带到 jsp 的链接(例如:BookForm.jsp、BookList.jsp)但是当点击链接时,它们被带到了

  • 本地主机:8080/书店/列表
  • 本地主机:8080/bookstore/insert
  • 本地主机:8080/书店/更新
protected void doGet(HttpServletRequest request,HttpServletResponse response)
            throws servletexception,IOException {
        String action = request.getServletPath();
        System.out.println(action);
        try {
            switch (action) {
            case "/list":
                listBook(request,response);
                break;
            case "/new":
                showNewForm(request,response);
                break;
            case "/insert":
                insertBook(request,response);
                break;
            case "/delete":
                deleteBook(request,response);
                break;
            case "/edit":
                showEditForm(request,response);
                break;
            case "/update":
                updateBook(request,response);
                break;
            default:
                listBook(request,response);
            }
        } catch (sqlException ex) {
            throw new servletexception(ex);
        }
    }
    private void listBook(HttpServletRequest request,HttpServletResponse response)
            throws sqlException,IOException,servletexception {
        List<Book> listBook = bookDAO.listAllBooks();
        request.setAttribute("listBook",listBook);
        Requestdispatcher dispatcher = request.getRequestdispatcher("BookList.jsp");
        dispatcher.forward(request,response);
    }
 
    private void showNewForm(HttpServletRequest request,IOException {
        Requestdispatcher dispatcher = request.getRequestdispatcher("BookForm.jsp");
        dispatcher.forward(request,response);
    }
 
    private void showEditForm(HttpServletRequest request,servletexception,IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        Book existingBook = bookDAO.getBook(id);
        Requestdispatcher dispatcher = request.getRequestdispatcher("BookForm.jsp");
        request.setAttribute("book",existingBook);
        dispatcher.forward(request,response);
 
    }
 

解决方法

检查您的 web xml 文件以获取正确的 servlet 映射。

java servlet 映射示例代码:

<servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>com.yourpath.ControllerServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>milk</servlet-name>
    <url-pattern>/drink/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>points</servlet-name>
    <url-pattern>/pointlist</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...