建站神器,做网站好做吗,自己公司的网站怎么编辑器,重庆网站seo案例嗨#xff0c;亲爱的小白们#xff01;欢迎来到这篇关于SpringMVC的博客#xff0c;让我们一起探索这个舞动Web的框架#xff0c;感受它带来的激情和便利。在这个世界里#xff0c;我们将学到SpringMVC的概述、开发步骤以及如何快速入门#xff0c;一切都是如此的令人兴奋…
嗨亲爱的小白们欢迎来到这篇关于SpringMVC的博客让我们一起探索这个舞动Web的框架感受它带来的激情和便利。在这个世界里我们将学到SpringMVC的概述、开发步骤以及如何快速入门一切都是如此的令人兴奋。
踏上舞台SpringMVC概述
在我们深入了解SpringMVC之前让我们先简单了解一下它是什么。SpringMVC是Spring框架的一个模块用于构建Web应用程序。它采用了经典的MVCModel-View-Controller设计模式将应用程序划分为三个主要的组件
Model模型负责处理数据逻辑与数据库交互提供数据给View展示。View视图负责用户界面的展示将Model提供的数据呈现给用户。Controller控制器负责处理用户请求调用Model获取数据并将数据传递给View展示。
SpringMVC通过这种分层的方式使得我们能够更清晰地组织和管理代码提高了应用程序的可维护性。
舞动的步伐SpringMVC开发步骤
1. 项目初始化
首先我们需要创建一个新的SpringMVC项目。可以使用Spring Initializrhttps://start.spring.io/来初始化一个基本的Spring Boot项目。选择你需要的配置点击Generate下载项目压缩包解压后导入到你喜欢的集成开发环境中。
2. 添加SpringMVC依赖
在pom.xml文件中添加SpringMVC的依赖
dependencies!-- ...其他依赖 ... --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency
/dependencies这个依赖包含了构建基本的SpringMVC应用所需的一切。
3. 创建一个简单的Controller
在src/main/java/com/example/demo目录下创建一个名为DemoController.java的类用于处理Web请求
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;Controller
public class DemoController {GetMapping(/hello)public String hello(Model model) {model.addAttribute(message, Hello, SpringMVC!);return hello;}
}这个简单的Controller定义了一个/hello的GET请求返回一条简单的问候语。
4. 创建一个显示结果的View
在src/main/resources/templates目录下创建一个名为hello.html的HTML文件用于展示Controller返回的数据
!DOCTYPE html
html
bodyh2 th:text${message}/h2/body
/html5. 启动应用
在项目的根目录下执行以下命令启动应用
./mvnw spring-boot:run或者在集成开发环境中直接运行DemoApplication.java中的main方法。
打开浏览器访问http://localhost:8080/hello你将看到页面上显示着Hello, SpringMVC!。
至此我们已经成功完成了一个简单的SpringMVC应用的开发。接下来让我们更深入地了解一下SpringMVC的一些核心概念。
感受激情快速入门SpringMVC
1. 请求映射
在SpringMVC中我们通过RequestMapping注解来定义Controller处理的请求映射。例如我们想要处理一个路径为/greet的GET请求可以这样写
GetMapping(/greet)
public String greet() {return greet;
}这里我们使用了GetMapping注解表示处理GET请求。返回值为字符串greet它将会被解析为视图名称系统将会找到名为greet.html的模板文件。
2. 请求参数
在处理请求时我们常常需要从URL中获取参数。SpringMVC提供了多种方式来接收请求参数最简单的方式是直接将参数添加到方法的参数中
GetMapping(/greet)
public String greet(RequestParam String name, Model model) {model.addAttribute(message, Hello, name !);return greet;
}在这个例子中我们通过RequestParam注解将name参数绑定到方法的参数中。当我们访问/greet?nameJohn时name参数将被设置为John。
3. 路径变量
有时候我们希望从URL路径中提取参数。这时我们可以使用路径变量Path Variable。例如我们想要处理类似/greet/{name}的URL
GetMapping(/greet/{name})
public String greetWithPathVariable(PathVariable String name, Model model) {model.addAttribute(message, Hello, name !);return greet;
}在这个例子中我们使用PathVariable注解将路径中的name提取出来传递给方法参数。当我们访问/greet/John时name参数将被设置为John。
4. 请求体
有时候我们需要从请求体中获取数据。例如处理POST请求时我们可以通过RequestBody注解将请求体的内容绑定到方法参数
PostMapping(/update)
public String update(RequestBody User user) {// 处理User对象return update-success;
}在这个例子中我们期望客户端发送一个JSON格式的User对象到/update路径。SpringMVC将自动将请求体中的JSON数据转换为User对象传递给方法。
5. 视图解析器
SpringMVC使用视图解析器来将Controller返回的逻辑视图名称解析为实际的视图。默认情况下Spring Boot使用Thymeleaf作为模板引擎所以我们可以在src/main/resources/templates目录下创建相应的HTML文件Spring Boot会自动识别并渲染。
6. 拦截器
拦截器允许我们在Controller处理请求前或者请求后执行一些额外的逻辑。我们可以创建一个拦截器类实现HandlerInterceptor接口并在配置中注册。
public class DemoInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 在请求到达Controller之前执行System.out.println(Pre Handle method is Calling);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {// 在请求处理之后但视图未渲染前执行System.out.println(Post Handle method is Calling);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {// 在视图渲染之后执行System.out.println(Request and Response is completed);}
}在配置类中注册拦截器
Configuration
public class WebConfig extends WebMvcConfigurerAdapter {Beanpublic DemoInterceptor demoInterceptor() {return new DemoInterceptor();}Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(demoInterceptor());}
}7. 异常处理
在SpringMVC中我们可以通过ExceptionHandler注解来处理Controller内部抛出的异常。在全局范围内我们可以创建一个ControllerAdvice注解的类用于集中处理所有Controller的异常。
ControllerAdvice
public class GlobalExceptionHandler {ExceptionHandler(Exception.class)public String handleException(Exception e) {// 处理异常并返回错误页面return error;}
}8. 文件上传
处理文件上传是Web应用中常见的需求。SpringMVC提供了MultipartFile类来接收上传的文件同时我们可以使用RequestParam注解来绑定文件参数。
PostMapping(/upload)
public String handleFileUpload(RequestParam(file) MultipartFile file, Model model) {// 处理文件上传逻辑return upload-success;
}9. 表单验证
在SpringMVC中我们可以使用Valid和ModelAttribute注解来进行表单验证。定义一个简单的实体类加上验证注解如NotNull、Size等然后在Controller方法参数上使用Valid注解。
PostMapping(/register)
public String register(Valid ModelAttribute User user, BindingResult bindingResult) {if (bindingResult.hasErrors()) {// 处理验证失败的逻辑return registration-form;}// 处理注册逻辑return registration-success;
}小结舞动SpringMVC的激情
在这篇博客中我们深入学习了SpringMVC的概述、开发步骤和快速入门。通过项目初始化、添加依赖、创建Controller和View我们成功搭建了一个简单的SpringMVC应用。随后我们学习了请求映射、请求参数的处理方式以及如何使用路径变量、处理请求体等高级功能。
除此之外我们还感受了拦截器的力量学会了如何处理异常、实现文件上传和表单验证等实用功能。SpringMVC为我们提供了丰富而强大的功能使得我们能够轻松构建高效、安全且易于维护的Web应用。
希望这篇博客能够激发你对SpringMVC的兴趣让你在这个舞台上舞动的更加从容。如果你有任何问题或想要分享自己的经验欢迎在评论区留下你的足迹。让我们一起沉浸在SpringMVC的激情世界创造出更加出色的Web应用吧 作者信息 作者 繁依Fanyi CSDN https://techfanyi.blog.csdn.net 掘金https://juejin.cn/user/4154386571867191