获得项目的绝对地址 getRequestURI,getRequestURL的区别

简介: java获得tomcat项目的绝对地址 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.

java获得tomcat项目的绝对地址

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

basePath : http://localhost:8080/test/

 

 getRequestURI,getRequestURL的区别

test1.jsp=======================

<a href ="test.jsp?p=fuck">跳转到test2</a>

test2.jsp=======================

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.println("basePath:"+basePath); out.println("<br/>"); out.println("getContextPath:"+request.getContextPath()); out.println("<br/>"); out.println("getServletPath:"+request.getServletPath()); out.println("<br/>"); out.println("getRequestURI:"+request.getRequestURI()); out.println("<br/>"); out.println("getRequestURL:"+request.getRequestURL()); out.println("<br/>"); out.println("getRealPath:"+request.getRealPath("/")); out.println("<br/>"); out.println("getServletContext().getRealPath:"+getServletContext().getRealPath("/")); out.println("<br/>"); out.println("getQueryString:"+request.getQueryString());

%>

 

显示结果:

 

显示结果:

basePath:http://localhost:8080/test/

getContextPath:/test

getServletPath:/test.jsp

getRequestURI:/test/test.jsp

getRequestURL:http://localhost:8080/test/test.jsp

getRealPath:D:\Tomcat 6.0\webapps\test\

getServletContext().getRealPath:D:\Tomcat 6.0\webapps\test\

getQueryString:p=fuck

在一些应用中,未登录用户请求了必须登录的资源时,提示用户登录,此时要记住用户访问的当前页面的URL,当他登录成功后根据记住的URL跳回用户最后访问的页面:

String lastAccessUrl = request.getRequestURL() + "?" + request.getQueryString();

目录
相关文章
|
Arthas 缓存 Java
Arthas 实战,助你解决同名类依赖冲突问题(上)
上篇文章『程序员需要了解依赖冲突的原因以及解决办法』中,阿粉分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,可能存在差异。 项目不同依赖应用,存在包名,类名完全一样的类。 第二种情况,往往是这个场景,本地/测试环境运行的都是好好的,上线之后测试就是不行。这其实与 JVM 类加载有关,本地/测试环境加载正确类,而生产环境加载错的类,为什么会这样? 主要有两个原因: 同一个类只会被加载器加载一次 不同环境,类的加载顺序不同
Arthas 实战,助你解决同名类依赖冲突问题(上)
|
1月前
|
存储 Java 编译器
经验总结:源代码-目标代码的区别
源代码是由程序员用高级语言编写的可读文本文件,需编译成机器可执行的二进制目标代码。目标代码由编译器生成,包含机器指令,对机器可读但对人类不易理解。源代码便于修改,而目标代码需重新编译以反映更改。源代码不受系统限制,目标代码则特定于系统。此外,链接程序处理源文件间及库函数的引用,将目标文件连接成可执行文件。Java中的本地方法则允许调用非Java语言编写的代码,实现与底层系统的交互,提高程序性能或实现特定功能。
117 4
|
3月前
|
存储 数据可视化 数据库
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)(2)
基于SpringBoot+Vue的商业辅助决策系统的设计与实现(源码+部署说明+演示视频+源码介绍)
42 1
|
5月前
|
缓存 NoSQL 数据库
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
36 1
|
5月前
|
缓存 监控 Java
Hysterix的概念、作用、使用方法
Hysterix的概念、作用、使用方法
49 0
|
数据可视化 Java 开发工具
如何比较同一个项目中不同版本的区别
如何比较同一个项目中不同版本的区别
215 0
|
JavaScript 开发者
Vite 在运行过程中是如何发现新增依赖的?
Vite 在运行过程中是如何发现新增依赖的?
223 0
|
编解码 前端开发 数据处理
前端基础向--从项目入手封装公共组件
前端基础向--从项目入手封装公共组件
298 0
|
Java 应用服务中间件 数据库连接
javaWeb项目的层级以及作用
javaWeb项目的层级以及作用
116 0
javaWeb项目的层级以及作用
|
JSON 算法 测试技术
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)