
本文共 4181 字,大约阅读时间需要 13 分钟。
SpringMVC框架第一天
一、三层架构与MVC
SpringMVC属于Spring框架的一部分,主要用于构建Web应用程序。其三层架构包括:
表现层(WEB层):负责接收并处理客户端的请求,与用户进行数据交互。表现层通常采用MVC设计模式。
业务层:处理公司具体的业务逻辑。
持久层:与数据库进行数据交互。
- MVC模型
- SpringMVC概述
- SpringMVC在三层架构中的位置
- SpringMVC优势
- 更加简洁,支持JSR303规范。
- 处理AJAX请求更为方便。
- 执行效率比Struts2更高。
-
SpringMVC入门程序
-
创建Web项目
- 配置Maven插件:archetypeCatalog - internal
- 在pom.xml中添加必要的Spring依赖和Servlet依赖。
- 配置DispatcherServlet
- 配置SpringMVC框架
- 编写入门程序
- index.jsp:
- HelloController:
- pages/success.jsp:
- RequestMapping注解作用
- RequestMapping的属性
- path:指定请求路径。
- value:与path属性功能相同。
- method:指定请求方法。
- params:限制请求参数。
- headers:指定必须包含的请求头。
- cookies:指定必须包含的cookie。
- 请求参数的绑定过程
- 支持的数据类型
- 基本数据类型和字符串类型。
- 实体类型(JavaBean)。
- 集合数据类型(List、Map等)。
- 自定义类型转换器
- @RequestParam注解
- @RequestBody注解
- @PathVariable注解
- @CookieValue注解
- @SessionAttributes注解
-
创建SpringMVC项目并配置依赖包。
-
配置DispatcherServlet并启动服务器。
-
编写SpringMVC.xml配置文件。
-
编写入门示例,理解@RequestMapping注解的使用。
-
掌握请求参数绑定机制,解决中文乱码问题。
-
学习常用注解的使用,如@RequestParam、RequestBody等。
MVC全称Model View Controller,分为三大部分:
Model(数据模型):用于封装数据,通常由JavaBean类实现。
View(视图):用于展示数据,常见的有JSP和HTML。
Controller(控制器):负责接收用户请求并控制整个流程的执行,通常由SpringMVC框架提供。
二、SpringMVC入门案例
SpringMVC是一种基于Java实现的MVC框架,是SpringFrameWork的后续产品。它支持请求驱动开发,适合构建轻量级Web应用程序。
SpringMVC主要负责表现层的框架支持。
与Struts2框架相比,SpringMVC具有以下优势:
在web.xml中配置核心控制器:
在springmvc.xml中添加配置:
SpringMVC入门 SpringMVC入门
点击进入
package cn.itcast.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/hello")public class HelloController { @RequestMapping public String sayHello() { System.out.println("Hello SpringMVC!"); return "success"; }}
成功页面 入门成功
四、@RequestMapping注解
用于建立请求URL与控制器方法之间的对应关系。可以作用在类和方法上。
三、请求参数绑定
SpringMVC通过自动绑定请求参数到控制器方法参数,实现数据的自动传输。
通过实现Spring的Converter接口,可以自定义数据类型转换。例如:
package cn.itcast.utils;import org.springframework.core.convert.converter.Converter;import java.text.SimpleDateFormat;import java.util.Date;public class StringToDateConverter implements Converter{ public Date convert(String source) { if (source == null) { throw new RuntimeException("请您输入日期"); } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { return df.parse(source); } catch (Exception e) { throw new RuntimeException("数据类型转换错误"); } }}
在SpringMVC.xml中注册自定义转换器:
五、常用注解
用于获取请求参数:
@RequestMapping("/testRequestParam")public String testRequestParam(@RequestParam("name") String username) { System.out.println(username); return "success";}
用于获取请求体内容:
@RequestMapping("/testRequestBody")public String testRequestBody(@RequestBody String body) { System.out.println(body); return "success";}
用于获取URL占位符:
@RequestMapping("/testPathVariable/{sid}")public String testPathVariable(@PathVariable("sid") String id) { System.out.println(id); return "success";}
用于获取cookie值:
@RequestMapping("/testCookieValue")public String testCookieValue(@CookieValue("JSESSIONID") String cookieValue) { System.out.println(cookieValue); return "success";}
用于多次执行控制器方法间的参数共享:
@Controller@RequestMapping("/anno")@SessionAttributes(value = {"msg"}, types = {String.class})public class AnnoController { @RequestMapping("/saveSessionAttributes") public String saveSessionAttributes(Model model) { model.addAttribute("msg", "大佬"); return "success"; } @RequestMapping("/getSessionAttributes") public String getSessionAttributes(ModelMap modelMap) { String msg = (String) modelMap.get("msg"); System.out.println(msg); return "success"; } @RequestMapping("/delSessionAttributes") public String delSessionAttributes(SessionStatus status) { status.setComplete(); return "success"; }}
六、技术总结
通过以上内容,可以快速入门SpringMVC框架,掌握基础配置和常用功能。
发表评论
最新留言
关于作者
