Eclipse中的Tomcat服务器:错误404提交给servlet

时间:2017-10-26 04:06:58

标签: java eclipse macos tomcat servlets

我在OSX上的Eclipse中设置了一个tomcat V8.5服务器。我已经设置了一个默认的servlet来处理来自以下html表单的get请求。我可以启动服务器并加载index.html,但每当我单击表单上的提交时,我收到404错误。这段代码来自一位教授并在她的电脑上工作,所以我假设我在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);
}

}

3 个答案:

答案 0 :(得分:0)

更改动作标记的值,如下所示:<form action="/CyberFlixServlet" method="get">

答案 1 :(得分:0)

使用action =“Cyber​​FlixServlet”,如下所示

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

请确保您的项目中没有任何问题,以便检查是否有任何问题 从窗口打开问题视图 - &gt;显示视图 - &gt;问题,如果有任何错误,请修复它

如果项目中存在任何问题,eclipse将拒绝编译

答案 2 :(得分:0)

我从另一篇文章中提取了这个答案,但这解决了这个问题。

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

你要做的只是:

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