基于Restful页面数据交互案例

1.模块构建

使用maven骨架创建模块(注意选择合适版本的maven以及其对应的配置和私服仓库);

在project structure里补充其缺失的java文件夹;

配置pom文件:

        1.删除name url;修改编译版本为1.7;删除依赖和相关bulid配置

        2.导入需要的坐标依赖和配置(主要包括servlet\springmvc\json坐标依赖和tomcat7运行插件)

<!--导入servlet和springmvc的坐标依赖-->
  <dependencies>
    <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
      <!--导入json坐标依赖-->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.9.9</version>
      </dependency>
  </dependencies>
    <!--加载tomcat7运行插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>80</port>
                <path>/</path>
                <uriEncoding>UTF-8</uriEncoding>
            </configuration>
        </plugin>
    </plugins>
</build>

2.编写后台接口并测通

(1)创建配置类config

主要是两个:springmvc配置类+servlet容器初始化配置类---基本为固定写法

        解析注解:

        springmvc配置类下三个注解,作为表现层框架只需要扫描controller包即可

//该注解表明是一个配置类
@Configuration
//该注解用来扫描对应的controller
@ComponentScan("controller")
//该注解可以使mvc来把json数据转换为对象处理
@EnableWebMvc

        spring配置类下两个注解,精准扫描除了controller包外的其他包即可

//该注解表明是一个配置类
@Configuration
//该注解用来扫描对应的除了controller包的其他包
//写成数组形式
@ComponentScan({"service","dao"})

         servlet容器初始化配置类无需注解,固定写法

(2)创建pojo包(或domin包),写对应的实体类book

主要包括三个部分:形参声明+tostring方法方便打印+get\set方法

(3)创建controller包---bookcontroller---使用restful风格简化书写

//该注解表明是一个bean
@RestController
//提取公共访问路径
@RequestMapping("/books")
public class BookController {
//表明动作行为,保存方法是post
    @PostMapping
    //传参需要使用注解RequestBody
    public String save(@RequestBody Book book){
        System.out.println("book save ==> "+ book);
        return "{'module':'book save success'}";
    }
//查询全部是get动作
    @GetMapping
    public List<Book> getAll(){
        System.out.println("book getAll is running ...");
        List<Book> bookList = new ArrayList<Book>();
//模拟后台传参数据给浏览器做响应
        Book book1 = new Book();
        book1.setType("计算机");
        book1.setName("SpringMVC入门教程");
        book1.setDescription("小试牛刀");
        bookList.add(book1);

        Book book2 = new Book();
        book2.setType("计算机");
        book2.setName("SpringMVC实战教程");
        book2.setDescription("一代宗师");
        bookList.add(book2);

        Book book3 = new Book();
        book3.setType("计算机丛书");
        book3.setName("SpringMVC实战教程进阶");
        book3.setDescription("一代宗师呕心创作");
        bookList.add(book3);

        return bookList;
    }

}

最后使用postman测试跑通即可

(4)页面处理

解决问题:springmvc拦截了所有资源可能使得前端页面无法正常访问

        处理:

                添加springmvcsupport配置类,并在springmvc配置类里加载扫描(数组形式)

springmvcsupportconfig

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    //设置静态资源访问过滤,当前类需要设置为配置类,并被扫描加载
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //当访问/pages/????时候,从/pages目录下查找内容
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");
    }
}

(5)绑定页面与后台controller功能

前端使用ajax传递数据,发送异步请求提交,模拟数据(前端发来数据,不进行数据库持久化处理;后端模拟数据,不是数据库存的,请求后在前端浏览器响应)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值