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

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

数据存储方式

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

参数值

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

我们先看以下代码

1)

2)

3)

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

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

中文乱

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容