加载文件列表浅析

2019-03-02  本文已影响0人  nzdnllm

加载当前业务线下jmx文件列表方法loadBusinessLineCase()--js

// 加载业务线监控接口 
    function loadBusinessLineCase(lineName) {
        url = "getMonitorCaseOfBzLine"; 
        $.post(
            url,
            {
                "lineName" : lineName  //业务线名称
            },
            function(data) {  //data为接口的返回值,以下为根据接口返回展示界面
                if(data.status == "1") {  //根据status修改配置信息,显示当前状态是否在监控
                    document.getElementById("startMonitorBtn").innerText = "停止监控"
                    document.getElementById("monitorFreq").disabled = true;
                    
                } else {
                    document.getElementById("startMonitorBtn").innerText = "开始监控"
                    document.getElementById("monitorFreq").disabled = true;
                }
                document.getElementById("monitorFreq").value = data.frequency //展示监控频率
                
                var total = data.total;
                var itemContent = "<h5 class=summary id=summary> 共找到" + total + "条数据</h5>"
                var json_array = data.data;
                itemContent += "<div class=panel-group id=accordion>"
                for (var i = 0; i < json_array.length; i++) {
                    itemContent += "<div class='panel panel-success'>"
                    itemContent += "<div class=panel-heading>"
                    itemContent += "<h4 class=panel-title style=float:left>"
                    itemContent += "<a data-toggle=collapse data-parent=#accordion href=#collapse" + json_array[i].id + ">"
                    itemContent += "用例名称: " + json_array[i].fileName
                    itemContent += "</a></h4>"
                    itemContent += "<a style=float:right; href=javascript:copy('" + json_array[i].id + "');>前往接口测试平台</a>"
                    itemContent += "<div style=clear:both></div>"
                    itemContent += "</div>"
                    itemContent += "<div id=collapse" + json_array[i].id + " class='panel-collapse collapse'>"
                    itemContent += "<div class=panel-body>"
                    itemContent += " Event: XXXXXXXXX"
                    itemContent += "</div></div></div>"
                }
                itemContent += "</div>"
        
                removeElementById("accordion"); //删除之前的控件
                removeElementById("summary");//删除之前的控件
                $(".seperator1").after(itemContent);//显示本次的控件   
            }, "json")
    
    }

web.xml配置

<servlet>
        <servlet-name>getMonitorCaseOfBzLine</servlet-name>
        <servlet-class>com.xxx.servlet.GetMonitorCaseOfBzLineServlet</servlet-class>
        <init-param>
            <param-name>monitorCaseRootPath</param-name>
            <param-value>此处配置需要加载的文件地址</param-value>
        </init-param>
</servlet>
<servlet-mapping>
        <servlet-name>getMonitorCaseOfBzLine</servlet-name>
        <url-pattern>/getMonitorCaseOfBzLine</url-pattern>
</servlet-mapping>

配置完成后我们就可以实现GetMonitorCaseOfBzLineServlet这个接口

package com.xxx.servlet;

import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
import javax.servlet.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class GetMonitorCaseOfBzLineServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    ServletConfig config = null; // 定义一个ServletConfig对象
    private String sqlDriverName = ""; // 定义的JDBC驱动名
    private String sqlAddr = ""; // 定义的数据库地址
    private String sqlUsername = ""; // 定义的数据库用户名
    private String sqlPassword = ""; // 定义的数据库连接密码
    private String sqlDbName = ""; // 定义的数据库名
    private String monitorCaseRootPath = "";
    

    public void init(ServletConfig config) throws ServletException {
        super.init(config); // 继承父类的init()方法
        this.config = config; // 获取配置信息
        
        monitorCaseRootPath = config.getInitParameter("monitorCaseRootPath");
    }

    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        doPost(req, res);
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
        res.setContentType("application/json; charset=utf-8");
        PrintWriter out = res.getWriter();

        String lineName = req.getParameter("lineName");
        
        // 
        try {
            JSONObject jsonObject = new JSONObject();
            //获取业务线设置 
            sqlDriverName = getServletContext().getInitParameter("driverName");// 从配置文件中获取JDBC驱动名
            sqlAddr = getServletContext().getInitParameter("addr");// 从配置文件中获取数据库地址
            sqlUsername = getServletContext().getInitParameter("username"); // 获取数据库用户名
            sqlPassword = getServletContext().getInitParameter("password"); // 获取数据库连接密码
            sqlDbName = getServletContext().getInitParameter("dbName"); // 获取要连接的数据库
    
            String url = "jdbc:mysql://" + sqlAddr + "/" + sqlDbName + "?useSSL=false";
            Class.forName(sqlDriverName);
            Connection conn = DriverManager.getConnection(url, sqlUsername, sqlPassword);
            Statement stmt = conn.createStatement();
            String sql = "select frequency,status from monitor_settings where bzname='" + lineName + "'";
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                int frequency = rs.getInt(1);
                int status = rs.getInt(2);
                jsonObject.put("frequency", frequency);
                jsonObject.put("status", status);
            }
            
            // 获取文件列表
            File rootFolder = new File(monitorCaseRootPath + lineName);
            
            File[] tempFileList = rootFolder.listFiles();
            JSONArray jsonArray = new JSONArray();
            
            
            int total=0;
            for (int i = 0; i < tempFileList.length; i++) {
                File tempFile = tempFileList[i];
                // 仅处理文件
                if (tempFile.isFile() && tempFile.getName().endsWith(".jmx")) {
                    JSONObject jsonDataObject = new JSONObject();
                    jsonDataObject.put("id", i);
                    jsonDataObject.put("fileName", tempFile.getName());
                    jsonArray.add(jsonDataObject);
                    total++;
                }               
            }
            jsonObject.put("total", total);
            jsonObject.put("data", jsonArray);
            System.out.println(jsonObject.toString());
            out.write(jsonObject.toString());
        
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
            out.println(e.toString());
        }
        out.close();
    }
}

接口返回值:

{
    "total":"当前业务线jmx文件总数",
    "frequency":"当前业务线监控频率",
    "status":"当前业务线是否监控",
    "data":[
        {
            "id":"文件id1",
            "fileName":"文件名称1"
        },
        {
            "id":"文件id2",
            "fileName":"文件名称2"
        }
    ]
}
上一篇 下一篇

猜你喜欢

热点阅读