2015-08-21 3 views
0

У меня есть простой генератор случайных чисел. Я пытался использовать сервлет с формой. Первая страница подтягивается просто отлично. После нажатия кнопки, чтобы получить случайные числа, я получаю «HTTP Status 404 - Not_Found» Запрошенный ресурс недоступен.ошибка 404 не найдена - сервлет из JSP

Я искал что-нибудь, что, возможно, было ошибкой или отсутствием каких-либо «:» и т. Д. Все это выглядит хорошо для меня, поэтому я надеялся, что кто-то может наложить на него другой набор глаз и, возможно, скажет мне, noob я.

Вот мой JSP файл:

<%@page import="java.util.*"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<HTML> 
<HEAD><TITLE>Random Numbers Page</TITLE></HEAD> 
<BODY BGCOLOR="white"> 
<H1>Random Numbers Page</h1> 
<P>This will display 20 random numbers </P> 
<FORM METHOD=POST   ACTION="${pageContext.request.contextPath}/randomNumberServlet"> 
<BR> 
<INPUT TYPE="SUBMIT" VALUE="Get Numbers Here"> 
</FORM> 
</BODY> 
</HTML> 

А вот мой сервлет:

import java.io.*; 
import java.util.Random; 
import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class randomNumberServlet extends HttpServlet { 
protected final int DEFAULT_NUMBER = 20; 

/** Called when the form is filled in by the user. 
* @param req 
* @param resp 
* @throws java.io.IOException */ 
@Override 
public void doPost(HttpServletRequest req, HttpServletResponse resp) 
throws IOException { 
resp.setContentType("text/html"); 
PrintWriter out = resp.getWriter(); 

// HTML setup stuff. 
out.println("<HTML>"); 
out.println("<HEAD>"); 
out.println("<BODY BGCOLOR=\"white\">"); 

// HTML for this page 
out.println("<TITLE>Random Numbers</TITLE>"); 
out.println("<P>Here are the 20 random numbers,"); 

// Now actually generate some random numbers. 
// Now actually generate some random numbers. 
Random r = new Random(100); 
for (int i=0; i<20; i++) { 
    out.print("<LI>"); 
    out.println(r.nextInt()); 

out.println("</OL>"); 
} 
} 
} 
+0

Вы можете оставить web.xml. Также находится сервлет в пакете или пакете по умолчанию. Если сервлет находится в пакете по умолчанию, переместите его в имя пакета и попробуйте –

+0

Я не уверен, как это получить. Я буду google и учиться. В конце после того, как я работал над этим более 20 часов в течение двух дней, я понял это. Я сделал это более сложным, чем это было на самом деле. –

+0

Закончилось размещение обычного java-кода внутри JSP-файла. Единственное, что я сделал неправильно, - это попытаться положить его в «_body». Я должен был вынести его за пределы любой области, обозначенной уже (тело, голова, название и т. Д.). –

ответ

0

Скорее всего, отображение URL/randomNumberServlet не указывает на сервлет randomNumberServlet. У вас есть 2 варианта:

  1. В вашем веб-XML define your servlet and a URL mapping
  2. Или, если ваш сервлет контейнер сервлетов 3.0 Спецификация жалобы, вы можете использовать Servlet Annotations.

Вот пример Servlet Аннотация:

@WebServlet(name="randomNumberServlet", urlPatterns={"/randomNumberServlet"}) 
public class randomNumberServlet extends HttpServlet { ... }