SpringMVC——笔记
// @SessionAttributes(value={"user"},types={String.class})
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
private static final String SUCCESS = "success";
@ModelAttribute
public void getUser(@RequestParam(value="id",required= false) Integer id,Map<String,Object> map){
if(id != null){
// 模拟从数据库中获取对象
User user = new User(1,"Tom","123456","tom@atguigu.com",12);
System.out.println("从数据库中获取一个对象:"+ user);
map.put("user",user);
}
}
@RequestMapping("/testModelAttribute")
public String testModelAttribute(User user){
System.out.println("修改:" + user);
return SUCCESS;
}
/*注意这个注解只能放在类的上面,不能放在方法上面*/
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String,Object> map){
User user = new User(1,"Tom", "123456","tom@123.com",15);
map.put("user",user);
map.put("school","atguigu");
return SUCCESS;
}
/*
* 目标方法可以添加 Map 类型的(实际上也可以Model 类型的 或ModeMap 类型的)参数
* */
@RequestMapping("/testMap")
public String testMap(Map<String,Object> map){
System.out.println(map.getClass().getName());
map.put("names",Arrays.asList("Tom","Jerry","Mike"));
return SUCCESS;
}
/*
* 返回值可是ModelAndView 类型
* 其中可以包含视图和模型信息
* SpringMVC 会吧ModelAndView 的model 数据放到request 域中。
* */
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
String viewName = SUCCESS;
ModelAndView modelAndView = new ModelAndView(viewName);
// 添加模型到ModelAndView 中
modelAndView.addObject("time",new Date());
return modelAndView;
}
@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request,HttpServletResponse response) {
System.out.println("testServletAPI,"+request+","+ response);
return SUCCESS;
}
/*
* Spring MVC 会按请求参数名和POJO 属性进行资助匹配
* 自动为该对象填充属性值,支持级联动,如 dept.deptId,dept.address.tel 等
* */
@RequestMapping("/testPojo")
public String testPojo(User user){
System.out.println("testPojo" + user);
return SUCCESS;
}
/*@CookieValue: 映射一个Cookie 值,属性同@RequestParam*/
@RequestMapping("/testCoookieValue")
public String testCoookieValue(@CookieValue("JSESSIONID")String sessionId){
System.out.println("CoookieValue:"+ sessionId);
return SUCCESS;
}
/*
* 映射请求头信息
* 用法同@RequestParam
* */
@RequestMapping("/testRequestHander")
public String testRequestHander(@RequestHeader(value="Accept-Language") String al){
System.out.println("testRequestHander,Accept-Language:"+ al);
return SUCCESS;
}
/*
* @RequestParam 来映射请求参数
* */
@RequestMapping(value="/testRequestParam")
public String testRequestParam(@RequestParam(value="username") String un,@RequestParam(value="age",required=false,defaultValue="0") int age){
System.out.println("testRequestParam,username:"+ un + age);
return SUCCESS;
}
/*
* Rest 风格的URL
* 以CRUD 为例:
* 新增: /order POST
* 修改: /order/1 PUT update?id=1
* 获取: /order/1 GET get?id=1
* 删除: /order/1 DELETE delete?id=1
*
* 如何发送PUT 请求和DELETE 请求呢?
* 1.需要配置 HiddenHttpMethodFilter
* 2.需要发送POST请求
* 3.需要在发送POST 请求时携带一个name="_method"值的隐藏域,值为 DELETE 或PUT
*
* */
@RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
public String testRestPut(@PathVariable Integer id) {
System.out.println("testRest PUT:" + id );
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
public String testRestDelete(@PathVariable Integer id) {
System.out.println("testRest DELETE:" + id );
return SUCCESS;
}
@RequestMapping(value="/testRest",method=RequestMethod.POST)
public String testRest() {
System.out.println("testRest POST" );
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
public String testRest(@PathVariable Integer id) {
System.out.println("testRest GET:" + id );
return SUCCESS;
}
/*
* @PathVariable 可以来映射URL 中的站位符到目标方法的参数中
*
* */
@RequestMapping("testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id) {
System.out.println("testPathVariable:" + id);
return SUCCESS;
}
@RequestMapping("testAntPath/*/abc")
public String testAntPath() {
System.out.println("testAntPath");
return SUCCESS;
}
/*
* 了解: 可以使用 params 和headers 来更加精确的映射请求,params 和headers 支持简单的表达式,
* */
@RequestMapping(value="testParamsAndHeaders",params={"username","age!=10"},headers={"Accept-Language=en-US,zh;q=0.8"})
public String testParamsAndHeaders(){
System.out.println("testParamsAndHeaders");
return SUCCESS;
}
/*
*
* 使用method 属性来指定请求方式
*
*
* */
@RequestMapping(value="/testMethod",method=RequestMethod.POST)
public String testMethod() {
System.out.println("testMethod");
return SUCCESS;
}
/*
*
*1. @RequestMapping 除了修饰方法还可以修饰类
*2.
*
* */
@RequestMapping("/testRequestMapping")
public String testRequestMapping(){
System.out.println("testRequestMapping");
return SUCCESS;
}
}
SpringMVC——笔记的更多相关文章
- SpringMVC笔记——SSM框架搭建简单实例
落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...
- SpringMvc 笔记
整理出来是 SpringMvc 笔记 方便以后查询 框架太多了 不经常使用 忘记的可能性很大 自己整理一套笔记 一看就明白了 1 对比 原始请求响应流程 1 发送请求 --> 2 控制层 --& ...
- 初学者的springmvc笔记02
springmvc笔记 springmvc拦截器,spring类型转换,spring实现文件上传/下载 1.SpringMVC标准配置 导入jar包:core contaner 在web.xml文件中 ...
- SpringMVC笔记
Struts1是采用单例模式的,在并发访问中出来资源混乱,于是出现Struts2被设计为多例的解决并发产生的 数据混乱由于Struts2引入了值栈,拦截器,OGNL等,,,是访问速度下降在原生的JSP ...
- 框架SpringMVC笔记系列 二 传值
主题:SpringMVC(第一节中再回顾复习一次) 学习资料参考网址: 1.http://www.icoolxue.com 2.http://haohaoxuexi.iteye.com/blog/13 ...
- 框架SpringMVC笔记系列 一 基础
主题:SpringMVC 学习资料参考网址: 1.http://www.icoolxue.com 2.http://aokunsang.iteye.com/blog/1279322 1.SpringM ...
- 传智springMVC笔记
springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...
- springmvc笔记(来自慕课网)
1.准备工作:springmvc相关的jar包. 2.这里我们先用eclipse来操作. 首先看一个接口编程,后面的所有知识点都是通过这个接口编程引出的. OneInterface.java pack ...
- springmvc笔记(基本配置,核心文件,路径,参数,文件上传,json整合)
首先导入jar包 大家注意一下我的springmvc,jackson,common-up的jar包版本.其他版本有可能出现不兼容. src文件: webroot目录: web.xml <?xml ...
- SpringMvc笔记-对RESTFUL风格的配置
1.@RequestMapping注解可以使用如下参数: 1,params:例如params={'username',"age!=100"}表示需要usernmame并且age 属 ...
随机推荐
- 在 CentOS6 上安装 GraphicsMagick-1.3.30
在 CentOS6 上安装 GraphicsMagick-1.3.30 1.简介: 1.1.在介绍 GraphicsMagick 前我们不得不先介绍下 ImageMagick: ImageMagick ...
- Strapi 安装易错位置
Strapi官网(https://strapi.io)介绍:最先进的开源内容管理框架,可以毫不费力地构建功能强大的API,建立在Node.js平台之上,为您的API提供高速惊人的表现. 简单点说,(对 ...
- 2-2 Sass的函数功能-字符串与数字函数
Sass的函数简介 在 Sass 中除了可以定义变量,具有 @extend.%placeholder 和 mixins 等特性之外,还自备了一系列的函数功能.其主要包括: 字符串函数 数字函数 列表函 ...
- VC添加文件到工程出错问题--FileTool.dll
原文:http://blog.csdn.net/bingdianlanxin/article/details/45112737 在我们的软件开发中,经常需要导入其他文件到我们的工程. 一般,我们会选择 ...
- JS高级程序设计第三版——变量、作用域和内存问题
JavaScript变量: 由于JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可 ...
- SMBus Host Controller not enabled!
今天去官网下载最新的ubuntu ubuntukylin-16.10-desktop-amd64.iso,下载后vm 运行,安装后结果报了这个问题 之后google搜索得到答案: 1.复制 cp ...
- 新鲜出炉的Java开发者中心,约起来!
入门教程.SDK 和工具推荐下载.操作方法指导.API 参考,Java 开发者需要的,这里应有尽有. ▼ 话说现在 Java 开发者在云端进行开发非常火热啊,「云+Java」就好比才子配佳人,真是难以 ...
- SQL Server ->> SQL Server 2016新特性之 -- sp_set_session_context存储过程和SESSION_CONTEXT函数
sp_set_session_context存储过程和SESSION_CONTEXT函数出现在了SQL Server 2016 CTP3.0上.它俩配合起来的作用是sp_set_session_con ...
- 【转】winrar命令行详解
从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下: WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件.. ...
- 【Leetcode】【Medium】Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...