首页 > 解决方案 > 试图让 java servlets doGet 方法将浏览器带到正确的页面

问题描述

这是网络xml

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

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, HttpServletResponse response)
            throws ServletException, IOException {
        RequestDispatcher dispatcher = request.getRequestDispatcher("BookForm.jsp");
        dispatcher.forward(request, response);
    }
 
    private void showEditForm(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, 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);
 
    }
 

标签: javaservlets

解决方案


检查您的 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>

推荐阅读