spring 基础(五) spring mvc RESTful
1.RESTful
- 使用URL作为用户交互入口。
- 明确的语义规范(GET|POST|PUT|DELETE)。
- 只返回数据(JSON|XML),不包含任何展现。
- RESTful是一种设计理念:
- 命名规范:如图
- 5
2.创建一个RESTful风格的SpringMvc
1.创建一个maven项目。
2.单击选中工程

3.file=》Project Structure... ;注意此处路径修改必须统一。否则程序报错,比如都将web修改为src\main\webapp

4.因为当前是maven工程,不具有webapp开发能力。需要再Facets中添加web。记得单击web之后弹出页面选中工程,然后再确定


5.确定web.xml存储路径一般放在是src\main\webapp\WEB-INF目录下

6.设置存储页面的路径

7.添加artifact

8.打开 Add Configuration..;然后先设置Templates 模板;先apply 然后ok。



9.Templates 设置完毕之后,再打开 然后添加服务并且对齐设置





10.启动,先再webapp下添加一个index.html

11.pom导入springmvc相关
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<!--logback日志组件,Spring框架默认集成-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 事务组件-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.5</version>
</dependency>
</dependencies>
12.设置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="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 标签作用 在Spring IOC初始化过程中,自动创建并管理com.imooc.springmvc及子包中 拥有以下注解的对象. @Repository @Service @Controller @Component --> <context:component-scan base-package="com.item.springmvc"/> <!-- 启用spring mvc注解开发模式--> <mvc:annotation-driven> <!-- 解决中文乱码问题--> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!-- response.setContentType("text/html;charset=utf-8") --> <value>text/html;charset=utf-8</value> <value>application/json;charset=utf-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <mvc:default-servlet-handler/> <!-- 将图片/JS/CSS等静态资源排除在外,可提高执行效率 --> <mvc:default-servlet-handler/> </beans>
13.配置webapp\WEB-INF\web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>characterFilter</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>characterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>formContentFilter</filter-name> <filter-class>org.springframework.web.filter.FormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>formContentFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

14.添加一个实体
public class Person { private String name; private Integer age; private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
15.添加一个测试控制器
@RestController @RequestMapping("/restful") public class RestfulController { @GetMapping("/request") public String doGetRequest(){ return "{\"message\":\"返回查询结果\"}"; } // POST /article/1 // POST /restful/request/100 @PostMapping("/request/{rid}") public String doPostRequest(@PathVariable("rid") Integer requestId, Person person){ System.out.println(person.getName() + ":" + person.getAge()); return "{\"message\":\"数据新建成功\",\"id\":" + requestId + "}"; } @PutMapping("/request") public String doPutRequest(Person person){ System.out.println(person.getName() + ":" + person.getAge()); return "{\"message\":\"数据更新成功\"}"; } @DeleteMapping("/request") public String doDeleteRequest(){ return "{\"message\":\"数据删除成功\"}"; } @GetMapping("/person") public Person findByPersonId(Integer id){ Person p = new Person(); if(id==1){ p.setName("lily"); p.setAge(23); }else if(id==2){ p.setName("smith"); p.setAge(22); } return p; } @GetMapping("/persons") public List<Person> findPersons(){ List list = new ArrayList(); Person p1 = new Person(); p1.setName("lily"); p1.setAge(23); p1.setBirthday(new Date()); Person p2 = new Person(); p2.setName("smith"); p2.setAge(22); p2.setBirthday(new Date()); list.add(p1); list.add(p2); return list; } }
16.前端请求




浙公网安备 33010602011771号