【问题标题】:I find a problem with sending receiving parameter我发现发送接收参数有问题
【发布时间】:2010-03-22 15:41:05
【问题描述】:

如何使用 ajax 将 XML 转换为 HTML 下拉列表?我使用 GET 方法发送参数,但是生成 XML 的 JSP 文件没有收到它。

var url = "responsexml.jsp";
url = url + "?projectCode=" + prj.options[prj.selectedIndex].value;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);

然后在 responsexml.jsp 中我确实喜欢这样:

<% 
    String projectcode = (String) request.getParameter("projectCode");
    System.out.println("++++projectCode:=" + projectcode);
    Session s = null;
    Transaction tx;     

    try {
        s = HibernateUtil.currentSession(); 
        tx = s.beginTransaction();
        Query query = s.createQuery("SELECT from Wa wa where wa.ProjectCode='" + projectcode + "'");
        response.setContentType("text/xml");
        PrintWriter output = response.getWriter();
        output.write( "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        //response.setHeader("Cache-Control", "no-cache");

        if (projectcode != null) {
            for (Iterator it = query.iterate(); it.hasNext();) {
                if (it.hasNext()) {
                    Wa object = (Wa) it.next();
                    //out.print( "<item id=\"" + object.getIdWA() + "\" name=\"" + object.getWAName() + "\" />");
                    output.write("<wa>");
                    output.write( "<item id=\"" + object.getIdWA() + "\" name=\"" + object.getWAName() + "\" />");
                    output.write("</wa>");
                }
            }
        }
    } catch (HibernateException e) {
        e.printStackTrace();
    }
%>
</body>
</html>

使用此代码,我没有我的 XML 文件。我收到了这个错误:

服务器不理解请求,或者请求无效。 Erreur de traitement de la ressource http://www.w3.o...

【问题讨论】:

    标签: java xml ajax jsp


    【解决方案1】:

    可以肯定:这是整个 JSP 文件吗?该错误消息表明您在其顶部有一个&lt;!DOCTYPE&gt;,它指向 w3.org 上的 DTD,但相关的网络浏览器无法加载它。该错误消息还表明您正在使用 IE 来测试这一切,这个网络浏览器在从 http://localhost 打开 XML 文件方面有一些奇怪的限制和怪癖。请尝试使用更体面的网络浏览器,例如 Firefox

    我进一步发现了这种方法的几个缺陷:

    1. &lt;/body&gt;&lt;/html&gt; 确实不属于 JSP 的底部。删除它们。
    2. JSP 是该作业的错误工具。使用 Servlet。
    3. if (it.hasNext()) 部分是多余的,因为它已由 for 语句处理。
    4. XML 应该有一个根元素。现在,您正在向其写入多个 &lt;wa&gt; 元素。
    5. SQL 容易受到 SQL 注入攻击。使用命名查询。

    不是真正的问题,而是更多的建议,我建议查看jQuery 以触发 ajaxical 请求并以简洁​​且跨浏览器兼容的方式进行 DOM 操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-30
      • 2012-03-13
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      相关资源
      最近更新 更多