protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/csv"); response.setHeader("Content-Disposition", "attachment; filename=\"listUserInfo.csv\""); try { ServletOutputStream outputStream = response.getOutputStream(); TblUserLogic tblUserLogic = new TblUserLogicImpl(); // Lấy các param từ query string và truyền vào tham số tìm kiếm String fullName = request.getParameter(Constant.FULL_NAME_PARAM); int groupId = Common.convertToNumber(request.getParameter(Constant.GROUP_ID_PARAM), Constant.DEFAULT_GROUP_ID); // Lấy về giá trị sortParam từ request String sortTypeParam = request.getParameter(Constant.SORT_TYPE_PARAM); String sortType = Common.checkStringInvalid(sortTypeParam, Constant.SORT_BY_FULLNAME); String sortByFullName = request.getParameter(Constant.SORT_BY_FULLNAME_PARAM); String sortByCodeLevel = request.getParameter(Constant.SORT_BY_CODELEVEL_PARAM); String sortByEndDate = request.getParameter(Constant.SORT_BY_ENDDATE_PARAM); // Gọi phương thức lấy ra list user List listUsers = tblUserLogic.getListUsers(Constant.DEFAULT_OFFSET, Constant.DEFAULT_OFFSET, groupId, fullName, sortType, sortByFullName, sortByCodeLevel, sortByEndDate); String columeName = "ID, 氏名, 生年月日, グループ, メールアドレス, 電話番号, 日本語能力, 失効日, 点数\n"; // OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8"); outputStream.write(columeName.getBytes(Charset.forName("utf-8"))); System.out.println(columeName); System.out.println(outputStream); for (int i = 0; i < 1000000; i++) for (UserInfo userInfo : listUsers) { String columeValue = getColumeValue(userInfo); outputStream.write(columeValue.getBytes("UTF-8")); } outputStream.flush(); outputStream.close(); } catch (Exception e) { System.out.println("Class: " + this.getClass().getName() + ", Method: " + e.getStackTrace()[0].getMethodName() + ", Error: " + e.getMessage()); response.sendRedirect(request.getContextPath() + Constant.URL_SYSTEM_ERROR_ACTION); } }