Forward(request,response) 不转发 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
函数,读取产品并且 [=返回 21=],但是当控件转到 getServletContext().getRequestDispatcher(url).forward(request, response);
时,url 没有被转发,当 url 存在时,我收到 404 错误。
我可以在 displayProducts() 方法中看到,您已将 url 定义如下:
String url= "/maint/products.jps";
不会是打错了吧?
String url= "/maint/products.jsp";
文件扩展名是错误的吧?
404 错误表示找不到请求的页面。
你的 return url 是
String url= "/maint/products.jps";
所请求页面的扩展名不正确。应该是products.jsp
我正在使用 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
函数,读取产品并且 [=返回 21=],但是当控件转到 getServletContext().getRequestDispatcher(url).forward(request, response);
时,url 没有被转发,当 url 存在时,我收到 404 错误。
我可以在 displayProducts() 方法中看到,您已将 url 定义如下:
String url= "/maint/products.jps";
不会是打错了吧?
String url= "/maint/products.jsp";
文件扩展名是错误的吧?
404 错误表示找不到请求的页面。 你的 return url 是
String url= "/maint/products.jps";
所请求页面的扩展名不正确。应该是products.jsp