[MVC] 深入浅出Spring MVC
转:http://4925054.blog.51cto.com/4915054/1176855

<ignore_js_op style="word-wrap: break-word;">
- /user/*/createUser
- 匹配/user/aaa/createUser、/user/bbb/createUser等URL。
- /user/**/createUser
- 匹配/user/createUser、/user/aaa/bbb/createUser等URL。
- /user/createUser??
- 匹配/user/createUseraa、/user/createUserbb等URL。
- /user/{userId}
- 匹配user/123、user/abc等URL。
- /user/**/{userId}
- 匹配user/aaa/bbb/123、user/aaa/456等URL。
- company/{companyId}/user/{userId}/detail
- 匹配company/123/user/456/detail等的URL。
复制代码
<ignore_js_op style="word-wrap: break-word;">

- 将报文体转换为字符串绑定到方法入参中
- @RequestMapping(value= "/handle41")
- publicString handle41(@RequestBody StringrequestBody ) {
- System.out.println(requestBody);
- return "success";
- }
复制代码
- 读取一张图片,并将图片数据输出到响应流中,客户端将显示这张图片
- @ResponseBody
- @RequestMapping(value= "/handle42/{imageId}")
- public byte[]handle42(@PathVariable("imageId") String imageId) throwsIOException {
- System.out.println("load image of"+imageId);
- Resource res = newClassPathResource("/image.jpg");
- byte[] fileData=FileCopyUtils.copyToByteArray(res.getInputStream());
- return fileData;
- }
复制代码
- @RequestMapping(value= "/handle43")
- publicString handle43(HttpEntity<String> httpEntity){
- long contentLen = httpEntity.getHeaders().getContentLength();
- System.out.println(httpEntity.getBody());
- return "success";
- }
- @RequestMapping(params= "method=login")
- public ResponseEntity<String>doFirst(){
- HttpHeaders headers = new HttpHeaders();
- MediaType mt=newMediaType("text","html",Charset.forName(“UTF-8"));
- headers.setContentType(mt);
- ResponseEntity<String> re=null;
- String return = newString("test");
- re=newResponseEntity<String>(return,headers, HttpStatus.OK);
- return re;
- }
复制代码
<ignore_js_op style="word-wrap: break-word;">
-wrap:
<ignore_js_op style="word-wrap: break-word;">
<ignore_js_op style="word-wrap: break-word;">
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>*.jpg</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>*.js</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>*.css</url-pattern>
- </servlet-mapping>
复制代码
- Tomcat,Jetty, JBoss, and GlassFish 默认 Servlet的名字 --"default"
- GoogleApp Engine 默认 Servlet的名字 -- "_ah_default"
- Resin 默认 Servlet的名字 --"resin-file"
- WebLogic 默认 Servlet的名字 -- "FileServlet"
- WebSphere 默认 Servlet的名字 --"SimpleFileServlet"
复制代码
- <!-- 对静态资源文件的访问-->
- <mvc:resourcesmapping="/images/**" location="/images/" />
复制代码
- <mvc:default-servlet-handler/>
复制代码
- DefaultAnnotationHandlerMapping的order属性值是:0
- <mvc:resources/>自动注册的 SimpleUrlHandlerMapping的order属性值是:2147483646
- <mvc:default-servlet-handler/>自动注册 的SimpleUrlHandlerMapping的order属性值是: 2147483647
复制代码
[MVC] 深入浅出Spring MVC的更多相关文章
- 深入浅出Spring MVC
摘要 本文旨在详细分析SpringMVC工作原理以及作为开发者如何基于SpringMVC做扩展.因为SpringMVC分析的文章比较多,所以本文重点讲解如何利用SpringMVC的扩展点实现我们的需求 ...
- Spring MVC - 配置Spring MVC
写在前面的话: 现在开始一段新的学习历程:Spring MVC.还是按照原来的三步走学习模式(what.why.how)进行讲解. 1.Spring MVC是什么(what) Spring MVC属于 ...
- java MVC架构-spring mvc,struct2(理解)
MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...
- Spring MVC 笔记 —— Spring MVC 文件上传
文件上传 配置MultipartResolver <bean id="multipartResolver" class="org.springframework.w ...
- spring MVC(十)---spring MVC整合mybatis
spring mvc可以通过整合hibernate来实现与数据库的数据交互,也可以通过mybatis来实现,这篇文章是总结一下怎么在springmvc中整合mybatis. 首先mybatis需要用到 ...
- 【MVC】Spring MVC常用配置
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--conf ...
- 【Spring MVC】spring mvc中相同的url请求返回不同的结果
在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码, ...
- 【spring mvc】spring mvc POST方式接收单个字符串参数,不加注解,接收到的值为null,加上@RequestBody,接收到{"uid":"品牌分类大”},加上@RequestParam报错 ---- GET方式接收单个参数的方法
spring mvc POST方式 接收单个参数,不加任何注解,参数名对应,接收到的值为null spring mvc POST方式 接收单个参数,加上@RequestBody,接收到参数格式:{&q ...
- Spring MVC(二)--Spring MVC登陆实例
本文通过一个简单的登陆实例实现Spring MVC的流程,同时整合 MyBatis使用,流程是这样的: 1.访问一个URL进入登陆界面 2.输入正确的用户名和密码,成功则进入index页面,否则留在登 ...
随机推荐
- 使用.bat 文件,批量编译项目文件。
使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次 path %path%;D:\Program Files\Microsof ...
- 第一个Sprint冲刺第十天
讨论成员:邵家文.李新.朱浩龙.陈俊金 工作:第一个计时功能完成,还有一些复杂的公式已完成. 关于github其实我们团队,还没有搞清楚github的真正用途,我们尚要花时间去学习如 ...
- Ubuntu12.04更新openssl使用源码
下载openssl新版本源码和编译安装 wget ftp://ftp.openssl.org/source/openssl-1.0.2f.tar.gz tar zxf ./openssl-1.0.2f ...
- Java多线程的实现
记得面试的时候,面试官问了Java多线程实现的方式有几种,它们之间的区别是什么?作为一个Java新手,将最近的学习总结如下: 1.Java多线程实现方式 Java多线程实现方式主要有三种:继承Thre ...
- 343. Integer Break
Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...
- TensorFlow简单介绍和在centos上的安装
##tensorflow简单介绍: TensorFlow™ is an open source software library for numerical computation using dat ...
- C与Python变量的区别
C中变量有类型,代表一定内存. 而Python变量只是封装过的指针,没有类型.如果不指向对象,就没有意义,更谈不上类型. python中 a=b,和C中 a=b是完全不同的两个操作.前者只是指针(引用 ...
- activiti工作流数据库表详细介绍 (23张表)
Activiti的后台是有数据库的支持,所有的表的表名都以ACT_开头,表名的第二部分是用来表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repositor ...
- URAL 1930 Ivan's Car(BFS)
Ivan's Car Time limit: 1.5 secondMemory limit: 64 MB The world is in danger! Awful earthquakes are d ...
- 【usaco】patrol
很长时间都没想出来的简单题,看了题解才写出来,还是naive 原题: FJ有个农场,其中有n块土地,由m条边连起来.FJ的养牛场在土地1,在土地n有个新开张的雪糕店.Bessie经常偷偷溜到雪糕店,当 ...