文档章节

跟小博老师一起学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
黄浦
程序员
私信 提问
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
web 基础巩固——JSP基础

本文按照官网文档总结,但是有可能会理解错误,学习时尽量和其他网站进行对比,同时也欢迎指出错误,好让我及时改正 什么是JSP页面? JSP页面是一个文本文档,包含两种类型的文本:静态数据,...

SXJR
2018/11/26
0
0
JSP运行原理与JSP隐式对象(9个)

一、JSP运行原理 Web容器(Servlet引擎)接收到.jsp为扩展名的URL访问请求时,它将把该访问请求交给JSP引擎去处理,JSP引擎负责解释和执行JSP页面。 当Web容器接收到客户端的访问请求时,它将...

KYZGJ
2014/04/14
0
0
Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配...

ArlenXu
2015/01/24
0
0
Servlet基础

Servlet简介:Servlet是sun公司提供的一门用于开发动态web资源的技术,sun公司在API中提供了一个Servlet接口,用户若想完成一个动态web资源,需要完成以下两个步骤: ----1、编写一个Java类,...

晨曦之光
2012/05/16
231
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式之数据库和缓存双写一致性方案解析

为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 ![] 但是在更新缓存方面,对于更新...

hensemlee
28分钟前
3
0
怎么学习大数据

最近有很多人在找,大数据是怎么学?需要学什么技术以及这些技术的学习顺序是什么?今天有时间我把个问题总结成文章分享给大家。 那大数据处理技术怎么学习呢?首先我们要学习Java语言和Lin...

董黎明
28分钟前
1
0
MySQL 常用数据存储引擎区别

mysql有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的。这篇文章主要简单概述一下常用常见的 MySQL 引擎...

吴伟祥
30分钟前
1
0
MySQL学习笔记之三排序和过滤

在数据库的使用中排序和过滤也是经常的操作 排序检索数据,关键字order ##1.按照某个列名排序 普通排序mysql> select * from user;+----+--------+-----+-----------------------+-----+|...

凌宇之蓝
34分钟前
1
0
编译GDAL2.3.0的C#接口

编译完GDAL和JAVA接口后,如果需要使用C#调用,就需要编译C#的接口。方法如下: 注意:使用的SWIG版本不能使用太高版本,否则,会报一堆的类型未找到的错误,我是无从下手。使用swig2.0.7(据...

会哭的鳄鱼
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部