跟小博老师一起学Servlet ——Servlet取得请求参数

在Servlet的学习过程中,获取请求参数是个非常重要的知识点。上节小傅老师在讲解HttpServletRequest抽象类常用方法时,也提到了参数的取得,本节我们深入学习其原理和乱码问题。

数据存储方式

请求参数提交到容器后,数据会以Map的方式保存。其key是请求参数的名称是字符串类型,value就是对应的值是字符串数据类型。通过高层方法getParameter()与getParameterValues()分别取得单值与多值的参数,还可利用Map的知识点直接取得。

参数值

一般我们约定好请求参数才能取得其值,在请求参数不定或未知的情况下,可以利用操作Map的方式来取得所有的参数。

我们先看以下代码

1)

2)

跟小博老师一起学Servlet ——Servlet取得请求参数_第1张图片

3)

跟小博老师一起学Servlet ——Servlet取得请求参数_第2张图片

很明显第一段的编程效率高,第二段是对第一段的底层实现的解释。第三段代码充份利用Map的特性,先取得key然后取得对应的value。第二、三段看的还不是很明白的学员,借此机会正好复习下集合的知识,分析分析取到的key是有序列的还是无序集合。

第二、三段代码充份演示了请求参数的存储方式与取得的底层实现,其目地是便于大家的理解,在实际编程中还是使用高层方法比较方便。

中文乱

如果请求参数中包含中文,由于编、解码不一致,就有会出现乱码。我们根据提交的方式,要有针对性的处理。

客户端采用get提交,那我们可以在Tomcat的server.xml中调整编码值为GBK或GB2312。

对于POST提交出现的乱码,我们在取得参数前先设定编码值就可解决。

跟小博老师一起学Servlet ——Servlet取得请求参数_第3张图片

在未知是get还是post提交,将这二个配置一并设定就可有效解决请求参数的中文乱码问题。

你可能感兴趣的:(跟小博老师一起学Servlet ——Servlet取得请求参数)