java - 使用 Java Servlet 上传 XML

标签 java xml servlets upload

我使用以下代码上传文件,目前它上传的文件没有 <..>但是我想上传一个 XML 文件。如何上传文件?

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);

    if(isMultipart){
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        try{
            List<FileItem> fields = upload.parseRequest(request);
            Iterator<FileItem> it = fields.iterator();
            while (it.hasNext()) {
                FileItem fileItem = it.next();

                out.println(fileItem.getString());
          }
        }catch (FileUploadException e) {
            e.printStackTrace();
        }       
    }
}

编辑: 例如,如果我上传包含 Screens><Screen 的文件仅Screens>输出。

最佳答案

我没有立即发现您的代码有问题,但因为

response.setContentType("text/html;charset=UTF-8");

您告诉接收端的浏览器它正在获取 html,因此它将尝试将接收到的数据解释为 HTML。尝试使用正确的内容类型发送数据:

response.setContentType("application/xml;charset=UTF-8");

令我困惑的是你的评论标签:Screens><Screen这不是有效的 xml。如果更正内容类型不起作用,您可以向您的问题添加真实测试(类似于最小数据样本的测试)以及有效输出。

关于java - 使用 Java Servlet 上传 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645062/

相关文章:

java - 为什么在 ViewHolder 模式中 ViewHolder 类应该是静态的?

java - Android - 膨胀类 fragment 时出错(试图让谷歌地图 api v2 工作)

java - 如何将请求从 web1/servlet 转发到 web2/servlet?

java - 大型应用程序的 session 管理 (Java)

java - 从 JSON 数组字符串创建 POJO 对象

java - 无法在 hadoop 上实例化 SLF4J

java - 类似于 SWT 的 Spy++?

xml - 在 Oracle 中解析 SOAP XML

php - Eve API xml 到 php

java - Tomcat 上下文 - server.xml - 如何从网络位置文件夹提供静态文件