Java Web 应用程序的字符编码问题

  Java Web 应用程序经常会出现乱码的情况,这里可以通过 Servlet API 中的标准 Filter 来实现,也可以在 Web 容器配置 URIEncoding。这些都依赖于浏览器的请求方式。

在 Web 容器的配置文件中配置 URIEncoding = "UTF-8" 使用 Servlet API 的标准 Filter 结果
地址栏中直接输入链接(含汉字) × 失败(编码成功)
地址栏中直接输入链接(含汉字) × 失败(编码成功)
地址栏中直接输入链接(含汉字) 失败(编码成功)
页面内的普通链接(a 标签,含汉字) × 编码成功,地址栏中直接显示汉字
页面内的普通链接(a 标签,含汉字) × 编码失败
页面内的普通链接(a 标签,含汉字) 编码成功,地址栏中直接显示汉字
form get 提交 × 编码成功,地址栏显示编码后的汉字
form get 提交 × 编码失败
form get 提交 编码成功,地址栏显示编码后的汉字
form post 提交 × 编码失败
form post 提交 × 编码成功
form post 提交 编码成功

因此,通过以上表格的总结,我们可以得出这样一个结论:URLEncoding 是针对 get 请求,Filter 是针对 post 请求。

时间: 2024-11-05 19:30:37

Java Web 应用程序的字符编码问题的相关文章

MVC模式在Java Web应用程序中的实现

MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创

Web渗透:PHP字符编码绕过漏洞总结

其实这东西国内少数黑客早已知道,只不过没有共享公布而已.有些人是不愿共享,宁愿烂在地里,另外的一些则是用来牟利. 该漏洞最早2006年被国外用来讨论数据库字符集设为GBK时,0xbf27本身不是一个有效的GBK字符,但经过 addslashes() 转换后变为0xbf5c27,前面的0xbf5c是个有 效的GBK字符,所以0xbf5c27会被当作一个字符0xbf5c和一个单引号来处理,结果漏洞就触发了. mysql_real_escape_string() 也存在相同的问题,只不过相比 adds

MVC在Java Web应用程序中的实现

一.MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. Model(模型)是应用程序中用于处理应用程序数据逻辑的部分. 通常模型对象负责在数据库中存取数据. View(视图)是应用程序中处理数据显示的部分. 通常视图是依据模型数据创建的. C

MVC模式在Java web 应用程序的实现

一.MVC简介 MVC(Model-View-Controller)模型-视图-控制器,最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观.软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能. Mode

Tomcat中部署Java Web应用程序的方式

Tomcat中部署Java Web应用程序的几种方式: #PetWeb是工程名 1.在TOMCAT_HOME\conf\server.xml文件的HOST节点中加入 <Context docBase="F:/workspaces/PetWeb" reloadable="false" path="/Pet"/> 其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开

java web start程序部署感慨

由于刚学习java,很多地方不懂,今天看到java web start方式部署程序然后就把自己的java程序打包成jar可执行的.新建了.jnlp文件,里面xml也写好了.然后把jar文件和jnlp文件放在了tomcat的webapps里面.在浏览器访问jnlp文件然后运行后发现程序无法运行,找了两个小时居然没找到.fuck!!!,最后实在是不知道咋解决了,问了下旁边同事,2秒钟告诉我哪里有问题了(我把utf-8写成了uft-8)我顿时想自杀的想法,大爷的,找了半天没找到问题原因,可能还是自己没

Tomcat中部署Java Web应用程序

在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署. 一.静态部署 静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问.以下3中方式都可以部署: 1.将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了.这种方式比较简单,访问地址如下:http://localhost:8080/PetWeb/ 2.这种方式可以不必将PetWeb目录拷贝到webapps下,直接在F:\部署.方法如下

Java Web---登录验证和字符编码过滤器

什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter),开发web应用时,如果编写的Java类实现了这个接口,则把这个Java类称之为过滤器Filter.通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截.简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理. 创建一个Filter的步骤 1

Java NIO之Charset类字符编码对象

介绍 java中使用Charset来表示编码对象 This class defines methods for creating decoders and encoders and for retrieving the various names associated with a charset. Instances of this class are immutable. This class also defines static methods for testing whether a