jsp表单提交与中文乱码处理

1.HTTP方法

页面表单提交get和post方法是常用的HTTP方法,除此之外还有options、head、put、delete、trace等方法。可以这样认为:一个URL地址,它用于描述一个网络上的资源,二HTTP中的get、post、put、和delete就对应着这个资源的查询、添加、删除操作。通常这种情况下,只需要用到get和post方法,根据HTTP规范,get一般用于获取/查询资源的信息,post可用于修改服务器上面的资源。
在形式上,get请求的数据会附加在URL之后(就是把数据放置在HTTP协议头中),以“?”分割URL和传输数据,参数之间以“&”相连,如:
login.jsp?name=admin&password=123&verify=%E4%BD%A0%E5%A5%BD
如果数据是英文字母/数字,以原样发送,如果是空格,转换为“+”,如果为中文/其他字符,则直接把字符串用BASE64加密,得如%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII码。
post把提交的数据则放置在HTTP包的body中,不会像get方法一样附在URL之后。
get方法和post方法在提交信息的长度上有所不同,get方法是将请求参数加在URL的后面,因而信息长度受到URL长度的限制,这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的相知是2083字节(2K+35)。而理论上讲,post是没有大小限制的,HTTP协议规范也没有大小限制,起限制作用的是服务器处理程序的处理能力。实际使用的时候,通常将post就作为复杂和安全的数据传输方法,因为请求的信息是放在body中,所以安全、丰富。

2.中文乱码处理

java的内核和class文件是基于Unicode的,这使java程序具有良好的跨平台性,但也带来了一些中文乱码的问题。jsp文件本身编译时,jsp获取页面参数时和在jsp将变量输出到页面时都可能产生乱码。
首先jsp源文件中很可能包含中文,而jsp源文件的保存方式是基于字符流的,如果jsp编译过程中,使用的编码和源文件的编码不一致,就会出现乱码。对于这种乱码,在文件头加上<%@ page contentType="text/html;charset=GBK"%>或<%@ page contentType="text/html;charset=gb2312"%>基本上就会解决问题。
jsp在获取参数的时候,一般采用默认的编码方式,如果页面参数的编码类型和系统的编码类型不一致,很可能会出现乱码。解决这种乱码问题的基本方法是在页面上获取参数之间,指定request获取参数的编码方式:request.setCharacterEncording("GBK")页面request.setCharacterEncording("gb2312")。如果在jsp
将变量输出到页面时出现了中文乱码问题,则可以通过在页面代码中设置response.setContentType("text/html;charset=GBK")或response.setContentType("text/html;charset=gb2312")解决。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值