2015-11-04 4 views
2

Я действительно пытаюсь понять, почему я не могу добраться до своего сервлета при отправке моей формы. Я попытался изменить путь в xml несколько раз и отредактировал код сервлета, но мой браузер все еще не может найти мой сервлет при отправке формы.Не удается найти сервлет в причале

Вот 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-шаблон.

Вот простой сервлет:

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/и скомпилируется.

+0

Что произойдет, если вы попытаетесь нажать 'http: // localhost: 8080/simpleForms/quiz'? –

+0

У вашего 'web.xml' нет специфицированной версии или xsd/dtd, это может привести к неопределенному режиму поведения сервлета. Названия ваших классов также не соответствуют спецификации (рекомендуется использовать пакет И класс, начинающийся с буквы capitol). –

ответ

0

У вашей структуры папок возникла проблема. Я могу запустить код, предоставленный вами.

  • если ваше имя проекта webapps, а затем сохранить ваши сервлеты в src (WebApps/Src/викторины) folder.Organize их с помощью пакета, если вы хотите.
  • сохранить ваш HTML в WebContent папке (WebApp/WebContent/yourHtml.html)
  • держать web.xml под WebContent/WEB-INF (WebApp/WebContent/WEB-INF/web.xml)

С эта структура папок, вы должны иметь возможность запускать свой сервлет-код.

Смежные вопросы