【问题标题】:Tomcat Server in Eclipse: Error 404 submitting to servletEclipse 中的 Tomcat 服务器:提交到 servlet 时出现错误 404
【发布时间】:2018-04-07 07:51:08
【问题描述】:

我在 OSX 上的 Eclipse 中设置了一个 tomcat V8.5 服务器。我已经设置了一个默认 servlet 来处理来自以下 html 表单的获取请求。我可以启动服务器并加载 index.html,但是每当我单击表单上的提交时,我都会收到 404 错误。这段代码来自一位教授并在她的 PC 上工作,所以我假设我在 OSX 上的服务器存在设置问题。有谁知道我应该先看哪里?我的教授不愿意帮助诊断 OSX 问题。我不确定我需要提供的所有信息到底是什么,很高兴向愿意提供帮助的任何人提供更多详细信息!提前致谢!

Picture of my project structure

<form action="http://localhost:8080/CyberFlix0/CyberFlixServlet"     method="get">
  Film Title: <input type="text" name="film_title"><br>
  <input type="submit" value="Submit">
</form>

我的 doGet 函数:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
}

Full Servlet Code:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class CyberFlixServlet
*/
@WebServlet("/CyberFlixServlet")
public class CyberFlixServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public CyberFlixServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}

}

【问题讨论】:

  • 您是否将您的 servlet 映射到 web.xml 或者如果它是基于注释的,请检查一次路径
  • 您能否详细说明如何执行此操作?我不确定你的意思。
  • @Kevin Gardenhire:您可以通过:stackoverflow.com/questions/8198312/… 并发布完整的 servlet 和 web.xml 代码
  • XML 文件有 4000 多行,您需要查看什么具体内容吗?但它与任何默认值都没有变化。
  • 您通过什么 URL 访问index.html? 为什么你项目的 web.xml 文件有 4000 行长?

标签: java eclipse macos tomcat servlets


【解决方案1】:

像这样改变action标签的值:&lt;form action="/CyberFlixServlet" method="get"&gt;

【讨论】:

    【解决方案2】:

    如下所示使用 action="Cyber​​FlixServlet"

    <form action="CyberFlixServlet"     method="get">
      Film Title: <input type="text" name="film_title"><br>
      <input type="submit" value="Submit">
    </form>
    

    请确保您的项目中不存在任何问题,以检查任何问题 从窗口打开问题视图 -> 显示视图 -> 问题,如果有任何错误,请修复它

    如果你的项目有任何问题,eclipse会拒绝编译

    【讨论】:

      【解决方案3】:

      我从另一个帖子中提取了这个答案,但这解决了它。

      这是 tomcat 和 catalina 配置文件的问题:

      你要做的很简单:

      在eclipse中右击服务器tomcat 点击属性 点击切换位置导航视图左侧会出现一个小服务器 启动服务器后双击它 然后选择使用Tomcat安装并保存 这将解决常见的 404 问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-26
        • 2013-05-29
        • 1970-01-01
        • 2015-01-31
        • 2018-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多