2015-08-21 228 views
0

我有一個簡單的隨機數生成器。我正在嘗試使用帶有表單的servlet。第一頁就好了。點擊按鈕獲得隨機數後,我得到'HTTP狀態404 - Not_Found'請求的資源不可用。未找到404錯誤 - JSP中的servlet

我已經找過任何我可能錯誤輸入或者錯過任何':'等的地方。 這一切對我來說都很好,所以我希望有人能夠對它有不同的眼睛,也許告訴我什麼是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> 

這裏是我的servlet:

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。 servlet也是包或缺省包。如果servlet處於默認包中,請將其移至包名稱並嘗試 –

+0

我不確定如何獲取該信息。我會谷歌和學習。最終在兩天內完成了超過20個小時的工作後,我找到了答案。我做了這個更復雜,然後它真的。 –

+0

最終將常規的java代碼放入JSP文件中。我做錯了唯一的事情就是試圖把它放在'_body'中。我必須把它放在已經指定的任何區域之外(身體,頭部,標題等)。 –

回答

0

最有可能的URL映射/ randomNumberServlet不指向randomNumberServlet的servlet。 你有2種選擇:

  1. 在Web XML define your servlet and a URL mapping
  2. 或者,如果你的servlet容器的Servlet 3.0規範的投訴,可以使用Servlet Annotations

這裏有一個Servlet註解例如:

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