SPRING MVC获取request参数方法:
@RequestParam /data/param?foo=bar 等价于 request.getParameter()
@PathVariable 获取URL路径 // http://127.0.0.1:8010/data/path/foo
@MatrixVariable 获取URL路径中协调的键值对参数
@RequestHeader 获取RequestHeader 中的信息
@RequestBody 获取request中 流信息
HttpEntity<String> 可以获取request中 流信息及getHeaders等信息
另外:编程时大都是使用表单提交request中的参数,很少设计二进制流的request提交;演示案例中使用AJAX方法来进行二进制流的提交,见JS代码;注意data属性,它是字符串而不是JSON对象,这里在HTTP传输时使用的是字符流
- $("form.textForm").submit(function(event) {
- var form = $(this);
- var button = form.children(":first");
- $.ajax({ type: "POST", url: form.attr("action"),
- data: "foo", contentType: "text/plain", dataType: "text", success: function(text) { MvcUtil.showSuccessResponse(text, button); }, error: function(xhr) { MvcUtil.showErrorResponse(xhr.responseText, button); }});
- return false;
- });
见代码:
- @Controller
- @RequestMapping("/data")
- public class RequestDataController {
- // /data/param?foo=bar
- @RequestMapping(value = "param", method = RequestMethod.GET)
- public @ResponseBody
- String withParam(@RequestParam String foo) {
- return "Obtained 'foo' query parameter value '" + foo + "'";
- }
- // http://127.0.0.1:8010/data/group?param1=foo¶m2=bar¶m3=baz
- @RequestMapping(value = "group", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public @ResponseBody
- String withParamGroup(JavaBean bean) {
- return "Obtained parameter group " + bean;
- }
- @RequestMapping(value = "produces", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
- public @ResponseBody
- JavaBean byProducesJson(JavaBean bean) {
- return bean;
- }
- // http://127.0.0.1:8010/data/path/foo
- @RequestMapping(value = "path/{var}", method = RequestMethod.GET)
- public @ResponseBody
- String withPathVariable(@PathVariable String var) {
- return "Obtained 'var' path variable value '" + var + "'";
- }
- // http://127.0.0.1:8010/data/matrixvars;foo=bar/simple
- // OUTPUT :Obtained matrix variable 'foo=bar' from path segment 'matrixvars'
- @RequestMapping(value = "{path}/simple", method = RequestMethod.GET)
- public @ResponseBody
- String withMatrixVariable(@PathVariable String path,
- @MatrixVariable String foo) {
- return "Obtained matrix variable 'foo=" + foo + "' from path segment '"
- + path + "'";
- }
- //http://127.0.0.1:8010/data/matrixvars;foo=bar1/multiple;foo=bar2
- //output: Obtained matrix variable foo=bar1 from path segment 'matrixvars' and
- // variable 'foo=bar2 from path segment 'multiple'
- @RequestMapping(value = "{path1}/{path2}", method = RequestMethod.GET)
- public @ResponseBody
- String withMatrixVariablesMultiple(@PathVariable String path1,
- @MatrixVariable(value = "foo", pathVar = "path1") String foo1,
- @PathVariable String path2,
- @MatrixVariable(value = "foo", pathVar = "path2") String foo2) {
- return "Obtained matrix variable foo=" + foo1 + " from path segment '"
- + path1 + "' and variable 'foo=" + foo2
- + " from path segment '" + path2 + "'";
- }
- // http://127.0.0.1:8010/data/header
- @RequestMapping(value = "header", method = RequestMethod.GET)
- public @ResponseBody
- String withHeader(@RequestHeader String Accept) {
- return "Obtained 'Accept' header '" + Accept + "'";
- }
- @RequestMapping(value = "cookie", method = RequestMethod.GET)
- public @ResponseBody
- String withCookie(@CookieValue String openid_provider) {
- return "Obtained 'openid_provider' cookie '" + openid_provider + "'";
- }
- @RequestMapping(value = "body", method = RequestMethod.POST)
- public @ResponseBody
- String withBody(@RequestBody String body) {
- return "Posted request body '" + body + "'";
- }
- @RequestMapping(value = "entity", method = RequestMethod.POST)
- public @ResponseBody
- String withEntity(HttpEntity<String> entity) {
- return "Posted request body '" + entity.getBody() + "'; headers = "
- + entity.getHeaders();
- }
- }
另外还有传统的获取方式直接在 controller方法中使用HttpServletRequest request ,HttpServletResponse response,HttpSession session ;springMVC就可以直接调用这些变量中保存的内容;
见代码:
- @Controller
- public class StandardArgumentsController {
- // request related
- @RequestMapping(value="/data/standard/request", method=RequestMethod.GET)
- public @ResponseBody String standardRequestArgs(HttpServletRequest request, Principal user, Locale locale) {
- StringBuilder buffer = new StringBuilder();
- buffer.append("request = ").append(request).append(", ");
- buffer.append("userPrincipal = ").append(user).append(", ");
- buffer.append("requestLocale = ").append(locale);
- return buffer.toString();
- }
- @RequestMapping(value="/data/standard/request/reader", method=RequestMethod.POST)
- public @ResponseBody String requestReader(Reader requestBodyReader) throws IOException {
- return "Read char request body = " + FileCopyUtils.copyToString(requestBodyReader);
- }
- @RequestMapping(value="/data/standard/request/is", method=RequestMethod.POST)
- public @ResponseBody String requestReader(InputStream requestBodyIs) throws IOException {
- return "Read binary request body = " + new String(FileCopyUtils.copyToByteArray(requestBodyIs));
- }
- // response related
- @RequestMapping("/data/standard/response")
- public @ResponseBody String response(HttpServletResponse response) {
- return "response = " + response;
- }
- @RequestMapping("/data/standard/response/writer")
- public void availableStandardResponseArguments(Writer responseWriter) throws IOException {
- responseWriter.write("Wrote char response using Writer");
- }
- @RequestMapping("/data/standard/response/os")
- public void availableStandardResponseArguments(OutputStream os) throws IOException {
- os.write("Wrote binary response using OutputStream".getBytes());
- }
- // HttpSession
- @RequestMapping("/data/standard/session")
- public @ResponseBody String session(HttpSession session) {
- StringBuilder buffer = new StringBuilder();
- buffer.append("session=").append(session);
- return buffer.toString();
- }
- }
最后上传界面截图:
相关推荐
NULL 博文链接:https://json20080301.iteye.com/blog/1870028
赠送jar包:sentinel-spring-webmvc-adapter-1.8.0.jar; 赠送原API文档:sentinel-spring-webmvc-adapter-1.8.0-javadoc.jar; 赠送源代码:sentinel-spring-webmvc-adapter-1.8.0-sources.jar; 赠送Maven依赖信息...
最新的Spring3.2 参考文档,高清版,适合于Kindle看
Spring MVC Step-By-Step 源码。 学Spring MVC 的入门例子。采用MyEclipse 开发完成!
spring mvc 3.2 + mybatis3.2 + jsp + jstl + jquery + OSCache + freeMarker + mysql 用户登陆用统一的认证登陆接口:shiro; 前台用freeMarker 模板,还有 jsp!
赠送jar包:springfox-spring-webmvc-3.0.0.jar; 赠送原API文档:springfox-spring-webmvc-3.0.0-javadoc.jar; 赠送源代码:springfox-spring-webmvc-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-...
dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis, dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis整合
基于struts-2.3.3+spring-3.2+hibernate-4.1.0的完整实例,可下载直接在myeclipse8.5上导入工程直接运行,实例经测试成功!
赠送jar包:springfox-spring-webmvc-3.0.0.jar; 赠送原API文档:springfox-spring-webmvc-3.0.0-javadoc.jar; 赠送源代码:springfox-spring-webmvc-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-...
赠送jar包:sentinel-spring-webmvc-adapter-1.8.0.jar; 赠送原API文档:sentinel-spring-webmvc-adapter-1.8.0-javadoc.jar; 赠送源代码:sentinel-spring-webmvc-adapter-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:spring-webmvc-5.3.10.jar; 赠送原API文档:spring-webmvc-5.3.10-javadoc.jar; 赠送源代码:spring-webmvc-5.3.10-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.10.pom; 包含翻译后的API...
spring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jarspring-webmvc-portlet-3.2.7.RELEASE.jar
【2018最新】spring,mvc实训报告-优秀word范文 (14页).docx【2018最新】spring,mvc实训报告-优秀word范文 (14页).docx【2018最新】spring,mvc实训报告-优秀word范文 (14页).docx【2018最新】spring,mvc实训报告-优秀...
translation-spring-mvc-4-documentation, Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿
ControllerAdvice spring mvc 3.2 统一错误页面控制器
Spring Web model-view-controller (MVC)框架是围绕 DispatcherServlet 设计的,并分发请求到处理程序(handler),Spring MVC支持可配置的处理程序映射(handler mapping),视图解析(view resolution)、 区域设置...
赠送jar包:spring-webmvc-5.3.15.jar; 赠送原API文档:spring-webmvc-5.3.15-javadoc.jar; 赠送源代码:spring-webmvc-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-5.3.15.pom; 包含翻译后的API...
赠送jar包:spring-webmvc-5.2.15.RELEASE.jar; 赠送原API文档:spring-webmvc-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-webmvc-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-webmvc-...
Spring MVC MultiActionController---多动作控制器 博客介绍: http://blog.csdn.net/sunshine_love/article/details/8842261 更换web.xml中web-config.xml即可尝试不同方法解析器,如有问题,请博客回复。欢迎交流...
从github下载spring-framework-3.2.x源码,且已成功构建eclipse版本,可以直接下载导入eclipse进行spring源码分析!