我正在做dc.js可视化数据和d3-force-layout。 dc.js基于d3和crossfilter,dc可以将csv文件作为输入文件处理,但d3-force-layout只能将json文件视为输入文件。所以我想将CSV文件发送到一些使用java程序将csv文件转换为json文件的地方,然后将其发送回d3-force布局使用。我已经尝试过php和javaEE来构建网页。但d3.js和dc.js无法加载到apache服务器和tomcat服务器上。 enter image description here
<script src="JS/jquery-3.2.1.min.js" type="text/javascript"></script>
<script src="JS/crossfilter-master/crossfilter.js" type="text/javascript"></script>
<script src="JS/d3-3.5.17/d3.js" type="text/javascript"></script>
<script src="JS/dc.js-2.0.2/dc.js" type="text/javascript"></script>
<script src="JS/d3-queue/d3-queue.js" type="text/javascript"></script>
这是我加载js库的代码。 这是JS发送请求。
$('#files').change(function(){
var q = d3.queue();
var fileNames = "";
for(var i = 0; i < this.files.length; i++){
fileNames += ", " + this.files[i].name;
q.defer(d3.csv, this.files[i].name);
}
q.awaitAll(drawDC);
$.get("http://localhost:8080/Charting/ChartingServlet?files="+fileNames, drawForceLayout);
// drawForceLayout('data.json');
$("#fileNames").html('');
if(this.files.length > 1)
$("#fileNames").html(fileNames.substring(2));
});
function drawForceLayout(jsonFile){
//start to draw
}
我还制作了一个servlet来处理请求获取文件,转换为json发送回来。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(request.getParameterMap().containsKey("files")) {
String files = request.getParameter("files");
System.out.println(files.toString());
////call the java program to convert CSV files to json then sent the file name or the content back.
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.getWriter().append("data.json");
}
}
This is the Tomcat server index.html是主页。
我的问题是如何实现这一点,我是否对这些服务器做错了什么?