2015-11-04 47 views
2

我真的很难找出为什么我在提交表单时无法访问我的servlet。我试过多次更改xml中的路径并编辑了servlet代码,但是当我提交表单时,我的浏览器仍然找不到我的servlet。在jetty中找不到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 /测验是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中并被编译。

+0

如果您尝试击中“http:// localhost:8080/simpleForms/quiz”,会发生什么情况? –

+0

您的'web.xml'没有指定spec版本或xsd/dtd,这可能会导致未确定的servlet行为模式。你的班级名称也超出规范(鼓励你使用一个包和一个以大写字母开头的班级)。 –

回答

0

您的文件夹结构有问题。我可以运行您提供的代码。

  • 如果你的项目名称为webapps,然后让你的servlet在 src(的webapps/src目录/测验),如果你想使用包folder.Organize他们。
  • 保持你的HTML WebContent文件夹(Web应用/的WebContent/yourHtml.html)
  • 保持web.xml下 的WebContent/WEB-INF(Web应用/的WebContent/WEB-INF/web.xml中)

随着这个文件夹结构,你应该可以运行你的servlet代码。