我正在尝试在我的ubuntu PC中使用servlet示例:
http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/
以下是Tomcat下的目录结构。
Java类:
package com.mkyong;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo1 extends HttpServlet{
public void doGe(HttpServletRequest request, HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Hello Servlet Get</h1>");
out.println("</body>");
out.println("</html>");
}
}
的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.mkyong.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/Demo1</url-pattern>
</servlet-mapping>
</web-app>
启动Tomcat服务器,因为我能够看到http://localhost:8080
要运行servlet,我使用了URL http://localhost:8080/servlet/Demo1
但是得到的错误是&#34; HTTP状态404 - / servlet / Demo1&#34;。
Tomcat版本:Apache Tomcat / 7.0.52(Ubuntu)
可能缺少什么? 感谢。
答案 0 :(得分:1)
HttpServlet
的方法是doGet(HttpServletRequest req, HttpServletResponse resp)
而不是doGe()
。这可能是一个错误。检查servlet-name
中的url-pattern
和web.xml
。
我认为servlet-name
应为ServletDemo1
。
答案 1 :(得分:1)
您还应该查看Tomcat管理页面,了解应用程序是否已正确启动。
答案 2 :(得分:0)
我使用以下命令
捕获了tomcat日志# tail -f /var/log/tomcat7/catalina.out
在此之后我才知道,web应用程序部署目录是/ var / lib / tomcat7 / webapps / not / usr / share / tomcat7 / webapps /.
将目录结构移动到新位置。
正如@ silk_route11所建议的,方法名称doGet()中存在错误。
没有在<servlet-name>
进行任何更改。
现在,能够在浏览器上看到输出。 感谢。