From 579392de9b4ccd3cc7b76ff727972410ed184ff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=8A=E5=85=B4?= <3250103239@qq.com> Date: Thu, 4 Jan 2024 11:22:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=AC=E4=B9=9D=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240102 MVC.md" | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 "14 \346\235\216\344\277\212\345\205\264/20240102 MVC.md" diff --git "a/14 \346\235\216\344\277\212\345\205\264/20240102 MVC.md" "b/14 \346\235\216\344\277\212\345\205\264/20240102 MVC.md" new file mode 100644 index 0000000..22aefe6 --- /dev/null +++ "b/14 \346\235\216\344\277\212\345\205\264/20240102 MVC.md" @@ -0,0 +1,182 @@ +## 笔记 + +名称:@ComponentScan + +类型:类注解 + +属性 + +excludeFilters:排除扫描路径中加载的bean,需要指定类别(type)与具体项(classes) + +includeFilters:加载指定的bean,需要指定类别(type)与具体项(classes) + +名称:@RequestParam + +类型:形参注解 + +位置:SpringMVC控制器方法形参定义前面 + +作用:绑定请求参数与处理器方法形参间的关系 + +参数: + +required:是否为必传参数 + +defaultValue:参数默认值 + +名称:@EnableWebMvc + +类型:配置类注解 + +位置:SpringMVC配置类定义上方 + +作用:开启SpringMVC多项辅助功能 + +## 作业 + +步骤; + +1.pom.xml,将没有的东西复原,如java,test。。。 + +```xml + + 4.0.0 + com.xlu + ssmvc + war + 1.0-SNAPSHOT + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + 88 + / + + + + + + + +``` + +2.创建com.xlu.config.SpringMvcConfig + +```java +package com.xlu.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("com.xlu") +public class SpringMvcConfig { +} +``` + +3.com.xlu.config.WeblnitConfig + +```java +package com.xlu.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WeblnitConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + + + protected Class[] getRootConfigClasses() { + return new Class[0];//加载spring的核心配置文件 + } + + protected Class[] getServletConfigClasses() { + //加载springmvc的核心配置文件 + return new Class[]{SpringMvcConfig.class}; + } + + protected String[] getServletMappings() { + //设置从/开始的路径,都归tomcat管理 + return new String[]{"/"}; + } +} +``` + +4.com.xlu.controller.UserController + +```java +package com.xlu.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.xml.ws.RequestWrapper; +import java.security.PublicKey; + +@Controller +public class UserController { + + + @RequestMapping("/save") + @ResponseBody + public String userSave(){ + + return "ok";//http://localhost:88/save网址,查看是否出现OK + + } + + @RequestMapping("/book") + @ResponseBody + public String book(){ + return "book is ok!";//http://localhost:88/book网址,查看是否有东西 + } + + + @RequestMapping("/hello") + @ResponseBody + public String hello(){ + + System.out.println(666); + return "666";//http://localhost:88/hello网址,查看是否有东西 + + } + +// @RequestMapping("/shouYe") +// public String shouYe(){ +// +// return "index.jsp";//http://localhost:88/shouYe网址,跳转网页出现 helloword +// } + + @RequestMapping("/shouYe") + @ResponseBody + public String shouYe(){ + + return "index.jsp";//http://localhost:88/shouYe网址,出现index.jsp + } + + +} +``` \ No newline at end of file -- Gitee From e14274b231e10ce59c670032ae2d2dbdbc50b516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=8A=E5=85=B4?= <3250103239@qq.com> Date: Thu, 4 Jan 2024 13:29:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240103 REST\347\254\224\350\256\260.md" | 325 ++++++++++++++++++ 1 file changed, 325 insertions(+) create mode 100644 "14 \346\235\216\344\277\212\345\205\264/20240103 REST\347\254\224\350\256\260.md" diff --git "a/14 \346\235\216\344\277\212\345\205\264/20240103 REST\347\254\224\350\256\260.md" "b/14 \346\235\216\344\277\212\345\205\264/20240103 REST\347\254\224\350\256\260.md" new file mode 100644 index 0000000..7c4d767 --- /dev/null +++ "b/14 \346\235\216\344\277\212\345\205\264/20240103 REST\347\254\224\350\256\260.md" @@ -0,0 +1,325 @@ +## 笔记 + +REST简介 + +REST(Representational State Transfer) + +优点: + +隐藏资源的访问行为,无法通过地址得知对资源是何种操作 + +书写简化 + +名称:@RequestMapping + +类型:方法注解 + +位置:SpringMVC控制器方法定义上方 + +作用:设置当前控制器方法请求访问路径 + +属性 + +value(默认):请求访问路径 + +method:http请求动作,标准动作(GET/POST/PUT/DELETE) + +名称:@PathVariable + +类型:形参注解 + +位置:SpringMVC控制器方法形参定义前面 + +作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应 + +@RequestBody @RequestParam @PathVariable + +区别 + +@RequestParam用于接收url地址传参或表单传参 + +@RequestBody用于接收json数据 + +@PathVariable用于接收路径参数,使用{参数名称}描述路径参数 + +应用 + +后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广 + +如果发送非json格式数据,选用@RequestParam接收请求参数采用RESTful进行开发,当参数数量较少时,例如1个, + +可以采用@PathVariable接收请求路径变量,通常用于传递id值 + +## 作业 + +pom.xml + +```xml + + 4.0.0 + com.xlu + ssmvc03 + war + 1.0-SNAPSHOT + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + javax.servlet + javax.servlet-api + 3.1.0 + + provided + + + + + com.fasterxml.jackson.core + jackson-databind + 2.11.3 + + + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + 80 + / + + utf-8 + + + + + + + +``` + +src/main/java/com/xlu/controller/UserController.java + +```java +package com.xlu.controller; + +import com.xlu.admin.User; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Arrays; +import java.util.List; + +@Controller +public class UserController { + + //接受用户名和慢慢,登录 + @RequestMapping("/login") + @ResponseBody + public String login(User user){ + + String result = "login error"; + if ("admin".equals(user.getUsername())&&"123456".equals(user.getPassword())) { + result = "login success"; + } + return result;//输入用户名admin,密码123456,显示结果巍峨login success + } + + //模拟注册 + @RequestMapping(value = "/reg",produces = "text/html;charset=utf-8")//解决返回的中文乱码问题 + @ResponseBody + public String reg(User user){ + + System.out.println(user); + + return "注册成功!"; + } + + //json集合 + @RequestMapping("/jsonArray") + @ResponseBody + public String jsonData(@RequestBody List names){ + + System.out.println(names); + + return "ok"; + } + +// JSON数组 + @RequestMapping("/jsonArray2") + @ResponseBody + public String jsonData2(@RequestBody String[] names){ + + System.out.println(Arrays.toString(names)); + + return "ok"; + } + +// json对象 + @RequestMapping("/userJson") + @ResponseBody + public String jsonUser(@RequestBody User user){ + System.out.println(user); + return user.toString(); + } + + @RequestMapping("/userJson2") + @ResponseBody + public String jsonUser2(@RequestBody List user){ + System.out.println(user); + return user.toString(); + } + + +} + +``` + +src/main/java/com/xlu/config/WebConfig.java + +```java +package com.xlu.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + protected Class[] getRootConfigClasses() { + return new Class[0]; + } + + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} + +``` + +src/main/java/com/xlu/config/SpringMvcConfig.java + +```java +package com.xlu.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +@Configuration +@ComponentScan("com.xlu.controller") +@EnableWebMvc +public class SpringMvcConfig { +} + +``` + +src/main/java/com/xlu/admin/User.java + +```java +package com.xlu.admin; + +public class User { + + private Integer id; + private String username; + private String password; + private Address address; + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", username='" + username + '\'' + + ", password='" + password + '\'' + + ", address=" + address + + '}'; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Address getAddress() { + return address; + } + + public void setAddress(Address address) { + this.address = address; + } + + public User(Integer id, String username, String password, Address address) { + this.id = id; + this.username = username; + this.password = password; + this.address = address; + } + + public User() { + } +} + +``` + +src/main/java/com/xlu/admin/Address.java + +```java +package com.xlu.admin; + +public class Address { + private String city; + + @Override + public String toString() { + return "Address{" + + "city='" + city + '\'' + + '}'; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public Address(String city) { + this.city = city; + } + + public Address() { + } +} +``` \ No newline at end of file -- Gitee