URL не должен содержать имя сервлета после экспорта - PullRequest
0 голосов
/ 12 декабря 2018
public class ExcelWriter extends HttpServlet{
    private void writeExcel(List<Book> listBook, String excelFilePath)
            throws IOException {
        Workbook workbook = getWorkbook(excelFilePath);
        Sheet sheet = workbook.createSheet();

        int rowCount = 0;

        for (Book aBook : listBook) {
            Row row = sheet.createRow(++rowCount);
            writeBook(aBook, row);
        }

        try (FileOutputStream outputStream = new FileOutputStream(new File(
                excelFilePath))) {
            workbook.write(outputStream);
        }
    }

    private void writeBook(Book aBook, Row row) {
        Cell cell = row.createCell(1);
        cell.setCellValue(aBook.getTitle());

        cell = row.createCell(2);
        cell.setCellValue(aBook.getAuthor());

        cell = row.createCell(3);
        cell.setCellValue(aBook.getPrice());
    }

    private List<Book> getListBook() {
        Book book1 = new Book("Head  Java", "Anot Serria", 79);
        Book book2 = new Book("Effective Java 1", "Bnot Bloch", 36);
        Book book3 = new Book("Clean Code 1", "Cnot Martin", 42);
        Book book4 = new Book("Thinking in Java 2", "D Eckel", 35);

        List<Book> listBook = Arrays.asList(book1, book2, book3, book4);

        return listBook;
    }

    private Workbook getWorkbook(String excelFilePath) throws IOException {
        Workbook workbook = null;

        if (excelFilePath.endsWith("xlsx")) {
            workbook = new XSSFWorkbook();
        } else if (excelFilePath.endsWith("xls")) {
            workbook = new HSSFWorkbook();
        } else {
            throw new IllegalArgumentException(
                    "The specified file is not Excel file");
        }

        return workbook;

    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            ExcelWriter excelWriter = new ExcelWriter();
            List<Book> listBook = excelWriter.getListBook();
            String excelFilePath = "C:\\ExcelTemp\\Temp.xls";
             excelWriter.writeExcel(listBook, excelFilePath);

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}
  • После загрузки файла Excel сервлет должен указать мне на начальную страницу просмотра, т.е. откуда я экспортирую данные.Я не хочу пересылать его на ту же страницу.

    Функциональность должна быть такой, как если бы я экспортировал данные из индекса. html-->ExcelWriter Servlet.Но URL не должен показывать часть сервлета.Пожалуйста, помогите мне с этим.Я использую Apache POI и Servlet.У меня также есть книга имен POJO с методами получения и установки.

1 Ответ

0 голосов
/ 12 декабря 2018

Вы можете выполнить отображение сервлета в файле веб-дескриптора (XML-файл).

...