【发布时间】:2012-05-24 20:16:53
【问题描述】:
所以我正在尝试用数据库和图表做一些基本的事情。我已经让我的 JSP 代码工作了,但我想将它移到 servlet/其他资源,因为我听说在 jsp 中做所有事情是一个非常糟糕的主意。我对 servlet 进行了一些研究,但我对它们如何工作/如何与 jsps 和其他文件链接感到非常困惑。
我知道我想要将 d3.js 代码保留在 .jsp 中(可能),但我主要关心的是数据库连接代码。
这是我的 JSP:
<%@ page language="java" import="java.sql.*, java.util.*"%>
<html>
<head>
<title>D3 Test</title>
<script type="text/javascript" src="d3/d3.v2.js"></script>
<style type="text/css">
</style>
</head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con=null;
ResultSet rst=null;
Statement stmt=null;
try{
String url="jdbc:mysql://localhost:3306/testdb?user=root&password=password";
int i=1;
con=DriverManager.getConnection(url);
stmt=con.createStatement();
rst=stmt.executeQuery("select * from test ");
%>
<script type="text/javascript">
var dataset = [
<% while (rst !=null && rst.next()) { %>
<%=rst.getInt("ID")%>,
<% }%>
];
var w = 500;
var h = 340;
var barPadding = 1;
/*var xScale = d3.scale.linear()
.domain([0, d3.max(dataset, function(d) { return d[0]; })])
.range([padding, w - padding * 2]);
var yScale = d3.scale.linear()
.domain([0, d3.max(dataset, function(d) { return d[1]; })])
.range([h - padding, padding]);*/
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("id", "rect1")
.attr("x", function(d, i) {
return i * (w / dataset.length);
})
.attr("y", function(d) {
return h - d*4;
})
.attr("width", w/ dataset.length - barPadding)
.attr("height", function(d) {
return d * 4;
})
.attr("fill", function(d) {
return "rgb(0, 0, " + (d * 10) + ")";
});
svg.selectAll("text")
.data(dataset)
.enter()
.append("text")
.text(function(d) {
return d;
})
.attr("x", function(d, i) {
return i * (w / dataset.length)+ (75 / dataset.length);
})
.attr("y", function(d) {
return h - (d * 4) + 15;
})
.attr("font-family", "sans-serif")
.attr("font-size", "11px")
.attr("fill", "white");
<%
} finally {
if (stmt != null) { stmt.close(); }
}%>
</script>
</body>
</html>
【问题讨论】:
-
这是一个暗黑破坏神3项目吗,如果是的话我很乐意帮忙=P
-
很遗憾,没有。 d3.js 是数据驱动文档,是一个用于在 javascript 中创建 SVG 图像的库。但是当我正在处理这个并且我必须输入 d3 时,我会畏缩,因为我想停止工作和玩耍!哈哈。
-
呸,跛脚。回到正题,你想拿到多重?如今,大多数 Web 应用程序都使用框架来解决 servlet 架构中的许多烦人问题
-
这并不意味着疯狂的沉重。这只是为了我学习的目的。在我弄清楚一切之后,我可能会尝试做一个测试网站或其他东西,但仅此而已。
标签: java mysql database jsp servlets