java web中的路径问题
web路径中的“/”路径到底指的是什么,一定是http://localhost:8080/吗?但是我遇到了下面一个现象,望高人解释,帮我彻底解决路径问题:我建了一个上下文...
web路径中的“/”路径到底指的是什么,一定是http://localhost:8080/吗?但是我遇到了下面一个现象,望高人解释,帮我彻底解决路径问题:我建了一个上下文路径为struts的web project,
a.我在index.jsp中的一个表单上填写的action="/XXX",结果证明这里的"/"指的是http://localhost:8080/
b.我在namespace为“hello”的actin 的<result name="success">/success.jsp</result> 结果证明“/success.jsp”中的"/"指的是http://localhost:8080/struts
所以我的问题是为什么 a b两种情况中的“/”所指的内容会不同 展开
a.我在index.jsp中的一个表单上填写的action="/XXX",结果证明这里的"/"指的是http://localhost:8080/
b.我在namespace为“hello”的actin 的<result name="success">/success.jsp</result> 结果证明“/success.jsp”中的"/"指的是http://localhost:8080/struts
所以我的问题是为什么 a b两种情况中的“/”所指的内容会不同 展开
展开全部
如果我没猜错,楼主应该建的是dynamic web project。这个和你在tomcat里面的配置有关。
如果楼主用myeclipse建立dynamic web project,然后自动部署,它实际上是在
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
里面添加了个上下文环境即:
<Context path="/工程访问名(并不一定和你的工程名一致,url访问时需采用此访问名)" reloadable="true" docBase="你的工程目录" />,这样你的工程访问的时候,如果是在jsp的话,"/"就代表了工程所在的上下文环境localhost,此时你的工程就相当于localhost里面的一级目录而已,这个工程没有独立的访问域名。
另外你tomcat里面还有一种配置方式就是直接给你的工程创建一个独立的访问域名。
<Host name="工程域名" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" reloadable="true" docBase="你的工程所在的目录" />
</Host>。这样你的工程就可以通过一个独立的域名访问到,在jsp中,"/"依然是工程所在的上下文环境,但是由于你配置的工程不在依赖于其他Host的上下文环境,所以此时的"/"也就代表了你的工程根目录,此时和struts里面的"/"是一样的用法。
再来说说struts里面的"/",struts为了防止由于在上述tomcat配置中不同所导致的不同的访问方式,它特地将"/"解析成当前工程,而不是获取当前工程所在的上下文环境。
如果楼主用myeclipse建立dynamic web project,然后自动部署,它实际上是在
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
里面添加了个上下文环境即:
<Context path="/工程访问名(并不一定和你的工程名一致,url访问时需采用此访问名)" reloadable="true" docBase="你的工程目录" />,这样你的工程访问的时候,如果是在jsp的话,"/"就代表了工程所在的上下文环境localhost,此时你的工程就相当于localhost里面的一级目录而已,这个工程没有独立的访问域名。
另外你tomcat里面还有一种配置方式就是直接给你的工程创建一个独立的访问域名。
<Host name="工程域名" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" reloadable="true" docBase="你的工程所在的目录" />
</Host>。这样你的工程就可以通过一个独立的域名访问到,在jsp中,"/"依然是工程所在的上下文环境,但是由于你配置的工程不在依赖于其他Host的上下文环境,所以此时的"/"也就代表了你的工程根目录,此时和struts里面的"/"是一样的用法。
再来说说struts里面的"/",struts为了防止由于在上述tomcat配置中不同所导致的不同的访问方式,它特地将"/"解析成当前工程,而不是获取当前工程所在的上下文环境。
展开全部
"/"的确指的是http://localhost:8080/,在struts中由于是经过封装的,根目录被封装成了http://localhost:8080/xxx(xxx就是你的项目名)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道原因 不过我猜会不会是你图片路径写的是相对路径,试试绝对路径看看?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的已经答的很明确了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询