第08讲:Vue+axios

一、浅试axios

实现如图效果

思路分析:

图片.png
数据库中的数据:

使用vue请求servlet响应的数据效果:

1.1、后台开发

1.1.1、实体层开发

package entity;

public class Account {
    private String cardNo; //卡号
    private String passwd; //密码
    private float money; //余额

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public float getMoney() {
        return money;
    }

    public void setMoney(float money) {
        this.money = money;
    }
}

1.1.2、DAO层开发

接口:

package dao;

import entity.Account;

import java.util.List;

public interface AccountDAO {
    public List<Account> selectAll();
}

实现类:

package dao.impl;

import dao.AccountDAO;
import entity.Account;
import utils.BaseDAO;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class AccountDAOImpl extends BaseDAO implements AccountDAO {

    public List<Account> selectAll() {
        List<Account> acs = new ArrayList<Account>();
        String sql = "select * from t_atm";
        ResultSet rs = this.executeQuery(sql);
        try {
            while(rs.next()){
                Account a = new Account();
                a.setCardNo(rs.getString("card_no"));
                a.setPasswd(rs.getString("passwd"));
                a.setMoney(rs.getFloat("money"));
                acs.add(a);
            }
            this.closeAll(); //释放资源
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return acs;
    }
}

1.1.3、controller层开发

pom添加fastjson坐标

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.79</version>
</dependency>

创建Servlet

package controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONWriter;
import com.mysql.cj.xdevapi.JsonParser;
import com.mysql.cj.xdevapi.JsonString;
import dao.AccountDAO;
import dao.impl.AccountDAOImpl;
import entity.Account;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet("/account_list")
public class AccountServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //处理中文乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
//        resp.setContentType("text/html;charset=utf8");
        resp.setContentType("application/json;charset=utf8");

        //向页面输出内容
        PrintWriter writer = resp.getWriter();

        //将数据查出来
        AccountDAO dao = new AccountDAOImpl();
        List<Account> acs = dao.selectAll();

        //向页面输出内容
        String str = JSON.toJSONString(acs);
        writer.print(str);

        writer.close(); //释放资源
    }
}

1.1.4、测试


1.2、开发前端vue

1.2.1、使用axios请求Servlet

在html中借助vue使用axios请求servlet

第1步:导入axios的js库

图片.png

第2步:使用axios发送请求

图片.png

全部代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="assests/vue.min-v2.5.16.js"></script>
    <script src="assests/axios.min.js"></script>
</head>
<body>
    <div id="app">
        <table border="1" cellspacing="0" cellpadding="10">
            <tr>
                <th>卡号</th>
                <th>余额</th>
                <th>密码</th>
            </tr>
            <tr v-for="ac in accounts">
                <td>{{ac.cardNo}}</td>
                <td>{{ac.money}}</td>
                <td>{{ac.passwd}}</td>
            </tr>
        </table>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                accounts: null
            },
            //页面价值完成后执行
            created: function () {
                console.log("页面加载完成了")
                //发送请求,请求Sevlet获取数据
                axios.get("account_list").then(response => {
                    console.log(response);
                    this.accounts = response.data;
                });
            }
        });
    </script>
</body>
</html>

1.2.2、运行效果

将项目部署到tomcat中,浏览器访问html页面
http://localhost:8080/demo01.html

图片.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值