文档章节

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

博为峰教研组
 博为峰教研组
发布于 2017/02/14 19:09
字数 536
阅读 9
收藏 0

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提交,将这二个配置一并设定就可有效解决请求参数的中文乱码问题。

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
JavaWeb基础知识点之Servlet

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w1lgy/article/details/79169527 一、servlet的概述 servlet是采用java编写的运行在服务器上的程序,用于接受...

我巴巴
01/26
0
0
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

泥沙砖瓦浆木匠
2015/08/21
0
50
Servlet容器原型(一)—— 一个简单的Servlet容器

在javax.servlet.servlet中的Servlet接口,声明有5个方法,签名如下: public void int(ServletConfig config) throws ServletException;public void service(ServletRequest request, Serv......

Glogo
2014/02/27
0
0
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

KeepMoving
2015/08/25
0
0
JavaEE细节问题04——Servlet细节问题

1.<url-patten>的优先级问题 大家都知道,在web.xml中可以通过配置<servlet>和<servlet-mapping>来让一个servlet真正跑起来,而让服务器通过URL定位到 具体serlvet的标签就是通过<url-patten......

Lunqi
2015/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式锁的那点事

在多线程并发的情况下,要保证一个代码块在同一时间只能由一个线程访问,可以用锁来保证,比如java的synchronized语法以及ReentrantLock类等等。这样子可以保证JVM进程内的多个线程同步执行。...

无语年华
24分钟前
2
0
apahce启用http2

需要前置条件传送门 其实前置做完了,h2是很简单的事 1.apache启用http2_module 2.打开apche的配置文件,写上 Protocols h2 http/1.1 3.重启apache,打开浏览器看看吧...

gcudwork
40分钟前
1
0
redis-string

set key value 设置值 set命令有以下选项: ex senconds :为健设置秒级过期时间 px millisencondes :为健设置毫秒级过期时间 nx :健不存在时候,可以设置成功,用于添加 xx : 与nx相反,不...

拐美人
45分钟前
2
0
正弦 余弦 角度 用于画时钟

<html> <head> <title>时钟</title> </head> <style> #canvas{ background: #1977ca } </style>......

一箭落旄头
今天
4
0
驰狼课堂

http://www.chilangedu.com/

求是科技
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部