1 action后跟的路径分为两种写法:
首先,action支持相对路径
1) ../page.jsp表示当前页面的上一级目录中的page.jsp
2)jsps/page.jsp表示当前目录jsps中的page.jsp
以form1.jsp举例
<form action="./connectSql.jsp"> <input type="submit" value="登录"> </form>
在”./connectSql.jsp"中,”./“代表form1.jsp所在的目录,也就是web目录,找到web目录相当于找到了web/WEB-IF/web.xml,在此路径下就能找到connectSql.jsp,当然由于form1.jsp本身就在web目录下,可以省略"./" 因此也可以直接写action="pass"同样也绝对路径
action支持绝对路径,这里的绝对路径用一个单斜杠表示,“/”指的是当前jsp的根目录,所有jsp文件的根目录就是web目录
因此:form1.jsp中也能这样写
<form action="./connectSql.jsp"> <input type="submit" value="登录"> </form>
需要注意的一点是,绝对路径 /Demo/page.jsp表示Demo下的page.jsp
2 需要明确的是,action后跟的路径是相对于所在的jsp的,如下图:
form1.jsp在web目录下
3 action后跟的地址是为了找到web.xml设置的servlet的url-pattern
<servlet-mapping> <servlet-name>serdemo</servlet-name> <url-pattern>/pass</url-pattern> </servlet-mapping>
换句话说,action的路径可以随便写,但是在所指向servlet的url-pattern中要保持一致,而且必须要加上”/“,action中不需要加。
-
由于web的目录结构已经确定,只要找到项目的web目录,就相当于找到了web/web-inf/web.xml 明确一点,项目把什么内容部署到tomcat中?是把web下面的内容部署到tomcat,因此web目录就相当于项目的根目录
目录结构:
总结
action路径问题就是根据自身jsp的位置去找web目录 (在tomcat中部署的项目,根目录就是web目录)位置