Lista de arquivos

Alguém poderia me dar um auxilio de como eu posso fazer um tipo de gerenciador de arquivos web, onde pelo campo de pesquisa você digita a palavra-chave e com isso retorna todos os arquivos relacionados aquela palavra, eu tenho uma classe que faz a busca do arquivo pela palavra-chave, porém, não sei como fazer para que o usuário ao pesquisar consiga visualizar os arquivos em um jsp/servlet.

Estou utilizando apache lucene para fazer a busca dos arquivos.

buscador.java

public class Buscador {
    private static Logger logger = Logger.getLogger(Buscador.class);
    private String diretorioDoIndice = System.getProperty("user.home")
            + "/lucene/indice-lucene-web";

    public void buscaComParser(String parametro) {
        try {
            Directory diretorio = new SimpleFSDirectory(new File(
                    diretorioDoIndice));
            // {1} IndexReader: classe abstrata responsável por acessar o índice;
            IndexReader leitor = DirectoryReader.open(diretorio);
            // {2} IndexSearcher: implementa os métodos necessários para realizar buscas em um índice;
            IndexSearcher buscador = new IndexSearcher(leitor);
            Analyzer analisador = new StandardAnalyzer(Version.LUCENE_48);
            // {3} QueryParser/Query: representa a consulta do usuário. Outros exemplos de query podem ser vistos no Javadoc;
            QueryParser parser = new QueryParser(Version.LUCENE_48, "Texto",
                    analisador);
            Query consulta = parser.parse(parametro);
            long inicio = System.currentTimeMillis();
            // {4} Realiza a busca e armazena o resultado em um TopDocs;
            TopDocs resultado = buscador.search(consulta, 100);
            long fim = System.currentTimeMillis();
            int totalDeOcorrencias = resultado.totalHits;
            logger.info("Total de documentos encontrados:" + totalDeOcorrencias);
            logger.info("Tempo total para busca: " + (fim - inicio) + "ms");
            // {5} ScoreDoc: representa cada um dos documentos retornados na busca.
            for (ScoreDoc sd : resultado.scoreDocs) {
                Document documento = buscador.doc(sd.doc);
                logger.info("Caminho:" + documento.get("Caminho"));
                logger.info("Ultima modificacao:"
                        + documento.get("UltimaModificacao"));
                logger.info("Score:" + sd.score);
                logger.info("--------");
            }
            leitor.close();
        } catch (Exception e) {
            logger.error(e);
        }
    }

    public static void main(String[] args) {
        Buscador b = new Buscador();
        String parametro = JOptionPane.showInputDialog("Consulta");
        b.buscaComParser(parametro);
    }
}

Temos o seguinte. Se for texto ou imagem, é fácil. Basta abrir uma div e inserir o conteúdo ali.
Agora, se for pdf, xls, etc, fica mais complicado, né?

São arquivos em pdf.

Você consegue até abrir um pdf no browser, desde que o mesmo possua um plugin compatível.
Mas, apenas nesta situação. Fora disso, não.

Poderia ser ao invés de mostrar esses arquivos em PDF é mostrar apenas o titulo do arquivo e o resumo do arquivo ou listar todos os arquivos com aquela palavra-chave.

Então, você consegue obter a lista de arquivos com a classe File. ela tem um método que verifica se é diretório (isDirectory) ou arquivo (isFile) e que, sendo diretório, permite listar os arquivos dentro dele (listFiles, que retorna um array de files).
A partir disso, você consegue obter o nome do arquivo e outros detalhes.

Eu posso utilizar dentro da minha classe buscador ? Para depois mostrar em jsp ou servlet? (ainda não sei a melhor forma de implementar isso, pois tenho pouca experiencia com java).

Uma forma de resolver é pegando o caminho real:

String absoluteDiskPath = getServletContext().getRealPath("."); //Pegando do local onde a servlet está
File file = new File(absoluteDiskPath);

Este é o primeiro passo.
Depois, você verifica se é diretório

if(file.isDirectory()) {
    //Faz algo
}

E, se for, obtém a lista:

File[] arquivos = file.listFiles();

A partir daí, itera sobre os itens e vai lendo o nome do arquivo

arquivo.getName();