最简单,小白易上手 ajax请求数据库信息,echarts页面显示,无需跳转servlet

ajax 代码:

$.ajax({
    type : "post",
    async : true,
    url : "${pageContext.request.contextPath}/charts",
    type:"POST",
    data:
        {
        "method":"huizhu"
        },
    dataType:"json",
    success:function(result) {

        if(result)
        {
            myChart.hideLoading();

               myChart.setOption({        //加载数据图表
                xAxis: {
                    data: result.xAxis
                },
                series: [
                    {
                        data: result.series[0].data
                     },
                     {
                         data: result.series[0].data
                      }
                    ]
            });
        }

   },
    error : function(errorMsg) {
        //请求失败时执行该函数
    alert("请求数据失败!");
   // myChart.hideLoading();
    }
});

servlet代码:

 1    private void Zhu(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 2           // TODO Auto-generated method stub
 3           //response.getWriter().append("Served at: ").append(request.getContextPath());
 4           req.setCharacterEncoding("utf-8");
 5           resp.setContentType("text/html;charset=utf-8");
 6           HttpSession session=req.getSession();
 7           PrintWriter out=resp.getWriter();
 8         System.out.println("AAAAAAAAAAAAA");
 9         //resp.sendRedirect(req.getContextPath() + "/right.jsp");
10         List<String> xAxisData = new ArrayList<String>();
11         List<JSONObject> seriesList = new ArrayList< JSONObject>();
12
13         List<AnalysisBean> beans=new ArrayList<AnalysisBean>();
14         beans=AnalysisDao.select_answer();
15         for(AnalysisBean n:beans)
16         {
17             String str=n.getName();
18             xAxisData.add(str);
19         }
20         List<Integer> list=new ArrayList<Integer>();
21
22         for(AnalysisBean n:beans)
23         {
24             int nu=Integer.parseInt(n.getNum());
25             list.add(nu);
26         }
27
28          Series series=new Series("回答问题机构","bar",list);
29          JSONObject job = new JSONObject();
30          job.put("name", series.getName());
31          job.put("type", series.getType());
32          job.put("data",series.getData());
33          seriesList.add(job);
34
35          series=new Series("回答问题机构","line",list);
36          job = new JSONObject();
37          job.put("name", series.getName());
38          job.put("type", series.getType());
39          job.put("data",series.getData());
40          seriesList.add(job);
41
42          JSONObject jsob = new JSONObject();
43          jsob.put("xAxis", xAxisData);
44          jsob.put("series", seriesList);
45
46         resp.setCharacterEncoding("UTF-8");
47         System.out.println(jsob.toString());
48           //resp.sendRedirect(req.getContextPath() + "/admin/child/Child_11/1_Rcai.jsp");
49         resp.getWriter().write(jsob.toString());
50           }

所有代码:

html:

  1 <%@ page language="java" contentType="text/html; charset=UTF-8"
  2     pageEncoding="UTF-8"%>
  3 <!DOCTYPE html>
  4 <html style="height: 100%">
  5    <head>
  6        <meta charset="utf-8">
  7    </head>
  8    <body style="height: 100%; margin: 0">
  9        <div id="container" style="height: 100%"></div>
 10        <script type="text/javascript" src="${pageContext.request.contextPath}/static/echarts.min.js"></script>
 11    <script type="text/javascript" src="${pageContext.request.contextPath}/static/jquery-1.11.3.min.js"></script>
 12        <script type="text/javascript">
 13 var dom = document.getElementById("container");
 14 var myChart = echarts.init(dom);
 15 var app = {};
 16 option = null;
 17 option = {
 18         title: {
 19             text: ‘回答类型排序‘,
 20             subtext: ‘数据为真实数据‘
 21         },
 22     tooltip: {
 23         trigger: ‘axis‘,
 24         axisPointer: {
 25             type: ‘cross‘,
 26             crossStyle: {
 27                 color: ‘#999‘
 28             }
 29         }
 30     },
 31     toolbox: {
 32         feature: {
 33             dataView: {show: true, readOnly: false},
 34             magicType: {show: true, type: [‘line‘, ‘bar‘]},
 35             restore: {show: true},
 36             saveAsImage: {show: true}
 37         }
 38     },
 39
 40
 41
 42
 43     legend: {
 44         data: [‘回答问题机构‘, ‘平均温度‘]
 45     },
 46     xAxis: [
 47         {
 48             type: ‘category‘,
 49             data:[],
 50             axisLabel: {
 51                 interval: 0,
 52                 formatter:function(value)
 53                 {
 54                     debugger
 55                     var ret = "";//拼接加\n返回的类目项
 56                     var maxLength = 2;//每项显示文字个数
 57                     var valLength = value.length;//X轴类目项的文字个数
 58                     var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
 59                     if (rowN > 1)//如果类目项的文字大于3,
 60                     {
 61                         for (var i = 0; i < rowN; i++) {
 62                             var temp = "";//每次截取的字符串
 63                             var start = i * maxLength;//开始截取的位置
 64                             var end = start + maxLength;//结束截取的位置
 65                             //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
 66                             temp = value.substring(start, end) + "\n";
 67                             ret += temp; //凭借最终的字符串
 68                         }
 69                         return ret;
 70                     }
 71                     else {
 72                         return value;
 73                     }
 74                 }
 75             },
 76         grid: {
 77                 left: ‘10%‘,
 78                 bottom:‘35%‘
 79         }
 80
 81         }
 82     ],
 83     yAxis: [
 84         {
 85             type: ‘value‘,
 86
 87         }
 88     ],
 89     series: [
 90         {
 91             name: ‘回答问题机构‘,
 92             type: ‘bar‘,
 93             data: []
 94          },
 95
 96         {
 97             name: ‘回答问题机构‘,
 98             type: ‘line‘,
 99             data:[]
100         }
101     ]
102 };
103
104 myChart.showLoading();
105
106 $.ajax({
107     type : "post",
108     async : true,
109     url : "${pageContext.request.contextPath}/charts",
110     type:"POST",
111     data:
112         {
113         "method":"huizhu"
114         },
115     dataType:"json",
116     success:function(result) {
117
118         if(result)
119         {
120             myChart.hideLoading();
121
122                myChart.setOption({        //加载数据图表
123                 xAxis: {
124                     data: result.xAxis
125                 },
126                 series: [
127                     {
128                         data: result.series[0].data
129                      },
130                      {
131                          data: result.series[0].data
132                       }
133                     ]
134             });
135         }
136
137    },
138     error : function(errorMsg) {
139         //请求失败时执行该函数
140     alert("请求数据失败!");
141    // myChart.hideLoading();
142     }
143 });
144 if (option && typeof option === "object") {
145     myChart.setOption(option, true);
146 }
147
148        </script>
149    </body>
150 </html>

ECHARTS

SEWRVLET:

 1 package com.servlet;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.ArrayList;
 6 import java.util.List;
 7
 8 import javax.servlet.ServletException;
 9 import javax.servlet.annotation.WebServlet;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13 import javax.servlet.http.HttpSession;
14
15 import org.json.JSONArray;
16 import com.bean.AnalysisBean;
17 import com.bean.Series;
18 import com.dao.AnalysisDao;
19 import com.alibaba.fastjson.JSONObject;
20
21
22 /**
23  * Servlet implementation class charts
24  */
25 @WebServlet("/charts")
26 public class charts extends HttpServlet {
27     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
28         // TODO Auto-generated method stub
29         req.setCharacterEncoding("utf-8");
30         String method = req.getParameter("method");
31         if ("zhu".equals(method)) {
32             Zhu(req, resp);
33         }
34
35
36     }
37     /**
38      * @see HttpServlet#HttpServlet()
39      */
40     public charts() {
41         super();
42         // TODO Auto-generated constructor stub
43     }
44
45     /**
46      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
47      */
48     private void Zhu(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
49           // TODO Auto-generated method stub
50           //response.getWriter().append("Served at: ").append(request.getContextPath());
51           req.setCharacterEncoding("utf-8");
52           resp.setContentType("text/html;charset=utf-8");
53           HttpSession session=req.getSession();
54           PrintWriter out=resp.getWriter();
55         System.out.println("AAAAAAAAAAAAA");
56         //resp.sendRedirect(req.getContextPath() + "/right.jsp");
57         List<String> xAxisData = new ArrayList<String>();
58         List<JSONObject> seriesList = new ArrayList< JSONObject>();
59
60         List<AnalysisBean> beans=new ArrayList<AnalysisBean>();
61         beans=AnalysisDao.select_answer();
62         for(AnalysisBean n:beans)
63         {
64             String str=n.getName();
65             xAxisData.add(str);
66         }
67         List<Integer> list=new ArrayList<Integer>();
68
69         for(AnalysisBean n:beans)
70         {
71             int nu=Integer.parseInt(n.getNum());
72             list.add(nu);
73         }
74
75          Series series=new Series("回答问题机构","bar",list);
76          JSONObject job = new JSONObject();
77          job.put("name", series.getName());
78          job.put("type", series.getType());
79          job.put("data",series.getData());
80          seriesList.add(job);
81
82          series=new Series("回答问题机构","line",list);
83          job = new JSONObject();
84          job.put("name", series.getName());
85          job.put("type", series.getType());
86          job.put("data",series.getData());
87          seriesList.add(job);
88
89          JSONObject jsob = new JSONObject();
90          jsob.put("xAxis", xAxisData);
91          jsob.put("series", seriesList);
92
93         resp.setCharacterEncoding("UTF-8");
94         System.out.println(jsob.toString());
95           //resp.sendRedirect(req.getContextPath() + "/admin/child/Child_11/1_Rcai.jsp");
96         resp.getWriter().write(jsob.toString());
97           }

SERVLET

原文地址:https://www.cnblogs.com/smartisn/p/12246918.html

时间: 2024-10-14 09:21:10

最简单,小白易上手 ajax请求数据库信息,echarts页面显示,无需跳转servlet的相关文章

我爱Java系列---【SpringMVC传统方式的文件上传和前端获取数据库图片在页面显示】

一.文件上传 说明:传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上.并且上传完成之后,浏览器可能跳转. 1. 第一步:创建 maven 工程并导入 commons-fileupload 坐标 1 <dependency> 2 <groupId>commons-fileupload</groupId> 3 <artifactId>commons-fileupload</artifactId> 4 <version&g

laravel 返回ajax请求错误信息 第二种

public function login(Request $request) { $info = Validator::make($request->all(), [ 'username' => 'required', 'password' => 'required', ],[ 'username.required' => '用户名必须填写', 'password.required' => '密码必须填写', ]); if ($info->fails()) { //返

JavaScript解决一个带验证的Form两个Submit事件(一个页面保持不动【AJAX实现】,一个页面提交并跳转)的场景

<form class="form-horizontal" action="/biz/patent/edit" method="post" enctype="multipart/form-data" data-toggle="validator" role="form" novalidate="true" id="patentEditForm"

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中):Ajax请求

dTree无限级文件夹树和JQuery同步Ajax请求

曾经都是用JQuery对树的支持来实现文件夹树的,近来闲来无事就弄了下dTree,感觉其无限级文件夹还是挺好的,并且它的使用也比較方便,基本上就是先把要用的js文件即dtree.js和css文件dtree.css引入,另外就是它默认的图片.当然这些图片都是能够自己指定的,它的css样式也能够自己改变的. 关于dTree就先谈谈它的node,dTree的node的构造方法能够指定下列參数, Js代码 id //唯一标识.数字型 pid//父节点的id,假设是根结点那就仅仅能是-1,一般来讲仅仅有一

dTree无限级目录树和JQuery同步Ajax请求

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree.css引入,另外就是它默认的图片,当然这些图片都是可以自己指定的,它的css样式也可以自己改变的! 关于dTree就先谈谈它的node,dTree的node的构造方法可以指定下列参数, Js代码 id //唯一标识,数字型 pid//父节点的id,如果是根结点那就只能是-1,一般来讲只有一个最顶层

AJAX请求提交数据

1,AJAX准备知识:JSON JSON指的是JavaScript对象表示方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON具有自我描述性, 更易理解 JSON使用JavaScript语法来描述数据对象,但是JSon仍然独立于语言和平台,json解析器和json库支持许多不同的语言 合格的json对象: ["雪雪","小雪","雪儿","小雪砸",&q

AJAX请求和跨域请求详解(原生JS、Jquery)

一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 本博客实验环境: python:2.7.11 web框架:tonado jquery:2.1.1 二.“伪”AJAX 由于

PHP处理Ajax请求与Ajax跨域

PHP判断是否为Ajax请求 我们知道,在发送ajax请求的时候,可以通过XMLHttpRequest这个对象,创建自定义的header头信息, 在jquery框架中,对于通过它的$.ajax, $.get, 或者$.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,php中就是在header一层判断是否是ajax请求,对应的根据$_SERVER['HTTP_X_REQUESTED_WITH']判断.一般情况下$_SERVER['HTTP_X_RE