转发(请求,响应)不转发URL

时间:2015-04-16 21:28:02

标签: java servlets forward

我正在使用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错误。

2 个答案:

答案 0 :(得分:0)

我可以在displayProducts()方法中看到,你已经按如下方式定义了url:

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

不应该是一个错字?

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

文件扩展名错了吗?

答案 1 :(得分:0)

404错误表示找不到请求的页面。 你的回复网址是

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

请求页面的扩展名不正确。它应该是products.jsp