zoukankan      html  css  js  c++  java
  • MongDB日志分析可视化展示

    今天进行了MongDB日志分析的可视化展示;

    下面是操作流程和代码:

    html界面:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <script src="echarts.js"></script>
    <script src="js/jquery.min.js"></script>
    <body>
    <div id="main" style="height:500%;"></div>
    <button onclick="getdata()">点击</button>
    <div id="main" style="height:500%;"></div>
    </body>
    <script>
    var ip= new Array(0);
    var count= new Array(0);
    function getdata(){
    var url = "servlet?method=setdata&randnum=" + Math.random();
    $.ajax({
    type: "get",
    url: url,
    data: [],
    dataType: "json",
    success: function(result){
    fenli(result)
    showbar()

    },
    error: function(){
    alert("错误");
    }
    });
    }
    function showbar() {
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;

    option = {
    xAxis: {
    type: 'category',
    data: ip
    },
    yAxis: {
    type: 'value'
    },
    series: [
    {
    data:count,
    type: 'bar',
    showBackground: true,
    backgroundStyle: {
    color: 'rgba(180, 180, 180, 0.2)'
    }
    },
    ]
    };

    option && myChart.setOption(option);
    }
    function fenli(data){
    for(i in data){
    ip.push(data[i].ip)
    count.push(data[i].count)

    }
    }
    </script>
    </html>

    package com.test;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.stream.Collectors;
    public class Dao {
    public ArrayList<BarBean> select_all(){

    Connection conn = null;
    Statement stmt=null;
    ResultSet rst = null;
    try{
    conn = DBUtil.getConnection();
    stmt = conn.createStatement();
    String sql = "select * from top101";
    rst = stmt.executeQuery(sql);
    ArrayList<BarBean> array = new ArrayList<BarBean>();
    while(rst.next())
    {
    BarBean bar = new BarBean();
    bar.setIp(rst.getString("ip"));
    bar.setCount(rst.getString("count"));
    System.out.println(bar.ip+bar.count);
    array.add(bar);
    }
    stmt.close();
    rst.close();
    return array;

    }catch(SQLException e){
    System.out.println("Error");
    return new ArrayList<BarBean>();
    }
    }
    public static Map<String,Integer> getrc()
    {
    int tnumi=0;
    String sql="select * from bar ";
    Map<String, Integer>map= new HashMap<String, Integer>();
    Map<String, Integer>results= new LinkedHashMap<String, Integer>();
    Connection conn =DBUtil.getConnection();
    Statement st=null;
    ResultSet rs=null;
    try {
    st=conn.createStatement();
    st.executeQuery(sql);
    rs=st.executeQuery(sql);
    while(rs.next())
    {
    String keywords=rs.getString("name");
    keywords=keywords.substring(1, keywords.length());
    String[] split = keywords.split(" ");
    for(int i=0;i<split.length;i++)
    {
    if(map.get(split[i])==null)
    {
    map.put(split[i],1);
    }
    else
    {
    map.replace(split[i], map.get(split[i])+1);
    }
    }
    tnumi++;
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    DBUtil.close(rs, st, conn);
    map.entrySet()
    .stream()
    .sorted((p1, p2) -> p2.getValue().compareTo(p1.getValue()))
    .collect(Collectors.toList())
    .forEach(ele -> results.put(ele.getKey(), ele.getValue()));
    return results;
    }
    }

    servlet层:

    package com.test;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;

    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 net.sf.json.JSONArray;
    import net.sf.json.JSONObject;

    /**
    * Servlet implementation class servlet
    */
    @WebServlet("/servlet")
    public class Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    Dao dao=new Dao();
    public void setdata(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=UTF-8");
    System.out.println("调用了方法");
    JSONArray json=new JSONArray();
    List<BarBean> list = dao.select_all();
    for(int i=0;i<list.size();i++) {
    JSONObject ob=new JSONObject();
    ob.put("ip", list.get(i).getIp());
    ob.put("count", list.get(i).getCount());
    json.add(ob);
    }
    System.out.println(json.toString());
    PrintWriter out = response.getWriter();
    //out.write("[120, 200, 150, 80, 70, 110, 130]");
    System.out.println(list.size());
    response.getWriter().write(json.toString());
    }
    /**
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    request.setCharacterEncoding("utf-8");
    String method=request.getParameter("method");
    if(method.equals("setdata")) {
    try {
    setdata(request,response);
    } catch (ServletException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }

    /**
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }

    }

    bean层:

    package com.test;

    public class BarBean {

    public BarBean(String ip, String count) {
    super();
    this.ip = ip;
    this.count = count;
    }

    public String ip,count;

    public String getIp() {
    return ip;
    }

    public void setIp(String ip) {
    this.ip = ip;
    }

    public String getCount() {
    return count;
    }
    public BarBean(){

    }
    public void setCount(String count) {
    this.count = count;
    }


    }

    连接数据库:

    package com.test;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    public class DBUtil {

    private static String url = "jdbc:mysql://localhost:3306/words?serverTimezone=UTC";
    private static String user = "root";
    private static String password = "123456";
    private static String jdbcName="com.mysql.cj.jdbc.Driver";
    private Connection con=null;
    public static Connection getConnection() {
    Connection con=null;
    try {
    Class.forName(jdbcName);
    con=DriverManager.getConnection(url, user, password);
    System.out.println("连接成功");
    } catch (Exception e) {
    // TODO Auto-generated catch block
    System.out.println("连接失败");
    e.printStackTrace();
    }
    try {
    con = DriverManager.getConnection(url,user,password);
    System.out.println("连接成功");


    } catch (SQLException e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    return con;
    }
    public static void close(Connection con) {
    if(con!=null)
    try {
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    public static void close(Statement state, Connection conn) {
    if(state!=null) {
    try {
    state.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(conn!=null) {
    try {
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

    public static void close(ResultSet rs, Statement state, Connection conn) {
    if(rs!=null) {
    try {
    rs.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(state!=null) {
    try {
    state.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    if(conn!=null) {
    try {
    conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    }

    另外两个项目类似

    下面是运行截图:

     

     

  • 相关阅读:
    习题四 答案
    习题五 答案
    习题三 答案
    习题二 答案
    习题一 答案
    mysqldump 备份
    centos mysql 数据迁移
    常用操作命令
    mysql 日期处理
    thinkphp3.2.3 使用配置
  • 原文地址:https://www.cnblogs.com/092e/p/15530471.html
Copyright © 2011-2022 走看看