声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
文章目录
4、get请求与post请求
(1)哪一些情况下,浏览器会发送get请求?
a,直接在浏览器地址栏输入某个地址。
b,点击链接
c,表单默认的提交方式
(2)哪一些情况下,浏览器会发送post请求?
a,设置表单method="post"。
(3)get请求的特点
a,请求参数会添加到请求资源路径的后面,只能添加
少量的参数(因为请求行只有一行,大约只能存放2K
左右的数据)。
b,请求参数会显示在浏览器地址栏(路由器会记录
请求地址)。
(4)post请求的特点
a,请求参数添加到实体内容里面,可以添加大量的
参数。
b,相对安全,但是,post请求不会对请求参数进行
加密处理(可以使用https协议来保证数据安全)。
5、如何获得请求参数值?
1) String request.getParameter(String paramName);
注意:如果paraName对应的值不存在,返回null。
2) String[] request.getParameterValues(String paramName);
当有多个参数名相同的时候,用该方法。
6、编码相关的问题
(1)servlet如何输出中文?
a,乱码问题产生的原因
默认情况下,out.println会使用"iso-8859-1"
来进行编码。
b,解决方式
response.setContentType("text/html;charset=utf-8");
注意,编码格式只要支持中文即可,比如,还可以设置为 gbk。
这行代码的作用有两个:
作用1:生成一个消息头(content-type),告诉
浏览器,服务器返回的数据类型和编码格式
作用2:也设置了out.println在输出时使用的编码格式。
(2)表单有中文参数,如何处理?
注意:
这里说的是表单有中文参数,表单post/get提交方式的编码处理问题。
初学者容易,直接写一个类似带中文的地址,在浏览器上进行测试,如
http://localhost:8080/web02/hello?name=yyh_帅气华
这样就不对了,说的不是一回事。
a,乱码问题产生的原因
当表单提交时,浏览器会对表单中的中文使用
浏览器打开表单所在的页面时的编码格式进行编码。
b,解决方式:
方式一:
step1,要保证表单所在的页面按照指定的编码格式打开。
<meta http-equiv="content-type"
content="text/html;charset=utf-8">
step2,让服务器按照指定的编码格式进行解码。
request.setCharacterEncoding("utf-8");
只对post请求有效。
方式二:
step1,同上。
step2,
name = new String(
name.getBytes("iso-8859-1"),"utf-8");
7、常识: 编码、解码、unicode编码
a,java语言在内存当中以unicode编码格式(字符集)
来保存一个字符。
b,编码:将unicode编码格式对应的字节数组转换成
某种本地编码格式(gbk,utf-8,gb2312)对应的字节
数组。
c,解码:将某种本地编码格式对应的字节数组转换成
unicode编码格式对应的字节数组。
8、练习:
9、初学-注意点:
- 修改Servlet里面代码,无需重启tomact,但要重新部署
- 修改项目名:项目名,Properties,MyEclipse,Web,Web Context-root,“/当前项目名”
- 测试地址,多在浏览器上尝试。不要在MyEclipse上
- Open With,System Editor,即会打开“光影看图”等软件【方便查看编辑、复制粘贴】
- Web项目中:包名里面有汉字和下划线,并没有报错