合肥建设网络网站网站,网页游戏传奇霸业攻略,分分彩做号网站,入门seo技术教程目录
简介
Bean加载控制
设置请求映射路径
5种请求类型参数传递
JSON数据传递请求参数
响应
Jackson库处理JSON响应
REST风格
RESTful快速开发
拦截器 简介
Spring MVC是一个强大而灵活的Web应用程序框架#xff0c;它通过使用MVC架构模式、注解和配置文件来实现请…目录
简介
Bean加载控制
设置请求映射路径
5种请求类型参数传递
JSON数据传递请求参数
响应
Jackson库处理JSON响应
REST风格
RESTful快速开发
拦截器 简介
Spring MVC是一个强大而灵活的Web应用程序框架它通过使用MVC架构模式、注解和配置文件来实现请求的分发和处理。它具有丰富的功能和特性使开发者能够快速构建可靠和高效的Web应用程序。
在Spring MVC中请求由前端控制器Front Controller负责接收并将其分发给适当的处理程序。该处理程序可以是一个方法、一个类或者一个注解控制器。处理程序负责处理请求并生成一个模型对象来保存数据然后选择适当的视图来呈现数据给用户。视图可以是JSP页面、HTML页面、JSON、XML或者其他格式。 Bean加载控制
Spring MVC框架使用IoC容器来管理和加载Bean。我们可以通过在配置文件中定义Bean或使用注解标记Bean来实现加载控制。例如使用Controller注解标记一个类为控制器Bean使用Service注解标记一个类为服务Bean。 设置请求映射路径
在Spring MVC中我们可以使用RequestMapping注解来设置请求URL和处理程序方法之间的映射关系。例如RequestMapping(/hello)表示处理程序方法将处理以/hello开头的所有请求。 5种请求类型参数传递
Spring MVC支持五种类型的参数传递方式
路径变量Path Variables使用PathVariable注解从URL路径中提取参数。请求参数Request Parameters使用RequestParam注解从请求中获取参数。请求体参数Request Body Parameters使用RequestBody注解将请求体转化为Java对象。请求头参数Request Header Parameters使用RequestHeader注解获取请求头中的参数。Cookie参数Cookie Parameters使用CookieValue注解获取Cookie中的参数。 JSON数据传递请求参数
在Spring MVC中我们可以使用RequestBody注解将接收到的JSON数据转化为Java对象。
举例
PostMapping(/user)
public void createUser(RequestBody User user) {// 处理接收到的User对象
}响应
Spring MVC支持多种类型的响应包括HTML、JSON、XML等。我们可以使用不同的视图解析器来选择合适的视图类型。例如InternalResourceViewResolver用于解析JSP页面视图MappingJackson2JsonView用于生成JSON响应。 Jackson库处理JSON响应
1.添加Jackson依赖 在项目的Maven或Gradle配置文件中确保已添加Jackson库的依赖项。
2.启用注解驱动 在Spring MVC配置类上添加EnableWebMvc注解以启用注解驱动的Spring MVC功能。
3.配置Jackson转换器 在Spring MVC配置类中添加MappingJackson2HttpMessageConverter作为消息转换器。这将告诉Spring MVC使用Jackson库来处理JSON响应。
Configuration
EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {Overridepublic void configureMessageConverters(ListHttpMessageConverter? converters) {MappingJackson2HttpMessageConverter converter new MappingJackson2HttpMessageConverter();converters.add(converter);}
}4.测试JSON响应 使用控制器方法返回一个Java对象并使用ResponseBody注解将其转换为JSON响应。
RestController
RequestMapping(/users)
public class UserController {GetMapping(/{id})public User getUser(PathVariable(id) int id) {// 从数据库或其他数据源获取用户信息User user userService.getUserById(id);return user;}
}REST风格
RESTRepresentational State Transfer是一种基于HTTP协议的网络应用程序架构风格。它使用标准的HTTP方法如GET、POST、PUT、DELETE来对资源进行操作并通过URL来唯一标识资源。Spring MVC可以很好地支持REST风格的开发。 RESTful快速开发
使用Spring MVC我们可以轻松地开发RESTful Web服务。通过合理地设计请求路径和使用适当的HTTP方法我们可以实现资源的增删改查操作。
RestController
RequestMapping(/users)
public class UserController {GetMapping(/{id})public User getUser(PathVariable(id) int id) {// 根据id查询用户}PostMappingpublic void createUser(RequestBody User user) {// 创建用户}PutMapping(/{id})public void updateUser(PathVariable(id) int id, RequestBody User user) {// 更新用户信息}DeleteMapping(/{id})public void deleteUser(PathVariable(id) int id) {// 删除用户}
}拦截器
在Spring MVC中我们可以使用拦截器Interceptor来拦截请求并进行相应的处理。拦截器可以用于实现认证、日志记录、异常处理等功能。拦截器可以在处理程序方法执行前后进行预处理和后处理。我们可以通过实现HandlerInterceptor接口来创建自定义拦截器并在配置文件中进行配置。
举例
public class MyInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 在处理程序方法执行前进行预处理return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {// 在处理程序方法执行后进行后处理}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {// 在视图渲染完成后进行清理工作}
}在配置文件中配置拦截器
Configuration
public class WebConfig extends WebMvcConfigurerAdapter {Autowiredprivate MyInterceptor myInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(myInterceptor).addPathPatterns(/**);}
}