访问被拒绝在apache tomcat中创建xml文件

时间:2013-11-29 15:17:31

标签: ajax xml jsp tomcat

我正在创建一个考试门户,其中有一个JSP calcresult.jsp,它计算考试结果并显示结果,然后创建一个存储结果的xml文件,以便考官可以评估结果后来。 这是xml生成的代码:

<%
              DocumentBuilderFactory documentBuilderFactory = 
  DocumentBuilderFactory.newInstance();
  DocumentBuilder documentBuilder = 
 documentBuilderFactory.newDocumentBuilder();
  Document document = documentBuilder.newDocument();
  Element rootElement = document.createElement("Exam_Report");
  document.appendChild(rootElement);

  Element em = document.createElement("Name");
  em.appendChild(document.createTextNode(session.getAttribute("userid").toString()));
  rootElement.appendChild(em);

  em = document.createElement("Exam_Id");
  em.appendChild(document.createTextNode(session.getAttribute("examid").toString()));
  rootElement.appendChild(em);

  em = document.createElement("Paper_id");
  em.appendChild(document.createTextNode(session.getAttribute("paperid").toString()));
  rootElement.appendChild(em);

  em = document.createElement("No_Of_Ques");
  em.appendChild(document.createTextNode(request.getParameter("qid")));
  rootElement.appendChild(em);

  em = document.createElement("No_Of_Correct_Ques");
  em.appendChild(document.createTextNode(""+right));
  rootElement.appendChild(em);  

  em = document.createElement("Total_Marks");
  em.appendChild(document.createTextNode(""+tmarks));
  rootElement.appendChild(em);

  em = document.createElement("Marks");
  em.appendChild(document.createTextNode(""+marks));
  rootElement.appendChild(em);

  em = document.createElement("Percentage");
  em.appendChild(document.createTextNode(""+percentage));
  rootElement.appendChild(em);

  em = document.createElement("Result");
  em.appendChild(document.createTextNode(result));
  rootElement.appendChild(em);

  TransformerFactory transformerFactory = 
  TransformerFactory.newInstance();
  Transformer transformer = transformerFactory.newTransformer();
  DOMSource source = new DOMSource(document);
  StreamResult result1 =  new StreamResult("CreateXML.xml");
  transformer.transform(source, result1);
            %>

一切正常但是当我运行页面时它会显示异常(拒绝访问)。
当然,当我必须在服务器目录中创建一个新页面或文件时,我需要管理权限,所以我所做的是使用没有任何限制的绝对路径,如 C:/xml/CreateXML.xml 哪个真的有用,但现在我无法通过AJAX访问这个xml页面 那么解决这个问题的最佳方法是什么呢?任何帮助将非常感激。 我正在使用Apache Tomcat作为服务器。

1 个答案:

答案 0 :(得分:1)

一种方法是编写一个servlet来返回XML文件的内容。 Here是文本文件的示例。对于xml文件,您应该使用“text / xml”作为内容类型。

但更好的方法是避免创建本地文件并直接从servlet“动态”发送XML。你可以找到一个例子here(帖子很旧但代码仍然有效)。