【问题标题】:error 404 not found - servlet from JSP [duplicate]找不到错误 404 - 来自 JSP 的 servlet [重复]
【发布时间】:2015-11-15 22:02:20
【问题描述】:

我有一个简单的随机数生成器。我试图使用带有表单的 servlet。第一页拉起来就好了。点击按钮获取随机数后,我得到“HTTP 状态 404 - Not_Found”请求的资源不可用。

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

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

【问题讨论】:

  • 你能发布你的 web.xml。也是包或默认包中的 servlet。如果 servlet 在默认包中,请将其移至包名并尝试
  • 我不知道如何得到它。我会谷歌它并学习。最后,在两天内为此工作了 20 多个小时后,我想通了。我把它弄得更复杂了。
  • 最终将常规 java 代码放入 JSP 文件中。我做错的唯一一件事就是试图把它放在'_body'中。我必须把它放在已经指定的任何区域(身体、头部、标题等)之外。
  • 我还是想用上面的方法解决这个问题,所以我会为你获取 web.xml。非常感谢!

标签: servlets http-status-code-404


【解决方案1】:

很可能 url 映射 /randomNumberServlet 不指向 randomNumberServlet servlet。 你有两个选择:

  1. 在你的 web xml define your servlet and a URL mapping
  2. 或者,如果您的 servlet 容器是 Servlet 3.0 Specification 投诉,您可以使用Servlet Annotations

这是一个 Servlet 注释示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-01
    • 2012-07-06
    • 2014-04-03
    • 2014-08-21
    • 2015-05-30
    • 2018-06-06
    • 1970-01-01
    • 2018-05-16
    相关资源
    最近更新 更多