`

Request 对象

阅读更多

1、利用request对象获取客户端IP

     如何在request中获取用户的真实IP对于经过F5代理的应用系统,request.getRemoteAddr()得到的IP为F5的地址,无法获取用户的真实IP。获取用户真实IP的方法如下:

1、在F5中进行配置:将HTTP Profile改为http-forwards。这样,在HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。

2、修改取IP的方法:
    String IP = request.getHeader("x-forwarded-for");
        if(IP == null || IP.length() == 0) { 
        IP = request.getRemoteAddr(); 
    }

3、如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢? 
  答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。 
  如: 
  X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100 
  用户真实IP为: 192.168.1.110

 

2、request对象获取页面所有参数、参数值

//request.getParameterMap()得到页面的键值对集合(返回值是map集合) 
Map YeMianMap =  request.getParameterMap();
//为页面参数创建迭代器
Iterator itar = YeMianMap.keySet().iterator();
while (itar.hasNext()) {
	//根据参数,取参数的值
	String zhi = request.getParameter(itr.next().toString());
	if(null != zhi){
		//将页面传入的值拼接
		str.append(zhi.toString());
		str.append("_");
	}
}

 

3、将页面传送的参数、值键值对重新封装

    在java web项目中虽然可以通过request.getParameterMap()很轻松的获得参数Map,但得到的Map和普通Map是不一样的,是被锁定的,不能像操作常规Map那样进行put、get等操作.
    该方法将得到参数Map返回为可操作的普通Map
 /**
  * 从request中获得参数Map,并返回可读的Map
  * @param request
  * @return
  */
 @SuppressWarnings("unchecked")
 public static Map getParameterMap(HttpServletRequest request) {
  // 参数Map
  Map properties = request.getParameterMap();
  // 返回值Map
  Map returnMap = new HashMap();
  Iterator entries = properties.entrySet().iterator();
  Map.Entry entry;
  String name = "";
  String value = "";
  while (entries.hasNext()) {
   entry = (Map.Entry) entries.next();
   name = (String) entry.getKey();
   Object valueObj = entry.getValue();
   if (null == valueObj) {
    value = "";
   } else if (valueObj instanceof String[]) {
    String[] values = (String[]) valueObj;
    for (int i = 0; i < values.length; i++) {
     value = values[i] + ",";
    }
    value = value.substring(0, value.length() - 1);
   } else {
    value = valueObj.toString();
   }
   returnMap.put(name, value);
  }
  return returnMap;
 }

 

 

   

分享到:
评论

相关推荐

    java中对象的作用,如何获取Request对象

    Request对象在Web应用中的主要作用有以下几点: 1. **参数获取**:Request对象可以用来获取HTTP请求中携带的参数,包括URL参数和POST数据。通过`getParameter()`和`getParameterValues()`方法,开发者可以获取单个...

    JAVAEE中Servlet实例Response与Request对象方法调用范例

    Request对象是用于获取客户端发送的请求信息的,包括请求参数、请求头、请求URL等。HttpServletRequest提供了多种方法来获取这些信息,例如: 1. `getParameter(String name)`:获取指定名称的请求参数值,如果不...

    实例详解JSP内置对象--request对象

    实例详解JSP内置对象--request对象 request对象是JSP中的内置对象之一,它提供了访问HTTP请求信息的功能。在基于Web的开发中,request对象扮演着极其重要的角色。本文将通过实例详解request对象的使用和掌握。 一...

    JSP 内置对象:request 对象.pptx

    JSP 内置对象:request 对象 JSP 内置对象是 Web 容器加载的一组类,它不像一般的 Java 对象那样用 new 去获取实例,而是可以直接在 JSP 页面使用的对象。隐式对象的名称是 JSP 的保留字。JSP 使用隐式对象来访问...

    2022年实习十七使用ASP对象Request对象和Response对象.ppt

    "使用ASP对象Request对象和Response对象编写ASP程序" 本篇文章主要介绍了使用ASP对象Request对象和Response对象编写ASP程序的方法。Request对象和Response对象是ASP中两个非常重要的内建对象,分别用于获取客户端的...

    Request对象主要方法

    在深入探讨`Request`对象的主要方法之前,我们首先需要理解`Request`对象的基本概念及其在Web开发中的核心作用。`Request`对象是Web应用程序中处理客户端请求的关键组件,它封装了来自客户端的所有请求数据,包括但...

    Request对象.pptx

    Request对象的主要功能包括以下几个方面: 1. **获取请求参数**: - `getParameter(String name)`:这是最常用的方法,用于获取指定名称的参数值。如果请求中不存在该参数,它将返回`null`;如果有多个相同名称的...

    JSP的Request对象练习源代码

    在这个"JSP的Request对象练习源代码"中,我们很可能会看到如何利用`HttpServletRequest`接口来实现以下功能: 1. **获取请求参数**:`Request`对象提供了`getParameter()`方法,用于获取URL中传递的查询参数或者...

    【ASP.NET编程知识】Asp.net内置对象之Request对象(概述及应用).docx

    ASP.NET 编程知识之 Request 对象概述及应用 Request 对象是 ASP.NET 中的一个内置对象,主要用于获取来自客户端的数据,如用户填入表单的数据、保存在客户端的 Cookie 等。该对象提供了许多有用的属性和方法,...

    Request对象和乱码解决.doc

    以下是对Request对象和乱码解决的详细讲解。 1. Request对象的作用: Request对象提供了获取客户端发送的数据的方法,包括请求参数、请求头和请求体等信息。例如,`Request.getParameter()`用于获取单个请求参数的...

    ASP网络编程之request对象

    ### ASP网络编程之request对象详解 #### 一、概述 在ASP动态网页编程技术中,`request`对象是一个非常重要的组成部分。它主要用于从客户端获取各种信息,这些信息对于构建动态内容和服务至关重要。本文将深入探讨`...

    2022年实习十七-使用ASP对象Request对象和Response对象.ppt

    此外,Request对象还有其他属性和方法,如Cookies集合用于获取Cookie数据,Querystring集合用于GET方式传递的数据,ServerVariables集合则可以获取服务器端的一些环境变量信息。 Response对象则是负责构建并发送回...

    request域对象的实例代码

    使用`RequestDispatcher`的`forward()`方法可以将当前请求转发到另一个资源(如Servlet、JSP),在整个转发过程中,Request对象保持不变,这意味着在转发前设置的属性在转发的目标页面仍然可以访问。 以下是一个...

    《ASP动态网页制作》request对象的form方法和querystring方法[借鉴].pdf

    ASP动态网页制作之request对象的form方法和querystring方法 《ASP动态网页制作》request对象的form方法和querystring方法是 ASP 内建的获取客户端信息的方法。Request 对象是学生开始学习动态网页制作的基础,掌握...

    新版精品ASP系列教程:第课-Request对象及其使用.pptx

    【Request对象及其使用详解】 在ASP(Active Server Pages)编程中,Request对象是至关重要的一个内置对象,它负责从客户端浏览器收集用户输入的信息。Request对象主要用于处理HTTP请求,包括通过POST或GET方式传递...

    java web学习_浅谈request对象中get和post的差异

    Java Web 学习之 Request 对象中 GET 和 POST 的差异 摘要:本文将对 Java Web 中 Request 对象中 GET 和 POST 方法的差异进行分析和比较,通过代码示例和输出结果,展示 GET 和 POST 方法的不同之处,并分析其优...

    request对象与作用

    request对象与作用,很宝贵的资源。。 如:&lt;%=request.ServerVariables("server_name")%&gt;获取域名 Request.ServerVariables(Url) 返回服务器地址 Request.ServerVariables(Path_Info) 客户端提供的路径信息 ...

    第8课WEB数据库Request对象及其使用.pptx

    Request对象是ASP(Active Server Pages)中核心的内置对象之一,它在Web开发中扮演着至关重要的角色,因为它负责从客户端浏览器收集信息。Request对象主要通过HTTP请求获取数据,这些数据可以是表单数据、URL查询...

Global site tag (gtag.js) - Google Analytics