html 页面中 $(request.contextPath) 的应用有哪些条件,或是注意事项
3个回答
展开全部
<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。
但不用也可以吧,比如<a href="<%=request.getContextPath()%>/catalog.jsp">
我就直接用<a href="catalog.jsp">也行啊,这两个文件是在同一个目录下的
比如你要生成一个文件放在服务器上得一个目录下,你可以使用request.getContextPath()+/dir,组成一个完整得目录结构!
但在JSP文件里,通过request.getContextPath()得到的路径却为空,为什么?
你在context中没有配置path属性,所以你的工程文件就是在根目录下,相当于path="";即是你直接在浏览器中输入你的服务器ip就会到你的jsp页面,而不是tomcat的默认页面;所以你通过request.getContextPath()得到的字符串是为空的;它是获得虚目录的;
如果你想得到工程文件的实际物理路径,可通过:<%=request.getRealPath("/")%>,这样页面就会输出:d:/web
request.getScheme();
返回的协议名称,默认是http
request.getServerName()
返回的是你浏览器中显示的主机名
getServerPort()
获取服务器端口号 request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串,
如果项目为abc, <%=request.getContextPath()% >/ 将得到abc/,服务器端的路径则会自动加上,
<a href="XXXX.jsp"> 应该就是指当前路径下的这个xxx.jsp页面,有时候也可以在head里设置html:base
来解决路径的问题,不过用的最多的还是request.getContextPath。
我想在js文件中得到request.getContextPath()的值,不想在JSP中写太多的Javascript代码
一种方法是用hidden
<input type=hidden name=contextPath value=<%= request.getContextPath()>
再就是在本页面的js里面也是可以使用Scriptlet来赋值的
var a = '<%= request.getContextPath()>'
或者你赋值给一个hidden的控件都是可以的,然后js取,这样js可以不用写在jsp里
但不用也可以吧,比如<a href="<%=request.getContextPath()%>/catalog.jsp">
我就直接用<a href="catalog.jsp">也行啊,这两个文件是在同一个目录下的
比如你要生成一个文件放在服务器上得一个目录下,你可以使用request.getContextPath()+/dir,组成一个完整得目录结构!
但在JSP文件里,通过request.getContextPath()得到的路径却为空,为什么?
你在context中没有配置path属性,所以你的工程文件就是在根目录下,相当于path="";即是你直接在浏览器中输入你的服务器ip就会到你的jsp页面,而不是tomcat的默认页面;所以你通过request.getContextPath()得到的字符串是为空的;它是获得虚目录的;
如果你想得到工程文件的实际物理路径,可通过:<%=request.getRealPath("/")%>,这样页面就会输出:d:/web
request.getScheme();
返回的协议名称,默认是http
request.getServerName()
返回的是你浏览器中显示的主机名
getServerPort()
获取服务器端口号 request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串,
如果项目为abc, <%=request.getContextPath()% >/ 将得到abc/,服务器端的路径则会自动加上,
<a href="XXXX.jsp"> 应该就是指当前路径下的这个xxx.jsp页面,有时候也可以在head里设置html:base
来解决路径的问题,不过用的最多的还是request.getContextPath。
我想在js文件中得到request.getContextPath()的值,不想在JSP中写太多的Javascript代码
一种方法是用hidden
<input type=hidden name=contextPath value=<%= request.getContextPath()>
再就是在本页面的js里面也是可以使用Scriptlet来赋值的
var a = '<%= request.getContextPath()>'
或者你赋值给一个hidden的控件都是可以的,然后js取,这样js可以不用写在jsp里
追问
感谢您的回答, 我使用${request.contextPath} 是在html 页面中,同时使用的freemarker 模板技术;
不论是引入 js 或 css 和调用action中的方法, 都应用${requerst.contextPath}得 到根路径,请问在这种情况下使用 ${request.contextPath} 应该怎样操作才能得到相应的根路径
展开全部
el表达式里request域对象的内置对象是使用requestScope的,不过要获取项目名需要用
${pageContext.request.contextPath},用${requestScope.contextPath}不能获取
${pageContext.request.contextPath},用${requestScope.contextPath}不能获取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问:${request.contextPath}为什么有时候可以获取工程名称,有时候获取不到呢?还有${pageContext.request.contextPath}和${request.contextPath}有什么区别呢?我一直觉得${request.contextPath}不知道怎么来的?请教大侠指点.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询