当前位置:   article > 正文

分离式前后端的交互(超详细)_前后端分离怎么实现交互代码

前后端分离怎么实现交互代码

前言

近期首次进军微信小程序的开发,采用前后端分离的开发模式。

本篇主要探究前后端的交互过程,前后端框架由于是初次接触,了解的并不多,写的比较粗糙,仅供初学者参考。

软件环境:HBuilder、IDEA

前端框架:uni-app(uniapp是基于vue框架,所以如果你会vue的话,来学uniapp会很简单)

后端框架:SpringMVC

前端:

1.新建uni-app项目

        文件-新建-项目,选择uni-app,这里的模板选择最简单就行,一口吃不了个大胖子

创建完成后就是这个样子,(utils是我自己写的工具类,可忽略):

说一下重要的文件或文件夹:

pages :所有的页面存放目录
static :静态资源目录,例如图片等
unpackage :就是打包目录,在这里有各个平台的打包文件
App.vue :是我们的根组件,所有页面都是在App.vue下进行切换的,是页面入口文件,可以调用应用的生命周期函数。
main.js :是我们的项目入口文件,主要作用是初始化vue实例并使用需要的插件。
manifest.json :文件是应用的配置文件,用于指定应用的名称、图标、权限等。
pages.json :文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等
uni.scss :文件的用途是为了方便整体控制应用的风格。比如按钮颜色、边框风格,uni.scss文件里预置了一批scss变量预置。

2.向后端发送请求

下面打开pages里面的index.vue 在里面写访问后端的js:

  1. <script>
  2. export default {//这一块是文件自带的
  3. data() {
  4. return {
  5. title: 'Hello world!'
  6. }
  7. },
  8. onLoad() {},
  9. methods: {}
  10. }
  11. uni.request({
  12. url: 'http://localhost:8080/book/test?id=4', //http://localhost:端口号/后端路径
  13. data: {//参数
  14. type: 3,
  15. id:2,
  16. },
  17. header: {
  18. // 'Content-Type': 'application/x-www-form-urlencoded'
  19. 'Content-Type': 'application/json' //自定义请求头信息
  20. },
  21. method:'POST',//请求方式,必须为大写
  22. success: (res) => {
  23. console.log('接口返回------',res);
  24. }
  25. })
  26. </script>

后端:

1.打开IDEA,新建项目

File-new-project,选择maven项目:

下面的步骤随便填就可以,最后新项目建好了就是这个样子:

注意建好之后还没有web这一个文件夹,此时还不是web项目,需要进一步操作:

file-project structure-modules-加号-web,后面一路OK就可以了,完事后就和我的文件夹一样了。

2.在pom.xml引入配置:

  1. <dependencies>
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>servlet-api</artifactId>
  5. <version>2.5</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-webmvc</artifactId>
  10. <version>5.1.9.RELEASE</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.projectlombok</groupId>
  14. <artifactId>lombok</artifactId>
  15. <version>1.18.12</version>
  16. </dependency>
  17. </dependencies>

3.在web.xml引入配置:

  1. <!--注意以下内容均写在<web-app>标签内-->
  2. <filter>
  3. <filter-name>encodingFilter</filter-name>
  4. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  5. <init-param>
  6. <param-name>encoding</param-name>
  7. <param-value>utf-8</param-value>
  8. </init-param>
  9. </filter>
  10. <filter-mapping>
  11. <filter-name>encodingFilter</filter-name>
  12. <url-pattern>/*</url-pattern>
  13. </filter-mapping>
  14. <servlet>
  15. <!--前端控制器 前端的请求将会发送到这里-->
  16. <servlet-name>DispatcherServlet</servlet-name>
  17. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  18. <init-param>
  19. <param-name>contextConfigLocation</param-name>
  20. <param-value>classpath:applicationContext.xml</param-value>
  21. </init-param>
  22. <load-on-startup>1</load-on-startup>
  23. </servlet>
  24. <!--将前端请求过滤,静态资源或接口将会分别处理-->
  25. <servlet-mapping>
  26. <servlet-name>DispatcherServlet</servlet-name>
  27. <url-pattern>/</url-pattern>
  28. </servlet-mapping>
  29. <!--session 过期时间-->
  30. <session-config>
  31. <!--15分钟-->
  32. <session-timeout>15</session-timeout>
  33. </session-config>

4.添加SpringMVC核心配置文件

        src-main-resources下,添加两个xml文件:

        (1)spring-mvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/mvc
  7. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context.xsd
  10. http://www.springframework.org/schema/beans
  11. http://www.springframework.org/schema/beans/spring-beans.xsd">
  12. <!--开启注解扫描 起到处理器映射器 handlerMapping 和 处理器适配器 handlerAdapter 的作用-->
  13. <mvc:annotation-driven/>
  14. <!--拦截器 对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,
  15. 就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。-->
  16. <mvc:default-servlet-handler/>
  17. <!--扫描该包下所有的注解-->
  18. <context:component-scan base-package="com.magic.controller"/>
  19. </beans>

        (2)application-Context.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!--将spring-mvc.xml引入到上下文-->
  6. <import resource="spring-mvc.xml"/>
  7. </beans>

5.编写接口获取前端请求

  1. @Controller
  2. @RequestMapping("/book")
  3. public class Book {
  4. //回忆一下前端的url---url: 'http://localhost:8080/book/test?id=4'
  5. @RequestMapping("/test")
  6. @ResponseBody
  7. public String test(String id){//这里的id是url中?后面的内容,名字要一致
  8. System.out.println("来到后端!!");
  9. System.out.println(id);
  10. return id;
  11. }
  12. }

6.配置tomcat

来到右上角:

按图示操作:

点击OK

最后点击运行,如果正常的话这里会是一个绿色的对勾:

7.可能出现的问题

如果不是绿色对勾,而是黄色的感叹号,可能是这里的war包没有打好:

删掉它,重新按照如下步骤打一遍,File-Project Structure,然后OK,重新运行项目:

8.打完收工

在tomcat运行的状态下,在HBuilder中运行前端,观察前后端控制台:

可以看到后端拿到了前端的请求,前端也获得了来自后端的数据,前后端的交互完成!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/555611
推荐阅读