好的,这应该是基本的,我之前通过eclipse和weblogic多次使用过servlet并没有问题。但是对于Tomcat 6,我遇到了Servlet映射问题。
的web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<description>
Servlet and JSP Examples.
</description>
<display-name>Servlet and JSP Examples</display-name>
<servlet>
<servlet-name>HelloWorldExample</servlet-name>
<servlet-class>HelloWorldExample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldExample</servlet-name>
<url-pattern>/HelloWorldExample</url-pattern>
</servlet-mapping>
</web-app>
我的web.xml位于我的WEB-INF文件夹中,我的servlet HelloWorldExample.class位于WEB-INF / classes /
中它们都位于tomcat / webapps / ch1 /
中据我所知,一切正常,但是经过数小时的试验和错误以及多次重启后,我仍然得到:
输入状态报告
message / ch1 / HelloWorldExample
说明请求的资源不可用。
http://localhost:8080/ch1/HelloWorldExample
目录结构的屏幕截图
如果有人能够指出我在哪里犯错,我会永远感激:)
答案 0 :(得分:2)
您应该将文件夹“ch1”放在 tomcat / webapps 下,而不是在tomcat / webapps / ROOT下。
请遵循以下文件夹结构:
tomcat:
--webapps
----ch1
--------META-INF
--------WEB-INF
----------classes
----------lib
----------web.xml
答案 1 :(得分:2)
您应该build and export a WAR file并将其部署在Tomcat上,然后它会自动转到正确的位置。另外,请注意web.xml的这一部分:
<servlet>
<servlet-name>HelloWorldExample</servlet-name>
<servlet-class>HelloWorldExample</servlet-class>
</servlet>
Servlet类需要是完全限定的类名,即: your.package.classname (如果使用默认包,请忽略,这通常是一种不好的做法)。当你处理这个问题时,我建议你安装Tomcat 7并利用Servlet 3.0的好处,即摆脱web.xml配置并使用servlet注释。更多信息:
答案 2 :(得分:0)
您的ch1
文件夹应位于webapps
下webapps/ROOT
答案 3 :(得分:0)
请将ch1文件夹从webapps
移至webapps/ROOT
请记住在此更改后restart the Tomcat Server