`

request.getContextPath()详解

 
阅读更多

<%=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。参考servlet中的接口:

 

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里。

 

实际应用中,一般用来解决jsp测试和生产环境路径不同的问题: 

<%
 String appContext = request.getContextPath();
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort() + appContext;
%>

分享到:
评论

相关推荐

    request.getcontextPath()_详解

    request.getcontextPath()详解 request.getcontextPath()是Java Web开发中常用的方法,用于获取当前Web应用程序的Context Path。Context Path是指Web应用程序的根目录,例如,一个名为“myapp”的Web应用程序,...

    java中request.getcontextPath()的意思.doc

    ### Java中`request.getContextPath()`的含义与应用场景详解 #### 一、`getContextPath()`的基本概念 在Java Web开发中,特别是在使用Servlet和JSP技术时,`request.getContextPath()`是一个非常重要的方法,用于...

    Java后端实现websocket与微信小程序端连接简单例子

    String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %&gt;   &lt;!DOCTYPE HTML&gt; &lt;html&gt;  &lt;head&gt; ...

    jsp中fckeditor的几种使用,一看便知。

    **JSP中的FCKeditor详解** FCKeditor是一款在Web应用中广泛使用的开源富文本编辑器,它允许用户在浏览器端进行类似Word的文本编辑操作,支持多种格式的文本、图片、链接等元素的插入与编辑。在JSP(Java Server ...

    从HttpServletRequest获取各种路径总结

    out.println("getContextPath: " + request.getContextPath()); out.println(" "); out.println("getServletPath: " + request.getServletPath()); out.println(" "); %&gt; ``` #### 四、其他获取路径的...

    JSP的request对象实例详解

    JSP的request对象实例详解 一 request对象定义 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求...

    DWR中JS的引用路径问题【前台web】

    ### DWR中JS的引用路径问题详解 #### 一、背景介绍 在Web开发中,JavaScript(简称JS)是前端开发的重要组成部分之一。Direct Web Remoting (DWR) 是一个强大的Java库,它使得JavaScript能够直接调用Java方法,极...

    JSP中param动作的实例详解

    JSP中param动作的实例详解 一 语法 ”参数名” value=”参数值”&gt; 常常与一起使用,作为其子标签存在。...String path = request.getContextPath(); String basePath = request.getScheme()+://+request.getSe

    BootStrap网页中代码显示codepre用法详解

    网页中代码的显示,包括行中代码显示;...String path = request.getContextPath(); String basePath = request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/; %&gt; &lt;hea

    Session.docx

    【Session技术详解】 Session是Web开发中用于保持用户会话状态的一种技术,它允许服务器端存储用户的状态信息,以便在用户的不同请求之间保持数据。在easymall应用中,Session被用来实现诸如记住用户名、登录状态...

    Java相对路径绝对路径总结

    例如,提交到a.jsp的action属性为`"/webapp/user/a.jsp"`或者使用`&lt;%=request.getContextPath()%&gt;`来动态获取Web应用的路径,即`"&lt;%=request.getContextPath()%&gt;/user/a.jsp"`。 - **JavaScript中的相对路径**: ...

    JSP 9大内置对象学习总结

    #### 一、Request对象详解 **1. 获取请求参数值** 在Web开发中,我们经常需要处理客户端发送过来的请求,并从中获取特定的参数值。JSP中的`request`对象允许我们轻松地访问这些参数。例如,当用户点击链接或提交...

    jsp引入pdf文档

    ### JSP引入PDF文档知识点详解 #### 一、概述 在Web开发中,有时需要将PDF文件嵌入到网页中供用户直接查看而无需下载。本文档将详细讲解如何使用JSP技术实现在网页上直接展示PDF文件的功能,具体包括JSP页面配置、...

    JSP中out对象的实例详解

    JSP中out对象的实例详解 一 什么是缓冲区 缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据。...String path = request.getContextPath(); String basePath = request.getScheme()+://+reque

    jsp中获取地址的写法

    ### jsp中获取地址的写法详解 在Java Server Pages (JSP) 技术中,经常需要获取当前页面所在的上下文路径(context path)以及基础路径(base path),这对于实现资源定位、URL重写等功能非常重要。下面我们将详细介绍...

    JAVA类,JSP,Servlet获取工程路径.txt

    2. **利用`request.getContextPath()`获取项目的上下文路径:** - 示例:如果项目名为“TEST”,则调用此方法返回的路径为`/TEST`。 3. **利用`request.getServletPath()`获取当前页面的目录全名:** - 示例:...

    java-servlet-转发AND路径(详解)

    Java Servlet 转发和路径详解 Java Servlet 转发是指一个 Web 组件将未完成的任务交给另一个 Web 组件继续做的过程。通常是一个 Servlet 将数据获取之后转交给 JSP 进行展现。在这个过程中,Servlet 需要将数据绑定...

    jsp_servlet路径问题

    - **Form表单的Action属性**:应该相对于服务器根目录(`http://192.168.0.1/`),如果提交到`a.jsp`,则可以写为`action="/webapp/user/a.jsp"`或`action="&lt;%=request.getContextPath()%&gt;/user/a.jsp"`。 - **...

Global site tag (gtag.js) - Google Analytics