springmvc 关于SpringMVC的基础知识点总结,SpringMVC参数绑定6种方式,使用不同的方式跳转页面,后台处理json格式的数据,SpringMVC框架简介,SpringMVC的入门案例等 ### SpringMVC 学习总结 #### SpringMVC框架简介 SpringMVC 是一款基于 Java 的轻量级 Web 应用框架,它属于 Spring Framework 的一部分。作为一个模型-视图-控制器(MVC)框架,SpringMVC 主要用于简化企业级应用的开发流程,并提供了一种清晰的架构模式来组织代码。 **核心组件:** 1. **DispatcherServlet**:作为前端控制器,它是整个框架的核心,负责接收来自客户端的请求,并将其分发给合适的处理器。 2. **HandlerMapping**:用于根据请求找到合适的处理器(Controller)。 3. **HandlerAdapter**:负责调用处理器的具体方法。 4. **ViewResolver**:解析视图对象,使其渲染成具体的页面格式。 #### SpringMVC基础知识点 1. **SpringMVC的工作原理:** - 用户向服务器发送HTTP请求; - DispatcherServlet 接收到请求后,根据请求的URL找到相应的处理器(Controller); - DispatcherServlet 将请求参数封装成一个对象,传递给处理器处理; - 处理器处理完请求后,返回一个ModelAndView对象,包含数据模型和视图名; - DispatcherServlet 使用ViewResolver解析视图名,得到具体的视图对象; - 视图对象渲染数据模型,并将结果返回给客户端。 2. **SpringMVC参数绑定6种方式:** - **直接参数绑定**:通过控制器中的方法参数直接接收请求参数。 - **包装类参数绑定**:通过一个JavaBean接收所有请求参数。 - **注解参数绑定**:使用`@RequestParam`或`@PathVariable`等注解绑定参数。 - **POJO对象参数绑定**:控制器的方法参数为POJO对象,框架会自动将请求参数与POJO对象的属性对应起来。 - **数组与集合参数绑定**:支持数组或集合类型的参数绑定。 - **自定义数据绑定**:可以通过实现`DataBinder`接口自定义数据绑定逻辑。 3. **使用不同的方式跳转页面:** - **转发**:使用`ModelAndView.setViewName("view")`设置视图名称,视图解析器会解析这个名称并返回实际的视图资源路径。 - **重定向**:使用`ModelAndView.setViewName("redirect:view")`或返回一个字符串前缀为“redirect:”的方式,实现页面重定向。 - **Ajax响应**:通过返回JSON或其他格式的数据,配合Ajax技术实现异步加载。 4. **后台处理JSON格式的数据:** - 使用`@RequestBody`注解接收JSON数据: ```java @RequestMapping(value = "/saveUser", method = RequestMethod.POST) public String saveUser(@RequestBody User user) { // 处理用户数据 return "success"; } ``` - 返回JSON数据: ```java @RequestMapping(value = "/getUser", method = RequestMethod.GET) @ResponseBody public User getUser() { User user = new User(); user.setName("张三"); user.setAge(20); return user; } ``` #### SpringMVC框架搭建步骤 1. **创建一个 web 动态工程**,或创建 Maven 工程。 2. **引入 SpringMVC 的 Maven 依赖**:通过添加`<dependency>`标签引入`spring-webmvc`依赖和其他必要的库。 ```xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.14.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> </dependencies> ``` 3. **配置 web.xml 的前端控制器 DispatcherServlet**: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> ``` 4. **创建 springmvc-servlet.xml 的配置文件**: 在`WEB-INF`目录下创建名为`springmvc-servlet.xml`的配置文件,配置内容包括扫描包、启用注解驱动等。 ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.example.controller"/> <mvc:annotation-driven/> <!-- 其他配置 --> </beans> ``` 以上就是SpringMVC框架的基本介绍及其搭建过程。通过学习这些内容,开发者可以更好地理解和掌握如何使用SpringMVC框架来构建Web应用程序。
剩余57页未读,继续阅读
- 粉丝: 1348
- 资源: 1597
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 可直接运行 MATLAB数学建模学习资料 模拟算法MATLAB代码实现.rar
- 基于 Java+SQLServer 实现的医药售卖系统课程设计
- HCNP(HCDP)华为认证资深网络工程师-路由交换方向培训 -IESN中文理论书-内文.pdf
- 新版FPGA课程大纲,芯片硬件开发用的大纲
- ROS2下OpenCV识别物体区域和视频捕捉的样例
- STM32-EMBPI.PDF
- Font Awesome图标字体库提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样式
- Bluefield 2固件镜像版本,fw-MBF2M345A-VENOT-ES-Ax-24.40.1000.bin
- 雪颜奇迹幻白双重莹白焕采霜50ML-1016-FA.rar
- Qt的QDOCK高级用法源码,包含linux和windows版本,从开源库下载