`
laughingchs
  • 浏览: 69257 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

j2ee小记

    博客分类:
  • j2ee
 
阅读更多

在server端获取客户端ip地址:http://hi.baidu.com/brnz/blog/item/2a0cc7c096079138e5dd3bb5.html

 

  public String getIpAddr(HttpServletRequest request) {

        String ip = request.getHeader("x-forwarded-for");

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

            ip = request.getHeader("Proxy-Client-IP");

        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

            ip = request.getHeader("WL-Proxy-Client-IP");

        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

            ip = request.getRemoteAddr();

        }

        return ip;

    }

 

 

Charset编码基础

1. 通过Java Script发送的表单,总是用UTF-8编码的。

2. 直接在浏览器地址栏里输入包含参数的URL,根据不同的浏览器和操作系统的设置,会有不同的结果:

     例如,中文Windows中,无论ie还是firefox,经试验,默认都以GBK来编码参数。IE对直接输入的参数,连URL encoding也没做。

     而在mac系统中,无论safari还是firefox,经试验,默认都是以UTF-8来编码参数。

 

 

 

参数值entity解码

浏览器在提交表单时,如果发现被提交的字符不能以当前的charset来编码,浏览器就会把该字符转换成&#unicode;这样的形式。例如,假设一个表单页面的content type为:text/html; charset=ISO-8859-1。在这个页面的输入框中输入汉字“你好”,然后提交。你会发现,提交的汉字变成了这个样子:param="你好"

 

解析GET请求的参数

GET请求是最简单的请求方式。它的参数以URL编码的方式包含在URL中。当你在浏览器地址栏中敲入“http://localhost:8081/user/login.htm?name=%E5%90%8D%E5%AD%97&password=password”这样一个址址的时候,浏览器就会向localhost:8081服务器出如下HTTP请求:

GET /user/login.htm?name=%E5%90%8D%E5%AD%97&password=password HTTP/1.1
Host: localhost:8081

GET请求中的参数是以application/x-www-form-urlencoded方式和特定的charset编码的。假如用来编码URL参数的charset与应用的默认charset不同,那么你必须通过特殊的参数来指定charset(参见第 7.2 节 “<set-locale> -设置locale区域和charset字符集编码”):

GET /user/login.htm?_input_charset=UTF-8&name=%E5%90%8D%E5%AD%97&password=password HTTP/1.1

可是,上面的请求在不同的Servlet引擎中,会产生不确定的结果。这是怎么回事呢?

原来,尽管<set-locale>会调用request.setCharacterEncoding(charset)这个方法来设置input charset编码,然而根据Servlet API的规范,这个设定只能对request content生效,而不对URL生效。换句话说,request.setCharacterEncoding(charset)方法只能用来解析POST请求的参数,而不是GET请求的参数。

那么,应该怎样处理GET请求的参数呢?根据URL规范,URL中非US-ASCII的字符必须进行基于UTF-8的URL编码。然而实际上,从浏览器到服务器,没有人完全遵守这些规范,于是便造成了一些混乱。目前应用服务器端,我们所遇到的,有下面几种不同的解码方案:

 

 

http://www.openwebx.org/docs/requestcontexts.html

     

     

    分享到:
    评论

    相关推荐

      Flex整合J2EE开发小记+源码下载

      标题中的“Flex整合J2EE开发小记+源码下载”揭示了本次讨论的主题,即如何将Adobe Flex技术与Java企业版(J2EE)框架相结合进行应用开发,并且提供了相关的源代码供学习和参考。Flex是一种用于构建富互联网应用程序...

      j2ee.jar架包

      j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar...

      j2ee j2ee j2ee j2ee j2ee j2ee

      j2ee j2ee j2ee j2ee j2ee j2ee j2ee j2ee j2ee

      J2EE指南(J2EE中文教材)

      它包括了组成J2EE平台的技术以及描述如何开发J2EE组件并部署在J2EE软件开发包上。 这篇指南不是为J2EE服务器及工具供应商准备的,它没有解释如何实现J2EE结构,也没有解释J2EE软件包。J2EE规范描述了J2EE结构并可以...

      J2EE开发之常用开源项目小记

      这篇小记主要关注了几个关键领域:持久层、MVC框架、视图层、JavaScript库以及缓存技术。下面将详细阐述这些知识点。 1. **持久层**: - **Hibernate**:是一个流行的ORM(对象关系映射)框架,允许开发者以面向...

      J2EE J2EE J2EE J2EE

      J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE

      J2EE 指南 J2EE中文教材

      ### J2EE 指南知识点详解 #### J2EE 概述 J2EE(Java 2 Platform, Enterprise Edition)是一种广泛应用于企业级应用程序开发的平台标准和技术框架。它基于Java SE,并针对大型分布式系统提供了更为丰富的特性和功能...

      J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 )

      Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是 Sun Microsystems 推出的用于构建分布式、多层企业级应用的框架。它为开发者提供了多种服务和组件模型,包括Java Servlets、JavaServer Pages ...

      j2ee实例 j2ee实例j2ee实例

      J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的框架,它提供了服务器端的编程模型和运行环境,支持多种服务,如事务处理、安全、集群、数据库连接等。本实例集合将...

      J2ee试题汇总J2ee试题J2ee考试题

      Java企业版(J2EE,现称为Java EE)是一个用于构建企业级分布式应用程序的平台,它基于Java技术,提供了一套全面的API和服务。这份"J2EE试题汇总"包含了大量关于J2EE的试题,旨在帮助学习者检验和提升在J2EE领域的...

      j2ee包介绍j2ee包j2ee包j2ee包

      **J2EE包介绍** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的企业版,用于构建和部署分布式企业级应用程序。J2EE包通常包含一系列的库和技术,这些技术涵盖了从数据库连接、事务处理到Web服务等多个...

      J2EE体系架构介绍.ppt

      J2EE 体系架构介绍 J2EE(Java 2 Platform, Enterprise Edition)是一种用于开发企业级应用程序的Java平台。J2EE 体系架构是指基于 J2EE 平台所构建的应用程序架构。 HandsOnJ2EE 体系架构介绍 J2EE 体系架构是...

      J2EE指南(J2EE tutorial )

      ### J2EE指南知识点梳理 #### 一、J2EE平台简介 - **定义与背景**:J2EE(Java 2 Platform, Enterprise Edition)是一个用于开发和部署可移植、健壮、可伸缩且安全的多层Web应用的企业级Java平台。1993年8月,随着...

      j2ee.jar j2ee.jar

      j2ee.jar j2ee.jar j2ee.jar j2ee.jar j2ee.jar

      J2EE1.5 api文档

      **J2EE 1.5 API 文档详解** J2EE 1.5 API文档是Java企业版(Java Enterprise Edition)开发人员的重要参考资料,它详细介绍了J2EE 1.5版本中的各种组件、接口、类和方法,为开发者提供了全面的API规范和技术指导。...

      J2EE网上购物系统

      【J2EE网上购物系统】是一个基于Java企业版(J2EE)技术构建的电子商务平台。J2EE是Oracle公司推出的用于开发分布式、多层应用程序的框架,它提供了丰富的服务和组件模型,使得开发者能够构建可扩展且健壮的网络应用...

      非常简单的J2EE购物车

      【标题】:“非常简单的J2EE购物车” 【描述】:“非常简单的J2EE购物车是一个基础的电子商务项目,旨在帮助初学者理解J2EE技术在构建web应用程序时的应用,特别是如何实现一个基本的购物车功能。这个项目可能涵盖...

    Global site tag (gtag.js) - Google Analytics