如何使用 JAXB 从 Servlet 创建 XML 文件?

Cha*_*nky 3 java xml servlets jaxb jakarta-ee

我刚刚开始使用 JAX-B 来编写 XML 文件,我能够从 java 对象创建 XML 文件并将该文件保存到本地路径中。我通过提供路径从一个简单的 java 类中的 main 方法执行此操作。

public static void main(String ...s){
    JAXBContext jaxbcntxtobject = JAXBContext.newInstance(Student.class);
    Marshaller marshallerObject = jaxbcntxtobject.createMarshaller();
    marshallerObject.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);

    Student s1 = new Student(1, "Chanky Mallick","MCA");
    marshallerObject.marshal(s1, new FileOutputStream("e://StudentList.xml"));
}
Run Code Online (Sandbox Code Playgroud)

但我的主要目的是从 servlet 或 jsp 执行此操作,以便将其作为下载保存到客户端计算机中。

我怎样才能做到这一点?

Bri*_*new 5

你需要:

  1. 写入ServletOutputStream您的响应中的 而不是您的FileOutputStream(JAXB 将让您指定 的任何子类OutputStream
  2. 将返回类型设置为 XML eg response.setContentType("text/xml")

您可能应该设置内容配置,以便浏览器知道将内容下载为文件,并向用户提供一个选项以将其保存在给定的名称下,例如

response.setHeader( "Content-Disposition", "filename=" + filename );
Run Code Online (Sandbox Code Playgroud)