簡體   English   中英

轉發(請求,響應)不轉發URL

[英]Forward(request,response) doesn't forward the URL

我正在使用Java servlet進行項目。 我必須在已經正常運行的站點中包含代碼。 我正在使用Netbeans,服務器是Tomcat。 我添加的代碼與站點代碼的某些部分非常相似。 我必須創建一個新的控制器,該控制器從數據庫中讀取並顯示,添加,更新和刪除信息。 該站點使用我們創建的不同servlet起作用,但是該項目的必要條件是創建控制器servlet。 這是控制器代碼的一部分:

public class MaintController extends HttpServlet {

   @Override
    public void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException {

       String requestURI = request.getRequestURI();
        String url = "/maint";
        if (requestURI.endsWith("/displayProducts")) {
            url = displayProducts(request, response);
        } else if (requestURI.endsWith("/addProduct")) {
            url = addProduct(request, response);
        } else if (requestURI.endsWith("/editProduct")) {
            url = editProduct(request, response);
        } else if (requestURI.endsWith("/deleteProduct")){
            deleteProduct(request, response);
        }

       getServletContext()
                .getRequestDispatcher(url)
                .forward(request, response);
    }

    private String displayProducts(HttpServletRequest request, 
            HttpServletResponse response)
            throws  IOException, ServletException  {

        HttpSession session = request.getSession();

         List<Product> products = ProductDB.selectProducts();
        session.setAttribute("products", products);
        out.println(products);
        String url= "/maint/products.jps";

        return url;
    }

關鍵是調試該站點,我可以看到,輸入以/displayProducts的URL時,可以訪問displayProducts函數,讀取產品並返回URL,但是當控件轉到getServletContext().getRequestDispatcher(url).forward(request, response); 該網址未轉發,並且該網址存在時出現404錯誤。

我可以在displayProducts()方法中看到,您已經定義了如下網址:

String url= "/maint/products.jps";

那不是錯字嗎?

String url= "/maint/products.jsp";

文件擴展名是錯誤的吧?

404錯誤表示找不到請求的頁面。 您的返回網址是

String url= "/maint/products.jps";

請求頁面的擴展名不正確。 應該是products.jsp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM