Как получить и XML-файл из сервлета - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь получить файл XML и сервлет Java. Я смотрю много уроков, но ни один из тех, которые я видел, не работает.

В моем index.html я написал следующую функцию

document.addEventListener("DOMContentLoaded", function(){
                fetch("AppServlet")
                        .then(response => console.log(response));
            });

И ответ этой выборки ...

Response {type: "basic", url: "http://localhost:8080/TW/AppServlet", redirected: false, status: 200, ok: true, …}
body: ReadableStream
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: ""
type: "basic"
url: "http://localhost:8080/TW/AppServlet"
__proto__: Response

Но проблема в моем AppServlet. Я понятия не имею, как отправить один файл XML, расположенный в моем каталоге веб-страниц. Есть ли простой способ сделать это возможным?

1 Ответ

1 голос
/ 16 июня 2019

В вашем сервлете вы должны перезаписать метод doGet (), если хотите отвечать на запросы.

Для отправки XML-файла, я думаю, что-то вроде этого.

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {

    File xmlFile = new File("someFile.xml"); //Your file location
    long length = xmlFile.length();

    resp.setContentType("application/xml");
    resp.setContentLength((int) length);

    byte[] buffer = new byte[1024];
    ServletOutputStream out = resp.getOutputStream();

    try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(xmlFile))) {
      int bytesRead = 0;
      while ((bytesRead = in.read(buffer)) != -1) {
        out.write(buffer, 0, bytesRead);
      }
    }

    out.flush();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...