我正在使用Java做一个项目。我必须包括代码在一个已经发挥作用的网站。我正在使用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);时,url不会被转发,当url存在时,我会得到一个404错误。
发布于 2015-04-17 04:42:25
在displayProducts()方法中,您已经将url定义为:
String url= "/maint/products.jps";那不应该是个错误吗?
String url= "/maint/products.jsp";文件扩展名是错误的对吗?
发布于 2015-04-17 04:47:00
404错误表示未找到所请求的页。您的返程网址是
String url= "/maint/products.jps";请求页面的扩展是不正确的。应该是products.jsp
https://stackoverflow.com/questions/29686300
复制相似问题