• 异步请求-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. }

  • 相关阅读:
    基于Java的图书管理系统(附:源码和课件)
    2023年显著性检测论文及代码汇总(3)
    【遥感科学】遥感科学绪论
    【Java 进阶篇】JQuery 动画:为页面添彩的魔法
    Linux安装Anaconda
    学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计 汉语言文学设计题材网页
    显存充足却提示out of memory
    【RNA folding】RNA折叠算法与生物物理约束
    【限时】21天学习挑战赛 - 经典算法
    视频监控/安防监控平台EasyCVR(V.3.4.0)界面更新大曝光,速来抢先看!
  • 原文地址:https://blog.csdn.net/weixin_51722520/article/details/126764538