ho deciso di usare POST, la stringa la passa ma adesso ho problemi dopo, quando clicco sul bottone che ho messo per far partire la richiesta con POST non succede nulla, devo cliccare più volte e non sempre fa quello che deve fare, il codice è questo, dov'è il problema:
function saveProject()
{
XMLstringtosave = new XMLSerializer_01().toXML(workflow.getDocument());
saveData("savedata.jsp");
}
function saveData(dataSource)
{
if(XMLHttpRequestObject)
{
XMLHttpRequestObject.open("POST", dataSource);
XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
{
alert (XMLHttpRequestObject.responseText);
YAHOO.example.container.save.hide();
}
}
XMLHttpRequestObject.send("namein="+selectedprojec t+"&xmlin="+XMLstringtosave);
}
}
QUESTA è savedata.jsp
<%@page language="java" %>
<%@ page import= "java.sql.*" %>
<%
// GET PARAMETERS
String namein = request.getParameter("namein");
String xmlin = request.getParameter("xmlin");
// DATABASE CONNECTION
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbcdbc
rojects");
// SETTING RESPONSE
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
// UPDATE QUERY PREPARATION AND EXECUTION
if (namein != null)
{
PreparedStatement stmt = conn.prepareStatement("UPDATE project SET XMLstring=? WHERE name=?");
stmt.setString(1, xmlin);
stmt.setString(2, namein);
ResultSet result = stmt.executeQuery();
response.getWriter().write("The project has been saved");
}
// INSERT QUERY PREPARATION AND EXECUTION
if (namein == null)
{
response.getWriter().write("The project is new, please use Save as");
}
%>