• 异步请求-Axios


            异步请求(get,post)------页面直接响应,不再跳转.

            vue向后端发送数据只能发送对象,不能发送数组,因为后端JOSN转化时只能是接受对象的类型,这里后台接受的是Product对象,所以只能是以对象形式发送.

    1. <h1>异步请求h1>
    2. <div>
    3. <input type="text" v-model="info">
    4. <input type="button" value="异步get请求" @click="f1()">
    5. <input type="button" value="异步post请求" @click="f2()">
    6. div>
    7. <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js">script>
    8. <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js">script>
    9. <script>
    10. let v = new Vue({
    11. el: "body>div",
    12. data: {
    13. info:"",
    14. let user = {username: "tom", password: "123", nick: "taomu"}
    15. },
    16. methods: {
    17. f1() {
    18. //发出异步get请求 response代表响应里面有服务器响应数据
    19. axios.get("/hello?info="+v.info).then(function (response) {
    20. //服务器响应会执行此代码
    21. //response.data代表服务器响应数据
    22. alert(response.data)
    23. })
    24. }
    25. f2() {
    26. //通过js对象将多个值封装在一起
    27. //发出异步post请求 | let user
    28. axios.post("/postAxios", user).then(function (response) {
    29. alert(response.data)
    30. })
    31. }
    32. }
    33. })
    34. script>

            通过绑定vue方法@click:" f( ) ", 在vue的methods方法中添加Axios请求.

             axios.get("/hello?info="+v.info).then(function (response) {
                        //服务器响应会执行此代码
                        //response.data代表服务器响应数据
                        alert(response.data)
                    })

    get()中存放请求的路径("/xxx")在后台Controller接受的值,同form表单的 action一样。

    。then表示后面跟随的方法,绑定回调函数,并且保证回调函数被执行,里面存放的是方法

    response.data代表服务器响应数据,在Controller中 return 返回的值直接发送到response.data。

            @blur="f()">{{info}},鼠标失去焦点位置自动触发方法.

    1. @RestController
    2. public class AxiosController {
    3. @RequestMapping("/hello")
    4. public String hello(String info) {
    5. return "Helleo Axios"+info;
    6. }
    7. }

    二、异步请求下的用户注册与登录

    Controller层

    1. @RestController
    2. public class UserController {
    3. @Autowired
    4. UserMapper mapper;
    5. @RequestMapping("/check")
    6. public int check(User user) {
    7. String u = mapper.select(user.getUsername());
    8. if (u != null) {
    9. return 1;
    10. }
    11. return 2;
    12. }
    13. @RequestMapping("/reg")
    14. public String reg(@RequestBody User user) {
    15. String u = mapper.select(user.getUsername());
    16. if (u != null) {
    17. return "用户存在";
    18. }
    19. mapper.insert(user);
    20. return "注册成功";
    21. }
    22. }

    Mapper层

    1. @Mapper
    2. public interface UserMapper {
    3. @Select("select password from user where username=#{username}")
    4. String select(String username);
    5. @Insert("insert into user values(null,#{username},#{password},#{nick})")
    6. void insert(User user);
    7. }

    Entity层

            mapper自动将controller接受的值set到sql执行语句中,所以不用添加set方法,get方法mapper需要,所以必须写。

    1. public class User {
    2. private Integer id;
    3. private String username;
    4. private String password;
    5. private String nick;
    6. public User() {
    7. }
    8. public User(Integer id, String username, String password, String nick) {
    9. this.id = id;
    10. this.username = username;
    11. this.password = password;
    12. this.nick = nick;
    13. }
    14. public Integer getId() {
    15. return id;
    16. }
    17. public String getUsername() {
    18. return username;
    19. }
    20. public String getPassword() {
    21. return password;
    22. }
    23. }

  • 相关阅读:
    springboot毕设项目医疗纠纷处理系统zwxts(java+VUE+Mybatis+Maven+Mysql)
    Tensorflow图像识别 Tensorflow手写体识别(一)
    Word处理控件Aspose.Words功能演示:在 Python 中自动合并 MS Word 邮件
    KeenTune的算法之心——KeenOpt 调优算法框架 | 龙蜥技术
    Vue Inject & Provided
    PL/SQL 事务
    Leetcoder Day29| 贪心算法part03
    数据库系列:MySQL引擎MyISAM和InnoDB的比较
    <el-date-picker> 设置默认yyyy-MM-dd以及限制规则
    可信执行环境(Tee)入门综述
  • 原文地址:https://blog.csdn.net/weixin_51722520/article/details/126764538