【发布时间】:2016-02-05 15:45:50
【问题描述】:
我真的很难弄清楚为什么我在提交表单时无法访问我的 servlet。我已经尝试多次更改xml中的路径并编辑了servlet代码,但是当我提交表单时,我的浏览器仍然找不到我的servlet。
这里是 web.xml:
<?xml version="1.0"?>
<web-app>
<servlet>
<servlet-name>quizServlet</servlet-name>
<servlet-class>quiz</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>quizServlet</servlet-name>
<url-pattern>/quiz</url-pattern>
</servlet-mapping>
</web-app>
我也尝试过让 form3/quiz 成为 url 模式。
这是一个简单的 servlet:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class quiz extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
String grade = request.getParameter("grade");
out.println("grade=" + grade);
out.println("</body></html>");
out.close();
}
}
这里是html:
<html>
<body>
Quiz
<form method='post' action='quiz'>
grade<input type='text' name='grade'>
<input type='submit'></form>
</body>
</html>
index.html 包含在 webapps/simpleForms/form3 中,web.xml 位于 webapps/simpleForms/form3/WEB-INF 中,quiz.java 位于 webapps/simpleForms/form3/WEB-INF/classes 中并被编译。
【问题讨论】:
-
如果你尝试点击
http://localhost:8080/simpleForms/quiz会发生什么? -
您的
web.xml没有指定规范版本或 xsd/dtd,这可能导致未确定的 servlet 行为模式。您的类名也不符合规范(鼓励您使用包和以大写字母开头的类)。
标签: forms servlets jetty web.xml