第08讲:Vue+axios

news/2025/4/2 15:22:47/

一、浅试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 {@Overrideprotected 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


http://www.ppmy.cn/news/23024.html

相关文章

操作符(运算符)详解

&#x1f680;&#x1f680;&#x1f680;大家觉不错的话&#xff0c;就恳求大家点点关注&#xff0c;点点小爱心&#xff0c;指点指点&#x1f680;&#x1f680;&#x1f680; 目录 &#x1f430;算数操作符&#xff1a; - * / % &#x1f430;移位操作符&#x…

代码版本方案Trunk Based,Git Flow,Aone Flow

1 Trunk Based Trunk Based只有一个master主干&#xff0c;每个人都在本地写新代码&#xff0c;达到可提交程度的时候&#xff0c;就往master合并。如下图&#xff1a; 关键点&#xff1a; 1. 这种模式在本地和 master 之间不存在一个缓冲的区域&#xff0c;所以从本地 commi…

101.第十九章 MySQL数据库 -- MySQL的日志管理(十一)

4.6 日志管理 MySQL 支持丰富的日志类型,如下: 事务日志:transaction log 事务日志的写入类型为“追加”,因此其操作为“顺序IO”;通常也被称为:预写式日志 write ahead logging 事务日志文件: ib_logfile0, ib_logfile1 错误日志 error log 通用日志 general log 慢查…

数据结构与算法-双向链表

Java高级系列文章前言 本文章涉及到数据结构与算法的知识&#xff0c;该知识属于Java高级阶段&#xff0c;通常为学习的二阶段&#xff0c;本系列文章涉及到的内容如下&#xff08;橙色框选内容&#xff09;&#xff1a; 本文章核心是教学视频&#xff0c;所以属于个人笔记&a…

设计模式:工厂模式解决创建逻辑复杂问题

一、创建对象案例 在下面代码中&#xff0c;根据配置文件的后缀&#xff08;json、xml、yaml、properties&#xff09;&#xff0c;选择不同的解析器&#xff08;JsonRuleConfigParser、XmlRuleConfigParser……&#xff09;&#xff0c;将存储在文件中的配置解析成内存对象Ru…

5 个 springboot配置文件注入参数说明

有人说&#xff1a;一个人从1岁活到80岁很平凡&#xff0c;但如果从80岁倒着活&#xff0c;那么一半以上的人都可能不凡。 生活没有捷径&#xff0c;我们踩过的坑都成为了生活的经验&#xff0c;这些经验越早知道&#xff0c;你要走的弯路就会越少。 在SpringBoot中注入各种类…

lammps教程:Zhou势拟合程序python版

大家好&#xff0c;我是小马老师。 本文介绍一个lammps合金势的拟合程序。 做过金属模拟的应该都知道Zhou合金势&#xff0c;专栏也对其使用方法进行过详细的介绍。 早期的Zhou势用Fortran编写&#xff0c;在使用之前需要进行对源代码进行编译&#xff0c;很多同学并不熟悉F…

一起学习用Verilog在FPGA上实现CNN----(五)integrationConv设计

1 integrationConv设计 LeNet-5网络结构卷积部分如图所示&#xff0c;该部分有3个卷积层&#xff0c;3个TanH激活层&#xff0c;2个平均池化层&#xff1a; 图片来自附带的技术文档《Hardware Documentation》 输入图像大小为32x32&#xff0c;因此第一层卷积Conv1的输入为32…