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>