今天被这个问题困了一天...终于解决了...
非常感谢对面宿舍的七公子和回归...O(∩_∩)O~
位于项目test1中的WebRoot下WEB-INF中的web.xml 里的内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
</web-app>
正确的访问url: http://localhost:8080/test1/servlet
反问出错的url: http://localhost:8080/test1/servlet/HelloServlet
解释如下:
< servlet >
<!-- Servlet 名 -->
< servlet -name>Servlet</ servlet -name>
<!-- Servlet 的实现类 -->
< servlet -class> HelloServlet </ servlet -class>
</ servlet >
< servlet -mapping>
<!-- Servlet 名 -->
< servlet -name>Servlet</ servlet -name>
<!– 访问 Servlet 的相对路径 -->
< url -pattern>/ servlet </ url -pattern>
</ servlet -mapping>
在访问时,url地址是: http://localhost:port/项目名称/web.xml中配置的<url-pattern></url-pattern>里的内容
后面不用再加servlet的名字了 ,因为url-pattern里的就是访问servlet的相对路径,只要访问url中的和 配置文件中的 保持一致就行了...
另外,<servlet-class>中的类名,如果该类是在一个包里的话,则应为:包名.类名。
今天上网查的时候大家都说要保持路径一致,当时不明白,什么叫保持路径一致呢...现在总算是有些了解了...
加油↖(^ω^)↗