关于JavaServlet的 The requested resource (****) is not avail
今天被这个问题困了一天...终于解决了...
非常感谢对面宿舍的七公子和回归...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名 -->?
?? <servlet-name>Servlet</servlet-name>?
? <!-- Servlet的实现类 --> ?
? <servlet-class>HelloServlet</servlet-class>?
</servlet>
■<servlet-mapping>元素<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>中的类名,如果该类是在一个包里的话,则应为:包名.类名。
今天上网查的时候大家都说要保持路径一致,当时不明白,什么叫保持路径一致呢...现在总算是有些了解了...
?
加油↖(^ω^)↗