开始

假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下

获取方式 结果 解释
request.getContextPath() /WebDemo 请求上下文
request.getScheme() http 请求协议
request.getServerName() localhost 请求地址
request.getServerPort() 8683 端口
request.getRemoteAddr() 127.0.0.1 请求地址
request.getServletPath() /index.jsp 页面名称
request.getRealPath("/")或request.getSession().getServletContext().getRealPath()(荐) D:\apache-tomcat-6.0.13\webapps\WebDemo\ 获取项目的绝对路径
request.getRemoteUser(); null 这个没太弄懂
request.getRequestURI() /WebDemo/index.jsp 获取页面的相对路径
request.getRequestURL() http://localhost:8683/WebDemo/index.jsp 获取页面的全路径
一般用法

很多项目中会采用以下用法
页面 A.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@include file="/context/mytags.jsp" %><!--此处引入公共的文件-->
<!DOCTYPE html>
<html>
<!--请求URL一般会写成以下形式,这个webRoot实际上是在上面引入的公共JSP:mytags.jsp里面定义的-->
${webRoot}/xxx/xxxx
<!--省略其他代码-->
</html>

mytags.jsp

<%@ taglib prefix="t" uri="/easyui-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>
<% 
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
%>
<c:set var="webRoot" value="<%=basePath%>" /><!--此处引入webRoot共使用-->
后台使用

request也可以在后台使用,比如如下代码就是获取项目中的一张图片并拼接成html代码返回到前台

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
StringBuilder urlSb = new StringBuilder(request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/");
if (!StringUtils.isEmpty(request.getContextPath())) {
    urlSb.append(request.getContextPath()).append("/");
}
urlSb.append("system/images/company_logo.png");
fhdTemplateDto.setLogo("<img src=" + urlSb.toString() + " height=\"81\" width=\"133\">");
HTML的JS中获取当前请求路径
var curPageUrl = window.document.location.href;	//http://127.0.0.1:8099/index#/template/file/index
var rootPath = curPageUrl.split("//")[0]+"//"+ curPageUrl.split("//")[1].split("/")[0];	//http://127.0.0.1:8099