有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当我调用servlet时,JavaTomcat给出了404

我无法访问我用表单调用的servlet。我检查了树木,网。xml和表单,但我看不出有任何问题。我将Eclipse与“web动态项目”一起使用

这是我的树木园:

enter image description here

我的网络。xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Z-ProjetJ2EE</display-name>
<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
  <description></description>
  <servlet-name>CommandeServlet</servlet-name>
  <servlet-class>controleur.CommandeServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>CommandeServlet</servlet-name>
  <url-pattern>/urlCommandeServ</url-pattern>
</servlet-mapping>
</web-app>

我的表单(我尝试了完整的url,但无效):

<form action="/urlCommandeServ" method="post">

还有我的servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String cat = request.getParameter("categorie");
    Float prix = Float.parseFloat(request.getParameter("prix"));
    response.sendRedirect("CreerCommande?cat=" + cat+"&prix="+prix);

我在eclipse中没有任何错误,tomcat中的日志文件夹是空的。你能帮我吗

编辑:

这是我的错误:

Error 404

我同意对我的错误的回应。sendRedirect,但这不是我的错误的真正主题:)即使我删除了doPost上的所有代码,也会出现此错误,而不是白色页面


共 (4) 个答案

  1. # 1 楼答案

    为什么不使用RequestDispatcher

    RequestDispatcher dispatcher = request.getRequestDispatcher("yourPage.jsp");
    if (dispatcher != null){
        dispatcher.forward(request, response);
    }
    
  2. # 2 楼答案

    执行重定向时需要包含.jsp

    response.sendRedirect("CreerCommande.jsp?cat=" + cat+"&prix="+prix);
    

    而不是:

    response.sendRedirect("CreerCommande?cat=" + cat+"&prix="+prix);
    

    还要将contextpath添加到表单中的url

    <form action="<%=request.getContextPath()%>/urlCommandeServ" method="post">
    
  3. # 3 楼答案

    见:SO Link

    “如果这段代码在J2SE中运行,这意味着您需要在某个地方有一个包含com.mysql.jdbc.Driver类(所谓的jdbc驱动程序)的JAR文件。这个JAR需要在Tomcat中可见。因此,我建议将mysql-jdbc.JAR放在项目的/WEB-INF/lib目录的物理位置。”

  4. # 4 楼答案

    <form>html更改为

    <form action="urlCommandeServ" method="post">
    

    当你在/urlCommandeServ上发帖时,你要求Tomcat(或你的web服务器)寻找一个名为urlCommandeServ的web应用程序,它不在那里,因此你得到了404