Ajuda com janela modal - Como fazer?

Oi, pessoal.

Preciso fazer um botão (ou link) que quando o usuário clicar, uma janela modal apareça. Essa janela é basicamente uma ampulheta ou alguma animação que deve ficar rodando enquanto um arquivo é lido. Então basicamente o usuário deve clicar, essa janela modal deve aparecer com a animação e quando terminar, a janela deve ser fechada e o caminho para o arquivo deve aparecer na página principal, abaixo do botão que foi clicado para aparecer a janela modal.

Minha ideia é fazer a página principal, a página que seria a janela modal e depois usar algo como JQuery ou JavaScript para fazer com que essa segunda página seja modal. Não sei qual seria a melhor maneira de fazer isso nem COMO fazer. Estou aberto a ideias.

Como primeira dificuldade, encontrei o seguinte: Ao fazer a página que será a minha janela modal, eu tento colocar uma animação qualquer e logo em seguida um código para ler o arquivo. O arquivo demora algum tempo para ser lido e notei que a página fica TOTALMENTE em branco enquanto o arquivo é lido. É como se qualquer coisa que a página tivesse só aparecesse DEPOIS que o Java terminasse de ler o arquivo. Estou fazendo tudo em JSP e envio o código dessa página logo abaixo:


<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.FileInputStream"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        
        <!-- Essas duas linhas deveriam ser processadas antes da leitura, para que a animação aparecesse -->
        <p>pagina modal!</p>
        <img title="imagem" src="animacao.gif" alt=""  align="middle">
        
        
        <%
            // leitura do arquivo
             out.println("iniciada a leitura");
            
             try {
                FileInputStream stream = new FileInputStream("C:\\novo\\meuArq.pdf");
                InputStreamReader reader = new InputStreamReader(stream);
                BufferedReader br = new BufferedReader(reader);
                String linha = br.readLine();

                while(linha != null) {
                    linha = br.readLine();
                }
            } catch (Exception e) {
                out.println("Erro - " + e.getMessage());
            } finally {
                out.println("terminada a leitura");
            }
            
       %>
        
    </body>
</html>