SpringMVC-狂神笔记
参考链接:狂神说SpringMVC笔记 - 时移之人 - 博客园 (cnblogs.com)
第一节:
MVC:前端+路由+后端实现
prefix:前缀
suffix:后缀
@Controller是为了让Spring IOC容器初始化时自动扫描到;
@RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所以访问时应该是/HelloController/hello;
实现步骤其实非常的简单:
新建一个web项目
导入相关jar包
编写web.xml , 注册DispatcherServlet
编写springmvc配置文件
接下来就是去创建对应的控制类 , controller
最后完善前端视图和controller之间的对应(方法中声明Model类型的参数是为了把Action中的数据带到视图中)
测试运行调试.
注:DispatcherServlet 是 SpringMVC统一的入口,所有的请求都通过它。DispatcherServlet 是前端控制器,配置在web.xml文件中,Servlet依自已定义的具体规则拦截匹配的请求,分发到目标Controller来处理。
使用springMVC必须配置的三大件(注解或者xml):
处理器映射器、处理器适配器、视图解析器
ModelAndView:模型视图类(方法返回的结果是视图的名称hello,加上配置文件(视图解析器)中的前后缀变成WEB-INF/jsp/hello.jsp。)
//ModelAndView 模型和视图ModelAndView mv = new ModelAndView();//封装对象,放在ModelAndView中。Modelmv.addObject("msg","HelloSpringMVC!");//封装要跳转的视图,放在ModelAndView中mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jspreturn mv;
第三节:
- POST、DELETE、PUT、GET:添加、 删除、修改、查询
RESTful风格:
- 在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。
@Controller
public class RestFulController {//映射访问路径@RequestMapping("/commit/{p1}/{p2}")public String index(@PathVariable int p1, @PathVariable int p2, Model model){int result = p1+p2;//Spring MVC会自动实例化一个Model对象用于向视图中传值model.addAttribute("msg", "结果:"+result);//返回视图位置(视图解析器进行解析,找到对应的文件)return "test";}
}
使用method属性指定请求类型
用于约束请求的类型,可以收窄请求范围。指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
//映射访问路径,必须是POST请求
@RequestMapping(value = "/hello",method = {RequestMethod.POST})
public String index2(Model model){model.addAttribute("msg", "hello!");return "test";
}
所有的地址栏请求默认都会是 HTTP GET 类型的。
第四节:
结果跳转方式
- ModelAndView:页面 : {视图解析器前缀} + viewName +{视图解析器后缀}
- ServletAPI:通过HttpServletResponse进行输出、重定向、转发
@RequestMapping("/result/t1")public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {rsp.getWriter().println("Hello,Spring BY servlet API");}@RequestMapping("/result/t2")public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {rsp.sendRedirect("/index.jsp");}@RequestMapping("/result/t3")public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {//转发req.setAttribute("msg","/result/t3");req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp);}
- 通过SpringMVC来实现转发和重定向 - 无需视图解析器;
@RequestMapping("/rsm/t1")public String test1(){//转发return "/index.jsp";}
数据提交:
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name){//提交数据 : http://localhost:8080/hello?username=kuangshen
public String hello(String name){//提交数据 : http://localhost:8080/hello?name=kuangshen//参数是实体类
public class User {private int id;private String name;private int age;//构造//get/set//tostring()
}@RequestMapping("/user")//提交数据 : http://localhost:8080/mvc04/user?name=kuangshen&id=1&age=15
public String user(User user){System.out.println(user);return "hello";
}
//说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null。
数据回显:
ModelAndView、ModelMap、Model都可以
SpringMVC-狂神笔记相关推荐
- springmvc 狂神说的详细笔记
最近在学习java框架,发现狂神说的视频挺好的,通俗易懂,还有笔记,整理过来,以便随时复习回顾. 狂神说springmvc 视频链接: B站视频 springmvc 系列笔记 狂神说SpringMVC ...
- 狂神笔记-SpringMVC
狂神笔记-SpringMVC 1.回顾MVC 1.1.什么是MVC MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑.数据.显示分 ...
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...
- springmvc学习笔记(19)-RESTful支持
springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC--数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...
- springmvc学习笔记(17)-上传图片
2019独角兽企业重金招聘Python工程师标准>>> springmvc学习笔记(17)-上传图片 标签: springmvc [TOC] 本文展示如何在springmvc中上传图 ...
- SpringMVC学习笔记(二)常用注解
SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...
- springmvc学习笔记--ueditor和springmvc的集成
springmvc学习笔记--ueditor和springmvc的集成 前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的 ...
最新文章
- linux转换二进制命令,Linux--二进制,十进制,十六进制如何转换,单位换算
- oracle 11g中的自动维护任务管理
- 奇怪,不能上GOOGLE了...你们也是这样吗?
- LeetCode-二分查找-35. 搜索插入位置
- MySQL语法解析和预处理(Parser Preprocessor)
- Shallow and retained sizes
- plone进行 用户和权限管理
- 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题
- BZOJ 3261: 最大异或和位置-贪心+可持久化01Trie树
- QT pro文件 Win/Linux跨平台写法
- 读《Ideal MHD》(1)-磁流体力学方程组推导
- Nginx反向代理、配置ssl证书
- Mac Webpack Vue项目的搭建
- 使用Nexus搭建Maven私服教程(附:nexus上传、下载教程)
- catia 斑马线分析_在CATIA中使用斑马线检查曲面光顺性的方法 | 坐倚北风
- 数字图像处理实验之图像压缩
- Python之线程的同步互斥与死锁
- Ajax你需要系统的掌握 系统教程
- 戴尔r510服务器加硬盘没反应,戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法...
- ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
热门文章
- 博客小编风明姗姗来迟
- python案例实操_Python 操作 Word 案例
- QGIS插件开发-执法业务计算
- 2段代码实现在所有浏览器下显示特殊字体(附字体转换工具)
- b365老掉线 h3c路由器_H3C路由器PPP连接的常见故障及解决方法
- mac 全局安装 Cz 工具【踩坑】
- SAP 财务月结之 外币评估(TCODE:FAGL_FC_VAL,S4版本用 FAGL_FCV)<转载>
- Unity-Photon Pun2个人总结
- java猜拳_java实现猜拳小游戏
- 多年测试经验分享:上市公司怎么进行安全测试