【发布时间】:2015-09-01 05:23:16
【问题描述】:
我是 servlet 编程的新手。
以下是我的示例 servlet 代码
Sample.Java
public class Sample extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
String name=req.getParameter("name");//will return value
pw.println("Welcome "+name);
pw.close();
}
}
Web.xml
<web-app>
<servlet>
<servlet-name>sampleservlet</servlet-name>
<servlet-class>Sample</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sampleservlet</servlet-name>
<url-pattern>/Sample</url-pattern>
</servlet-mapping>
</web-app>
Index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="Sample" method="get">
Enter your name<input type="text" name="name"><br>
<input type="submit" value="login">
</form>
</body>
</html>
我的问题
当我右键单击我的项目然后单击Run as -> Run on server 时,我选择了服务器,它要求我选择一个服务器,然后我选择要运行的服务器。在 Eclipse 窗口中打开一个浏览器窗口,其地址 URL 为http://localhost:8080/Sample/
当我点击 login 时,它给了我这样的错误,
HTTP 状态 404 - /Sample/welcome
类型状态报告
消息 /示例/欢迎
说明请求的资源不可用。
Apache Tomcat/7.0.62
截图
为什么会出现这样的错误?
其他详情
服务器:apache-tomcat-7.0.62 IDE:Eclipse Java EE 开普勒
我尝试解决问题的步骤
我试过这些,
结果
我在WEB-INF 文件夹中没有看到.class 文件。
结果
在“tomcat7\work\Catalina\localhost\your app”这个路径下,work文件夹是空的。
如果我需要发布更多详细信息,请告诉我。
IDE 中的目录结构
【问题讨论】:
-
查看项目结构/树会很有帮助。也许通过 IDE 的屏幕截图
-
您是否在
web.xml文件中输入了条目? -
@Stan 我已经添加了项目结构的截图。
-
这很奇怪。您已经写了
form action = Sample,但它正在寻找Sample/welcome。尝试首先重命名您的 Servlet 或项目,不要保持它们的名称相同。然后让我们看看会发生什么。 -
通过点击登录,网址将类似于localhost:8080/Sample/Sample?name=StackOverflow,因为您的表单操作是示例......
标签: java eclipse tomcat servlets