Spring MVC怎么获取request的请求参数
来源:互联网 发布:网络招聘怎么写 编辑:程序博客网 时间:2024/05/28 06:05
1. 通过@RequestParam绑定请求参数
使用@RequestParam绑定请求参数的值到Controller的方法入参中。
/** * 方式一,通过@RequestParam绑定请求参数 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @param msg URL中传递的请求参数 * @return */@RequestMapping(value="say",method=RequestMethod.GET)public ModelAndView say(@RequestParam("msg") String msg){//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", msg);}
2.通过RequestContextHolder上下文获取request对象
大部分情况下,这种方式是有效的!当请求为multipart类型的请求的时候,如文件上传,form表单的enctype类型为"multipart/form-data",这种情况下,RequestHolder.getRequest().getParameter()是得不到参数值的!!因为通过RequestHolder.getRequest()获取到的request对象org.apache.catalina.connector.RequestFacade的实例
不推荐使用这种方式,解决方案:直接将HttpServletRequest作为spring mvc的方法入参
/** * 方式二,通过RequestContextHolder上下文获取request对象 * 不推荐使用这种方式!! * 当请求为multipart类型的请求的时候,如文件上传,form表单的enctype类型为"multipart/form-data", * 这种情况下,RequestHolder.getRequest().getParameter()是得不到参数值的!! * 因为通过RequestHolder.getRequest()获取到的request对象是org.apache.catalina.connector.RequestFacade的实例 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say2此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @return */@RequestMapping(value="say2",method=RequestMethod.GET)public ModelAndView say2(){ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();HttpServletRequest request = servletRequestAttributes.getRequest();//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", request.getParameter("msg"));}
3.将HttpServletRequest作为spring mvc的方法入参
推荐使用这种方式,灵活!
/** * 方式三,直接将HttpServletRequest对象作为方法的入参 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say3此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @param request * @return */@RequestMapping(value="say3",method=RequestMethod.GET)public ModelAndView say2(HttpServletRequest request){//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", request.getParameter("msg"));}
4.具体的demo代码
GetRequestParameterController.java:
package edu.mvcdemo.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import org.springframework.web.servlet.ModelAndView;/** * @编写人: yh.zeng * @编写时间:2017-7-9 下午2:37:33 * @文件描述: 获取请求参数demo */@Controllerpublic class GetRequestParameterController {/** * 方式一,通过@RequestParam绑定请求参数 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @param msg URL中传递的请求参数 * @return */@RequestMapping(value="say",method=RequestMethod.GET)public ModelAndView say(@RequestParam("msg") String msg){//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", msg);}/** * 方式二,通过RequestContextHolder上下文获取request对象 * 不推荐使用这种方式!! * 当请求为multipart类型的请求的时候,如文件上传,form表单的enctype类型为"multipart/form-data", * 这种情况下,RequestHolder.getRequest().getParameter()是得不到参数值的!! * 因为通过RequestHolder.getRequest()获取到的request对象是org.apache.catalina.connector.RequestFacade的实例 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say2此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @return */@RequestMapping(value="say2",method=RequestMethod.GET)public ModelAndView say2(){ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();HttpServletRequest request = servletRequestAttributes.getRequest();//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", request.getParameter("msg"));}/** * 方式三,直接将HttpServletRequest对象作为方法的入参 * 1、使用RequestMapping注解来映射请求的URL,在本案例,处理/say3此URL的GET请求 * 2、返回值会通过视图解析器解析为实际的物理视图, 对于InternalResourceViewResolver视图解析器,会做如下解析 * 通过prefix+returnVal+suffix 这样的方式得到实际的物理视图,然后会转发到该实际的物理视图,在本案例, * 得到实际的物理视图是/jsp/say.jsp * @param request * @return */@RequestMapping(value="say3",method=RequestMethod.GET)public ModelAndView say2(HttpServletRequest request){//其中第一个参数为View Name,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的return new ModelAndView("say", "msg", request.getParameter("msg"));}}
配置的视图解析器为InternalResourceViewResolver,配置如下:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean>
say.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> ${requestScope.msg}</body></html>
效果:
项目demo见https://github.com/zengyh/MavenSpringMvcDemo.git
阅读全文
0 0
- Spring MVC怎么获取request的请求参数
- Spring MVC 的请求参数获取
- Spring MVC 的请求参数获取
- Spring MVC 的请求参数获取
- Spring MVC 的请求参数获取
- Spring MVC 的请求参数获取
- Spring MVC请求参数获取的方法
- Spring MVC 获取请求参数
- SPRING MVC获取request参数方法:
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- SPRING MVC 的请求参数获取的几种方法
- Spring MVC 的请求参数获取的几种方法
- SPRING MVC 的请求参数获取的几种方法
- SPRING MVC 的请求参数获取的几种方法
- HTML笔记(HTML元素-表单)
- Python字符串相似度检测
- 使用Pytohn从MongoDB中提取文档相关链接学习
- 机器学习-----之KNN近邻算法(python3)
- 矩形覆盖
- Spring MVC怎么获取request的请求参数
- Unity之简易任务队列TaskQueue
- 解决:下载的项目链接到本地数据库
- shell递归遍历目录
- 优化CNNs--量化方法进展介绍
- 【android】简易发短信软件
- 简单的几种请求实现(retrofit由于时间问题,下次补上)
- STM32 复位及时钟 应用总结(1)
- Java--JDK的安装与配置、安装Eclipse