暂时先贴代码,笔记稍后补全
前端:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;IE=7;IE=EDGE;">
<title>RoseEcharts-JSON请求数据</title>
<!-- 引入 echarts.js -->
<script type="text/javascript" src="../js/echarts.js"></script>
<!-- 引入jquery.js -->
<!-- <script type="text/javascript" src="../js/jquery-1.7.2.js"></script>-->
<script type="text/javascript" src="../js/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
var chart = document.getElementById('chart');
var chartData = echarts.init(chart);
var color = []
s chartData.setOption({
series : [
{
name: '访问来源',
type: 'pie',
radius: '70%',
//修改
data:[],
roseType: 'radius',
}
]
});
var dataSet = [];
$.ajax({
url: URL + "/user/ercharts",
type: "POST",
dataType: "JSON",
success:function(returnData){
for(var x=0;x<returnData.data.length;x++) {
dataSet.push(returnData.data[x]);
color.push(RandomColor())
};
chartData.setOption({
series:[{
name: '访问来源',
//按照比例大小排序
data:dataSet.sort(function (a, b) { return a.value - b.value; }),
color:color
}]
});
}
});
function RandomColor(){
return '#' + (function(h){
return new Array(7 - h.length).join("0") + h
})((Math.random() * 0x1000000 << 0).toString(16));
}
});
</script>
</head>
<body>
<div id="chart" style="width: 500px; height: 400px;"></div>
</body>
</html>
后端:
public List count() { //daoImpl
String sql="SELECT COUNT(*) as 'value' ,b.address_name as 'name' FROM resume a LEFT JOIN address b ON a.address_id = b.address_id GROUP BY a.address_id ";
List list=jdbcTemplate.queryForList(sql);
return list;
}
//统计图
private void ercharts(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Result result=new Result();
if (userService.count()!=null)
{
System.out.println("list:"+userService.count());
result.setCode(0);
result.setData(userService.count().toArray());
System.out.println("JSON.toJSONString(result):"+JSON.toJSONString(result));
response.getWriter().write(JSON.toJSONString(result));
}else
{
result.setCode(1);
response.getWriter().write(JSON.toJSONString(result));
}
}
工具类:
package com.zlt.utils;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class JWTUtils {
private static long exp = 1000 * 60 * 60;//过期时间为一个小时
private static String security = "Zxcv.lZCDVJKbnadvs/;mklasdf,L:asbnm,.3ertyui5678";//密钥
/**
* 生成token
* @param uid
* @param username
* @return
*/
public static String toToken(String uid,String username){
Map header = new HashMap();
header.put("typ","JWT");
header.put("alg","HS256");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis() + exp);
return JWT.create().
withHeader(header).//头
withIssuedAt(new Date()).//发布时间
withExpiresAt(calendar.getTime()).//过期时间
withSubject("*"). //面向的用户
withClaim("uid",uid).
withClaim("username",username).
sign(Algorithm.HMAC256(security));//加密
}
/**
* 检查token是否存在和有效
* @return
*/
public static boolean checkToken(String token){
//token不能为空
if(!StringUtils.isNotNull(token)){
return false;
}
try {
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(security)).build();
DecodedJWT decodedJWT = verifier.verify(token);
} catch (JWTVerificationException e){
return false;
}
return true;
}
/**
* 从指定的token中获取指定的载荷
* @param token
* @param key
* @return
*/
public static String getMemberOftoken(String token,String key){
if(!checkToken(token)){
return null;
}
DecodedJWT decodedJWT = null;
try {
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(security)).build();
decodedJWT = verifier.verify(token);
} catch (JWTVerificationException e){
return null;
}
return decodedJWT.getClaim(key).asString();
}
}
效果图: