Servlet路径的总结
什么时候以/webappName
开头
什么时候以/
开头
什么时候不以/
开头
以/webappName
开头
客户端浏览器要处理的URL路径时,要以/webappName
开头,此时/
前代表的是主机名,如http://localhost:8080
例如页面有一个链接
<a href="/oa/login">登陆</a>
当你在浏览器点击这个超链接时,浏览器就会请求http://localhost:8080/oa/login
,所以,在需要浏览器请求的URL时,/
前省略了主机名
以/
开头
后台服务器处理请求URL路径时,以/
开头,例如在web.xml文件中配置的servlet
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>cn.qkmango.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
此处的<url-pattern>/login</url-pattern>
就是以/
开头,/
前省略了hostName和webappName,即/
前的路径是以当前项目(webapp)
后台服务器处理的是一个文件的路径时,以/
开头,此时/
前是相对于web目录(即网站的根目录),如在web.xml中设置错误页面的路径
web
├─errorPage
│ 404.htm
└─WEB-INF
web.xml
<error-page>
<error-code>404</error-code>
<location>/errorPage/404.html</location>
</error-page>
不以/
开头
目前只见于在web.xml中设置欢迎页面
<!--Servlet作为欢迎页面-->
<welcome-file-list>
<welcome-file>system/welcome</welcome-file>
</welcome-file-list>
<!--html文件作为欢迎页面-->
<welcome-file-list>
<welcome-file>html/welcome.html</welcome-file>
</welcome-file-list>
总结
-
客户端浏览器请求的URL时,省略了主机名(
http://localhost:8080
) -
后台服务器处理URL时,省略了项目名,以该项目路径为相对路径(
http://localhost:8080/taobao
) -
后台服务器处理物理文件时的文件路径,以该项目的根目录(web目录为相对路径)(
E:\webapp08\web
)
当分不清时,可以试着将省略的路径加上,看看拼接起来的路径是否正确