找不到错误 404 - 来自 JSP 的 servlet

error 404 not found - servlet from JSP

我构建了一个简单的随机数生成器。我试图将 servlet 与表单一起使用。第一页拉起来就好了。点击按钮获取随机数后,我得到 'HTTP Status 404 - Not_Found' The requested resource is not available。

我已经查找了我可能输入错误或遗漏任何“:”等的任何内容。 这一切对我来说都很好,所以我希望有人能用不同的眼光看待它,也许会告诉我我是个菜鸟。

这是我的 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>");
}
}
}

很可能 url 映射 /randomNumberServlet 没有指向 randomNumberServlet servlet。 您有 2 个选择:

  1. 在您的网站上 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 { ... }