**1. request.getParameter** 转载于:http://blog.csdn.net/moreorless/article/details/4199677

一、 简单的对比

request.getParameter用的比较多,相对熟悉

request.getParameterValues(String   name)是获得如checkbox类(名字相同,但值有多个)的数据。   接收数组变量 ,如checkobx类型    
request.getParameter(String   name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型

例:

1. 三个名字相同的text标签

<input type=”text” name=”test” value=”1” />
<input type=”text” name=”test” value=”2” />
<input type=”text” name=”test” value=”3” />

request.getParameterValues(“test”)   —————– [1, 2, 3]

request.getParameter(“test”)             —————— 1

${paramValues.test}

${param.test}

2. checkbox

<input type=”checkbox” name=”habit” value=”read”>看书

<input type=”checkbox” name=”habit” value=”movie”>电影

<input type=”checkbox” name=”habit” value=”game”>游戏

request.getParameterValues(“habit”)

二、与此相关的话题——隐含对象

1. JSP隐含对象(Implicit Object)

所谓隐含对象,是指当编写jsp网页时,不必做任何声明就可以直接使用的对象。 JSP2.0定义了九个隐含对象

request response pageContext session application out conifg page exception

这里只提一下request 和 response 两个对象

request 对象表示客户端请求的内容,比如我们从request中取得了用户输入的内容,实现了javax.servlet.http.HttpServletRequest接口

response对象表示响应客户端的结果。

上面我们使用了request的两个方法getParameter 和 getParameterValues,其实request还有其他几个比较重要的方法,这里只涉及几个获取请求参数的方法

String getParameter(String name)                     取得name的参数值

String[] getParameterValues(String name)        取得所有name的参数值

Enumeration getParameterNames()                  取得所有的参数名称

Map<String, String[]> getParameterMap()        取得request的所有参数的一个映射

//

Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
Returns:
an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.

//

response等其他几个隐含对象也有非常重要的身份,有机会专门整理一下,宣扬一下它们的显赫地位。

2. EL隐含对象

EL即Experssion Language,自JSP2.0后正式成为JSP的标准规范之一,支持Servlet2.4/JSP2.0的Container也就相应的支持EL语法。

一个常见的形式如,<c:out value=”${ 3 + 7 * 4}” />

EL的隐藏对象有11个 PageContext PageScope RequestScope sessionScope applicationScope

param paramValues header headerValues cookie initParam

其中param 和 paramValues即对相应ServletRequest.getParameter(String name)和ServletRequest.getParameterValues(String name)

  • SpringMVC后台控制层获取参数的方式
  • 转载于:http://825635381.iteye.com/blog/2196911

    在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解

    一、基本使用,获取提交的参数
    后端代码:

    Java代码  
    1. @RequestMapping(“testRequestParam”)
    2. public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {
    3. System.out.println(inputStr);
    4. int inputInt = Integer.valueOf(request.getParameter(“inputInt”));
    5. System.out.println(inputInt);
    6. // ……省略
    7. return “index”;
    8. }
     @RequestMapping("testRequestParam")
    public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {  System.out.println(inputStr);
    int inputInt = Integer.valueOf(request.getParameter("inputInt"));
    System.out.println(inputInt);// ......省略
    return "index";
    
    }   

    前端代码:

    Html代码  
    1. <form action=“/gadget/testRequestParam” method=“post”>
    2. 参数inputStr:<input type=“text” name=“inputStr”>
    3. 参数intputInt:<input type=“text” name=“inputInt”>
    4. </form>
    <form action="/gadget/testRequestParam" method="post">  参数inputStr:<input type="text" name="inputStr">  参数intputInt:<input type="text" name="inputInt">
    </form>

    前端界面:

    执行结果:
    test1
    123

    可以看到spring会自动根据参数名字封装进入,我们可以直接拿这个参数名来用

    二、各种异常情况处理
    1、可以对传入参数指定参数名

    Java代码  
    1. @RequestParam String inputStr
    2. // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错
    3. @RequestParam(value=“aa”) String inputStr
    @RequestParam String inputStr
    // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错
    @RequestParam(value="aa") String inputStr

    错误信息:
    HTTP Status 400 - Required String parameter ‘aa’ is not present

    2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传

    Java代码  
    1. // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有
    2. @RequestMapping(“testRequestParam”)
    3. public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr, HttpServletRequest request)
    // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有
    @RequestMapping("testRequestParam")
    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)

    3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以

    Java代码  
    1. @RequestMapping(“testRequestParam”)
    2. public String filesUpload(@RequestParam(value=“aa”, required=true) String inputStr,
    3. @RequestParam(value=“inputInt”, required=false) int inputInt
    4. ,HttpServletRequest request) {
    5. // ……省略
    6. return “index”;
    7. }
       @RequestMapping("testRequestParam")
    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, @RequestParam(value="inputInt", required=false) int inputInt,HttpServletRequest request) {  
    // ......省略
    return "index";
    
    }

    解决方法:
        “Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”

request.getParameter和SpringMVC后台控制层获取参数的方式相关推荐

  1. Request获取参数封装方式

    浏览器请求界面 1.获取参数手动封装数据 @WebServlet("/ServletDemo4") public class ServletDemo4 extends HttpSe ...

  2. springbootGetmapping获取参数的方式

    Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 今天在学习Springboot中遇得到了一个问题,放一段 ...

  3. springboot 中 Getmapping获取参数的方式

    Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 @PathVaribale 获取url中的数据 @Req ...

  4. SpringBootController控制层接收参数的几种常用方式

    第一类:请求路径参数 1.@PathVariable 获取路径参数.即url/{id}这种形式. 2.@RequestParam 获取查询参数.即url?name=这种形式 例子 GET http:/ ...

  5. java比较器参数只传进去一个_post请求springMVC后台,只传一个参数,后台用一个字符串接受,参数名对应,但入参却为null,求讲解和解决,谢谢...

    如果在用,事少来最差端在事路原们这制码效移,动参数前面加上@requestBody 接受的就是个js朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏on串 前台代码: shuoAdd ...

  6. SpringBoot 通过AJAX获取参数的方式 List集合

    声明: GET和POST方式我将所有我能想到的组合都进行了一边测试,发现GET只能传递不含有List<自定义类型>的JSON数据 POST没有限制. 前端: <script type ...

  7. SpringMVC学习:控制层(Controller)基于注解详解

    文章目录 一.URL映射Controller的方法返回值 二.SpringMVC各类注解详解 (一) @Controller (二) @RequestMapping 1.基本用法 2. path属性或 ...

  8. SpringMVC——重定向(不带参数重定向、带参数重定向、FlashAttribute、RedirectAttribute)

    SpringMVC Controller间跳转,需重定向. 分三种情况:(1)不带参数跳转(2)带参数拼接url形式跳转(3)带参数不拼接参数跳转,页面也能显示. 1.不带参数重定向 需求:在列表页面 ...

  9. springmvc拦截器对请求参数解密_springMvc使用拦截器自定义处理参数

    前言: 这两天开发遇到一个需求,那就是在后台接收到请求后,能不能自定义添加参数呢? 我们知道request中是能获取到前端获取的参数的,但是在后端不能再往parameter中添加参数了,虽然可以使用r ...

最新文章

  1. Binary XML file line #98: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lan
  2. python【蓝桥杯vip练习题库】ADV-183分苹果(差分数组 离线区间)
  3. Sping-Spring表达式语言SpEL
  4. 这年头,胡萝卜也靠不住了
  5. stopwatch_在Java中衡量执行时间– Spring StopWatch示例
  6. Airflow 中文文档翻译和改进活动 | ApacheCN
  7. 计算机三级之嵌入式系统学习笔记9
  8. 自己动手写操作系统学习笔记(一)---MBR,PBR,BPB,文件系统
  9. 科学计算方面的计算机应用,计算机在科学计算方面的应用
  10. GPGPU-Sim学习(二)搭建GPGPU-Sim环境(ubuntuServer 10.04 安装GPGPU-Sim)
  11. 小武学fpgaStep2
  12. 面经---测试工程师web端自动化---大厂面试题
  13. HBase入门到精通——培训资料分享
  14. Linux 设置多指触控手势,以 Manjaro 为例
  15. Android应用代码混淆
  16. After Effects CC SDK 使用指南(二)—— 第一章 介绍 (上)
  17. win7无法通过网页登录ftp服务器,win7不能登录ftp服务器配置
  18. 单臂路由的使用及详细配置命令
  19. 电信行业数据分析服务(转)
  20. 数字游民让你实现边旅游边工作

热门文章

  1. 黑客大会所有资料(740G)
  2. 雪亮工程、平安城市以及天网工程这三者有什么区别?
  3. linux常用端口查询
  4. Win10删除IE图标
  5. PHP常用第三方包,php第三方包管理
  6. Android 使用FFmpeg3.3.9基于命令实现视频压缩
  7. 语法解析及Antlr
  8. 跟java有关的搞笑句子,有关搞笑的经典语句
  9. python | 尝试爬虫 xpath
  10. 如何迅速秒杀掉海量数据处理面试题