从化区建设网站,wordpress知识付费模板,商务网站教程,百度推广登录首页官网0. 什么是SpringMVC
要知道什么是SpringMVC#xff0c;我们首先得知道什么 MVC#xff0c;MVC是软件工程中的一种架构模式#xff0c;分为 Model、View、Control。它把软件系统分为模型、视图和控制器三个基本部分。
Model#xff1a;模型#xff0c;应用程序负责数据逻…0. 什么是SpringMVC
要知道什么是SpringMVC我们首先得知道什么 MVCMVC是软件工程中的一种架构模式分为 Model、View、Control。它把软件系统分为模型、视图和控制器三个基本部分。
Model模型应用程序负责数据逻辑部分在数据库中存取数据。View视图应用程序中处理数据显示部分是根据模型数据创建的。Control控制器应用程序处理用户交互的部分负责从视图读取数据控制用户输入向模型发送数据。
MVC执行流程 1. 用户请求先发给 Control 2. Control 将请求转发给 Model 3. Model 处理业务将数据返回给 Control 4. Control 将数据给 View 引擎 5. View 转换数据生成最终页面给用户
SpringMVC 是一个框架是基于 Servlet API 构建的。 SpringMVC 和 MVC 的关系MVC是一种思想就像IOC一样SpringMVC是具体的一种实现了MVC的模式就像DI一样并继承了Servlet API 的Web框架。 1. SprinMVC学什么
要想快速上手 SpringMVC只需要掌握三个功能
连接功能将用户浏览器和 Java程序连接起来让我们可以在浏览器输入一个网址就能调用我们的程序获取参数功能当用户访问的时候会携带一些参数我们需要在程序中获取这些参数输出数据的功能我们需要将用户需要的结果反馈给用户
1.1 实现连接功能
实现连接功能我们最常用的请求方式就是 Get 请求和 Post 请求
1.11 RequestMapping
RequestMapping 是 Spring Web 程序中最常用到的注解之一用户注册接口的路由映射。路由映射当用户访问一个 url 时将用户的请求对应到应用程序中的某个类的某个方法的过程。
可以修饰类也可以修饰方法 当你成功启动项目是如果需要访问的 getUserById这个方法的时候在浏览器中输入 localhost:8080/user/getuserbyid。这里的端口号是默认的8080。 RequestMapping是同时支持 GET 和 POST请求。 1.12 GetMapping
只适用于 GET 请求
1.13 PostMapping
只适用于POST请求
1.2 获取参数功能
1.21 获取单个参数
正确示例 错误示例 出现上述错误的时候我们可以通过一个注解就能解决 url 中参数的 key 和 方法中 形参名不一致导致的问题。 RequestParam(“xxxx”)这个注解
注意点使用了RequestParam注解的参数必须设置值 1.22 获取多个参数
当获取多个参数的时候顺序并不重要。
1.23 获取一个对象 1.24 获取一个 Json 对象此时需要的注解是RequestBody
我们可以通过 Postman来传入一个 Json 格式的数据在方法上的参数中加上RequestBody注解表示我们获取的参数是 json 格式的数据。
1.25 获取URL中参数
可以使用注解PathVariable获取url地址中的参数 这里有个提示如果你设置参数就必须在前端传入否则就会发生错误
1.26 上传文件RequestPart
使用的RequestPart注解可以上传文件可以参考以下代码 RequestMapping(/upload)public String upLoad(RequestPart MultipartFile file) throws IOException {// 1.生成一个唯一的id | UUID 全球唯一ID - MAC 随机种子 加密算法String name UUID.randomUUID().toString().replace(-, );// 2.得到源文件的后缀名name (file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.)));String path D:\\image\\ name;// 保存文件file.transferTo(new File(path));return path;}通过 Postman 测试可以成功上传
1.27 获取CookieCookieValue RequestMapping(getcookie)public String getCookie(CookieValue(value java,required false) String cookie){return cookie;}1.28 获取SessionSessionAttribute
先设置一个Session private static String _SESSION_KEY SESSION_KEY;RequestMapping(/set_sess)public String setSess(HttpServletRequest request) {HttpSession session request.getSession();if (session ! null) {session.setAttribute(_SESSION_KEY, 张三);return session set success;} else {return session set fail;}}然后获取Session RequestMapping(/get_sess)public String getSess(SessionAttribute(required false, value SESSION_KEY) String name) {return name;}1.3 返回数据功能
1.31 非静态页面数据text/html
在上述中我们返回的都是数据可以看到我们加了一个 ResponseBody这个注解作用就是表示返回的是非静态页面的数据。
1.32 非静态页面数据json 1.32 静态页面数据
– 当需要返回的是静态页面的时候就不需要加 ResponseBody这个注解
2. foward vs redirect 区别
在返回数据的时候不仅可以返回一个视图还可以实现跳转跳转的方式有两种
forward : 请求转发redirect请求重定向
两者有什么区别呢 请求转发是由服务器转发的请求重定向是将请求重新定位到资源 请求转发地址不发生变化请求重定向地址发生变化 请求转发由服务器转发可能会造成原外部资源访问不到请求重定向和访问新地址一样不会出现这种情况