HttpServletRequest中得到各种信息
1、获得domain:
StringBuffer url = request.getRequestURL();
String domain = url.delete(url.length() - request.getRequestURI().length(), url.length()).append("/").toString();
log.info("domain: " + domain); // http://www.baidu.com/
例:http://www.baidu.com/index.html
2、方式二:
- 从Request对象中可以获取各种路径信息,以下例子:
- 假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- String remoteAddress=request.getRemoteAddr();
- String servletPath=request.getServletPath();
- String realPath=request.getRealPath("/");
- String remoteUser=request.getRemoteUser();
- String requestURI=request.getRequestURI();
- out.println("path:"+path+"<br>");
- out.println("basePath:"+basePath+"<br>");
- out.println("remoteAddr:"+remoteAddress+"<br>");
- out.println("servletPath:"+servletPath+"<br>");
- out.println("realPath:"+realPath+"<br>");
- out.println("remoteUser:"+remoteUser+"<br>");
- out.println("requestURI:"+requestURI+"<br>");
- 结果:
- path:/WebDemo
- basePath:http://localhost:8683/WebDemo/
- remoteAddr:127.0.0.1
- servletPath:/index.jsp
- realPath:D:\apache-tomcat-6.0.13\webapps\WebDemo\
- remoteUser:null
- requestURI:/WebDemo/index.jsp
- 从上不难看出request各个对应方法所代表的含义
- 从request获取各种路径总结:
- request.getRealPath("url");//虚拟目录映射为实际目录
- request.getRealPath("./");//网页所在的目录
- request.getRealPath("../");//网页所在目录的上一层目录
- 假定你的web application(web应用)名称为news,你的浏览器中输入请求路径:http://localhost:8080/uploading/load.jsp
- request.getContextPath() => /uploading
- request.getServletPath() => /load.jsp
- request.getRequestURL() => http://localhost:8080/uploading/load.jsp
- request.getRealPath("/") => F:\learn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\uploading\
- 现在request.getRealPath("/") 这个方法已经不推荐使用了
- 可以使用
- ServletContext.getRealPath(java.lang.String) instead.
- request.getSession().getServletContext().getRealPath() 得到工程文件的实际物理路径,也就是绝对地址
- //Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request
- // eg. /manage/editExam.domethod=goExamSet&type=U
- String url = request.getRequestURI();
- //The returned URL contains a protocol, server name, port number, and server path, but it does not include query string parameters
- //eg. http://127.0.0.1:8080/manage/editExam.domethod=goExamSet&type=U
- StringBuffer url_buffer = request.getRequestURL();
- HttpServletRequest 的这两种方法都只能得到不包含参数的请求url,区别如下:
- 1 前者返回相对路径,后者返回完整路径
- 2 前者返回string ,后者返回stringbuffer
- 得到完整请求url可以通过如下方法,getQueryString()得到的是url后面的参数串,和前者相加就是带参数的请求路径了
- String queryString = request.getQueryString();
- ring fullPath = url + queryString; // 或者是url_buffer.toString()+queryString;
HttpServletRequest中得到各种信息的更多相关文章
- HttpServletRequest获取请求参数中所有的信息
/** * 获取客户端请求参数中所有的信息 * @param request * @return */ private Map<String, String> getAllRequestP ...
- ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中
ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中 ResquestInfoServlet.j ...
- springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如果controller、service、dao抛出此类异常说明是系统预期处理的异常信息。
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx ...
- 删除项目中的.svn信息
有时候我们新开发一个项目时,会将以前的项目从svn上down下来,然后复制一份.这样就会有个问题,项目中的svn信息就会一直存在.下面介绍删除方法: 1.新建一个.txt的文档.然后将下面代码粘贴到文 ...
- PHP中生成json信息的方法
<?php //php中生成json信息 //json_encode(数组/对象) $color = array('red','blue','green'); //[索引数组] echo jso ...
- java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息
1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...
- 下载sdk版本: 在hosts文件中追加以下信息
下载sdk版本:在hosts文件中追加以下信息: 74.125.113.121 developer.android.com 203.208.46.146 dl.google.com 203.208.4 ...
- 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)
在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了 ...
- iOS已发布应用中对异常信息捕获和处理
iOS已发布应用中对异常信息捕获和处理 iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的. iO ...
随机推荐
- Redis-cluster集群【第四篇】:redis-cluster集群配置
Redis分片: 为什么要分片:随着Redis存储的数据越来越庞大,会导致Redis的性能越来越差! 目前分片的方法: 1.客户端分片 在应用层面分片,程序里指定什么数据存放在那个Redis 优势: ...
- ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素
阅读目录 Bootstrap 栅格(Grid)系统 Bootstrap HTML元素 Bootstrap 验证样式 ASP.NET MVC创建包含Bootstrap样式编辑模板 小结 Bootstra ...
- jquery报错Uncaught ReferenceError: $ is not defined
- 【转】asp.net mvc 页面跳转
1.使用传统的Response.Redirect例如string url = "/account/create";Response.Redirect(url); 1.Server. ...
- Linux下,telnet命令如何退出
测试连接本地的memcached telnet 链接后是这样的: wangkongming@Vostro ~ $ telnet Trying 127.0.0.1... Connected to 127 ...
- Makefile-2
一.命令行参数 -n/--just-print/--dry-run/--recon 只显示命令,但不会执行命令,用于调试 makefile. -s/--slient/--quiet 禁止命令的显示 ...
- php防注入
引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和 ...
- nyoj 236拦截导弹 简单动归(java)
C/C++: #include<stdio.h> int main() { // freopen("250.txt","r",stdin); ],b ...
- UESTC 1851 Kings on a Chessboard
状压DP... Kings on a Chessboard Time Limit: 10000ms Memory Limit: 65535KB This problem will be judged ...
- c#中两种不同的存储过程调用与比较
存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与应用程序中的函 ...