1、表单提交方式get/post方式的区别
get方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据。
post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交。
安全上来讲,post方式相对安全(因为请求参数及值存放在实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏)。但是要注意,post方式并没有将数据加密。
2、表单处理
如何获得请求参数值
String request.getParameter(String paraName);要注意的问题: 如果paraName与实际的请求参数名不一致,则返回null。如果没有输入参数值,则返回"";
String[] request.getParameterValues(String paraName); 用在有多个请求参数名相同的情况下使用。
3、如何处理表单中的中文
浏览器会如何对表单中的数据进行编码
当表单采用post方式提交时,浏览器会按照打开该表单所在的页面的编码来对表单中的数据进行编码。
在html文件当中,添加以下代码的作用
<meta http-equiv="content-type“ content="text/html;charset=utf-8">
作用1:模拟http消息头(content-type),让浏览器以utf-8的编码格式来打开该页面(要确保html文件本身确定是使用 utf-8保存的)。
作用2:确保浏览器按指定的编码来对表单中的数据进行编码。
在html文件中,添加 <meta http-equiv=“content-type” content=“text/html;charset=utf-8”>另外,表单的提交方式必须是post。
在服务器端,使用servlet读取表单中的请求参数时:request.setCharacterEncoding(“utf-8”)。 这行代码的作用:设置解码时的编码格式。
如果servlet输出中文,要添加如下代码: response.setContentType(“text/html;charset=utf-8”)。这行代码的作用:
作用1:指定out.println输出时所使用的编码。
作用2:生成一个消息头content-type:text/html;charset=utf-8 告诉浏览器,返回的数据类型是html,编码是utf-8。这样,浏览器一定会以指定的编码来显示该页面。