5

我无法访问我用表单调用的 servlet。我检查了树状结构、web.xml 和表格,但我看不到任何问题。我将 Eclipse 与“网络动态项目”一起使用。

有我的乔木:

在此处输入图像描述

我的 web.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>

我的表格(我尝试了完整的网址,但没有用):

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

我的小服务程序:

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中的log文件夹是空的。你可以帮帮我吗 ?

编辑:

有我的错误:

错误 404

我同意对我在 response.sendRedirect 上的错误的响应,但这不是我错误的真正主题:) 即使我删除了 doPost 上的所有代码,我也有这个错误,而不是白页。

4

4 回答 4

4

您需要.jsp在执行重定向时包括在内。

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

代替:

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

还将您的上下文路径添加到表单中的 url。

<form action="<%=request.getContextPath()%>/urlCommandeServ" method="post">
于 2013-04-26T20:15:33.437 回答
3

<form>将您的html更改为

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

当您发帖时,/urlCommandeServ您是在要求 Tomcat(或您的 Web 服务器)寻找一个名为urlCommandeServ但不存在的 Web 应用程序,因此您会得到 404。

于 2013-04-27T14:00:38.920 回答
0

为什么不使用 RequestDispatcher?

RequestDispatcher dispatcher = request.getRequestDispatcher("yourPage.jsp");
if (dispatcher != null){
    dispatcher.forward(request, response);
}
于 2013-04-26T21:11:51.750 回答
0

请参阅:SO 链接

“如果此代码在您的 J2SE 中有效,则意味着您需要在某处包含 com.mysql.jdbc.Driver 类(所谓的 JDBC 驱动程序)的 JAR 文件。此 JAR 需要在 Tomcat 中可见。所以,我建议放置mysql-jdbc.jar 在物理位置到您项目的 /WEB-INF/lib 目录。”

于 2013-10-09T15:19:13.787 回答