1.Form表单的提交
A.先说说提交方式,比较常用的有两种 get 和 post ,当然还有其他的提交方式,如 pull 、header 、等等。
由form表单里面的Methed属性控制(默认为GET方式)
GET:
①把数据放在协议的头部
②可以在浏览器的地址栏里面看到
③安全性不高
④只能提交最多256个字符
POST:①把数据放在协议的体部
②不可以在浏览器的地址栏中看到
③安全性高
④数据的长度是没有限制的
⑤明确指定使用POST提交,否则默认都用GET
B.拿到你在form表单里面填写的各项数据
request.getParameter(String key); //key 为表单中输入框的中的name属性的值
2.乱码问题
原则:字符从编写到显示都采用一种编码
A.控制字符编写的编码
Eclipse中Window->Preferences–>输入 endoding–>可以对各种文件设置编码(css、html、xml、jsp)–>Encoding(GBK、UTF-8)随便选一个
这样的话你新建出来的文件的编码格式就为你设置的编码格式了。
B.数据传输上控制
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”);
C.request接收表单提交中文参数乱码问题解决
get方式提交表单:
对于以get方式传输的数据,request即使设置了以指定的编码接收数据也是无效的(至于为什么无效我也没有弄明白),默认的还是使用ISO8859-1这个字符编码来接收数据,客户端以UTF-8的编码传输数据到服务器端,而服务器端的request对象使用的是ISO8859-1这个字符编码来接收数据,服务器和客户端沟通的编码不一致因此才会产生中文乱码的。
解决办法:
1) 在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题。
String name = request.getParameter("name");//接收数据
name =new String(name.getBytes("ISO8859-1"), "UTF-8") ;//获取request
对象以ISO8859-1字符编码接收