Boa Tarde tenho um jsp que via ajax chama um servlet passando parâmetro da seguinte forma
<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<div id="container-content">
<div id="menu-jsp">
<script type="text/javascript" src="js/jquery-1.7.1.js" ></script>
<script type="text/javascript" src="js/jquery.maskedinput-1.1.4.pack.js"/></script>
<script type="text/javascript">
function getquerystring() {
var form = document.forms['f1'];
//gather form data into Javascript variables
var word1 = form.Item.value;
var word2 = form.Subitem.value;
var word3 = form.De.value;
var word4 = form.Ate.value;
//form data is converted into a post string, the values would be used to create a dynamic chart
qstr = 'item=' + escape(word1) + '&subitem='+ escape(word2)+'&de=' + escape(word3)+'&ate=' + escape(word4);
var res='<img src="RelChartSatisfacao?'+qstr+'" />';//IMG tag is constructed here
//set the DIV to the img tag
document.getElementById("divGraficos").innerHTML =res;
}
</script>
<form>
Item:
<select name="item" id="item">
<option value=""> Selecione um Item </option>
<c:forEach var="frase" items="${frases}">
<option value="${frase.id}">${frase.frase}</option>
</c:forEach>
</select>
<br><br>
Subitem:
<select name="subitem" id="subitem"></select>
<br><br>
Período de:
<input type="text" size="8" name="de" id="de" class="mesano"/>
Até
<input type="text" size="8" name="ate" id="ate" class="mesano"/>
<br><br>
<a href="#" onclick="getquerystring()" class="gera">
<img style="border: none;" alt="Gera Gráfico" src="img/btn_graf1.jpg" name="arrow">
</a>
<div id="divGraficos"></div>
</form>
a variável var res=’ do meu javascript se encarrega de chamar o servlet passando os dados inseridos pelo usuário.
O servlte trata os dados da seguinte forma com JFreeChart
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String frase = request.getParameter("item");
String subFrase = request.getParameter("subitem");
String de = request.getParameter("de");
String ate = request.getParameter("ate");
OutputStream out = response.getOutputStream();
Connection connection = ConnectionFactoryHomolog.getConnection();
JDBCCategoryDataset ds = new JDBCCategoryDataset(connection);
try {
ds.executeQuery("select r.nivelsatisfacao as satisfacao, count(1) as contador from relacionamento.satisfacao s join relacionamento.resposta r on s.id = r.satisfacao_id " +
"join relacionamento.subpergunta sub on sub.id = r.subpergunta_id join relacionamento.pergunta p on p.id = sub.pergunta_id " +
"where p.id = "+frase +" and sub.id = "+subFrase +" and to_char(s.data,'MM/yyyy') between '"+de+"' and '"+ate+"' " +
"group by r.nivelsatisfacao order by 1,2");
JFreeChart chart = ChartFactory.createBarChart3D("Distribuição de Satisfação", "Satisfacao", "Quantidade", ds, PlotOrientation.VERTICAL, true, true, false);// create your chart
response.setContentType("image/jpg"); /* Set the HTTP Response Type */
ChartUtilities.writeChartAsJPEG(out, chart, 640, 480);/* Write the data to the output stream */
} catch (SQLException e) {
e.printStackTrace();
} finally {
out.close();
}
}
porque não visualizo a imagem na div que meu javascript manda ?
no internet explorer nao aparece nada, já no firefox aparecem vários caracteres estranhos do tipo:
����JFIF��Ca a a ��C aa ����"��a ���}!1AQaa"q2���#B��R��$3br� %&’()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������a ���aw!1AQaaq"2�B���� #3R�br� $4�%�
o que estou fazendo de errado ?
Obrigado
p.s.: debugando consigo ver os dados inseridos chegando normalmente no servlet e também o resultado da query retorna perfeitamente
