一言以蔽之,JSP中的斜杠表示的是domain(域名),即类似http://10.129.129.129:8090/这种形式的。
下面详细描述。
------------------------------------------------------------------------------------------------------------
前提:项目名称或者Web App的名称是myFirstWebProject
1、先假设在index.jsp中,有一个form如下:
- <!-- <form action="/myFirstWebProject/myfirstservletname" method=get> -->
- <form action=<%=request.getContextPath() %>/myfirstservletname method=post>
- <!-- <form action=myfirstservletname method=post> -->
- <!-- <form action=myFirstWebProject/myfirstservletname method=post> -->
- <input type=text name=test />
- <input type=submit name='upload'>
- </form>
共4种情况,分别讲述如下:
a)/myFirstWebProject/myfirstservletname,最前面的那个斜杠在JSP中表示的意思是代表域名的意思,换句话说,我的域名是http://localhost:8081/,拼接起来就是http://localhost:8081/myFirstWebProject/myfirstservletname
b)<%=request.getContextPath() %>翻译过来就是/myFirstWebProject,剩下的同上。
c)相对路径:前面什么都不写表示web Root的根目录,即等于INDEX.JSP所在的目录,即http://localhost:8081/myFirstWebProject.
d)相对路径:利用c的知识,这里完整的路径应该是:http://localhost:8081/myFirstWebProject/myFirstWebProject/myfirstservletname,此时必须在web.xml再配置一个servlet mapping才可以。
以下是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">
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <servlet>
- <servlet-name>myfirstservletname</servlet-name>
- <servlet-class>servletPackage.bs.MyFirstServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>myfirstservletname</servlet-name>
- <url-pattern>/myfirstservletname</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>myfirstservletname</servlet-name>
- <url-pattern>/gg/hh/gg</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>myfirstservletname</servlet-name>
- <url-pattern>/gg/hh/gg1</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>myfirstservletname</servlet-name>
- <url-pattern>/myFirstWebProject/myfirstservletname</url-pattern>
- </servlet-mapping>
- </web-app>
2、关于web.xml中的路径
web.xml中的斜杠表示的和JSP中的不一样,它表示的是web App的名称,即http://localhost:8081/myFirstWebProject。
ref:浪曦尚学堂Servlet_Jsp视频。