Привет, я новичок в Webdevelopment и Java, спасибо за помощь заранее.
Я пытаюсь получить предопределенные данные из сервлета в граф canvasjs в jsp.
Iиспользуйте Eclipse Oxygen и TomCat 8.5
Короче говоря, мой код выглядит так:
ChartValues.java просто имеет переменную инстанцирования, поэтому я не думаю, что стоит показывать
jsp File:
<%@page import="saagnik.ChartValues"%>
<%@page import="java.util.ArrayList"%>
<%@page session="true" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript"src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script type="text/javascript">
window.onload = function() {
var datapoints=[];
var chart = new CanvasJS.Chart("chartContainer1",{
title:{
text: "Anzahl der Requests"
},
data: [{
type: "splineArea",
name: "Anzahl",
dataPoints: datapoints
}]
});
String test=(String)session.getAttribute("test1");
datapoints.push({x: new Date(2015, 03, 10), y: 10});
chart.render();
</script>
</header>
<body>
<div id="chartContainer1"></div>
</body>
</html>
Когда я комментирую строку сеанса, программа работает нормально, но когда она включена, графики не создаются.
Файл сервлета:
package saagnik;
import java.io.IOException;
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 javax.servlet.http.HttpSession;
@WebServlet("/ChartServlet")
public class ChartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int test =10;
HttpSession session=request.getSession(true);
session.setAttribute("test1", test);
response.sendRedirect("CharttestCanvas3.jsp");
}
}
Также попробовал это с запросами в doGet вроде:
ChartValues[] articles =
new ChartValues[] {new ChartValues(39500,1.5,0.5,"16/01/09/2019"), new ChartValues(49500,1.5,0.5,"17/01/09/2019")};
request.setAttribute("articles", articles);
RequestDispatcher dispatcher = request.getRequestDispatcher("CharttestCanvas3.jsp");
dispatcher.forward(request, response);
И в Jsp с
ArrayList<ChartValues> chartvalue1 = (ArrayList<ChartValues>)request.getAttribute("chartdata");
Но я получил тот же результат.