본문 바로가기
728x90
반응형

Back-end/JAVA & Spring135

[Java] 현재 날짜, 현재 시간 가져오기 _ Java 8 이후 Java 8 이후 java.time.LocalDate java.time.LocalTime java.time.LocalDateTime 현재 날짜(타임존 적용) 구하기 import java.time.LocalDate; import java.time.ZoneId; public class CurrentDateTime { public static void main(String[] args) { // 현재 날짜 구하기 (시스템 시계, 시스템 타임존) LocalDate now = LocalDate.now(); // 현재 날짜 구하기(Paris) LocalDate parisNow = LocalDate.now(ZoneId.of("Europe/Paris")); // 포맷 정의 DateTimeFormatter formatt.. 2022. 7. 11.
[JAVA] stream() 중복제거 Collectors.toList() List events = boardDao.getEvents(VO); events 리스트는 user No 가 중복된 리스트일때 List allUserNo = events.stream().map(EventVO::getUserNo).collect(Collectors.toList()); //중복 제거 되지 않은 상태 EventVO의 getUserNo만 뽑아서 다시 toList 리스트로 만들어준다. 예를 들면 allUserNo = ["10","10","10","10","11","11","11","12",] 중복제거가 되지 않았다. 이때, 중복제거를 위해 List userList = allUserNo.stream().distinct().collect(Collectors.toList()); stream().disti.. 2022. 6. 22.
[Java] excel poi 셀 배경색 지정 및 색 리스트 셀스타일 자바로 poi를 사용하여 엑셀 파일을 생성할 경우 셀의 배경색 및 정렬, 테두리, 폰트를 설정하는 예제 입니다. 배경색을 지정할때는 setFillForegroundColor 로 설정한 후 setFillPattern 으로 HSSFCellStyle.SOLID_FOREGROUND 를 지정해 주어야 적용이 됩니다. //테이블 타이틀 스타일 CellStyle cellStyle_Title = xssfWb.createCellStyle(); cellStyle_Title.setBorderTop(BorderStyle.THIN); //테두리 위쪽 cellStyle_Title.setBorderBottom(BorderStyle.THIN); //테두리 아래쪽 cellStyle_Title.setBorderLeft(BorderSty.. 2022. 4. 27.
[Java]두 날짜 사이의 개월 수 구하기 SimpleDateFormat df_Start = new SimpleDateFormat("yyyy-MM"); Date date_start = df_Start.parse(yyyymmStart); SimpleDateFormat df_end = new SimpleDateFormat("yyyy-MM"); Date date_end = df_end.parse(yyyymmEnd); long diff = date_end.getTime() - date_start.getTime(); int result = (int) ((diff / 1000) / 60 / 60 / 24 / 30); int sYear = Integer.parseInt(aa.substring(0, 4)); int sMonth = Integer.parseInt.. 2022. 4. 20.
[Java] 파일 다운로드 - 2가지 방식 😎방법 1 - response Flush 더보기 @Controller public class CommonController { @Resource(name="commonService") private CommonService commonService; @RequestMapping(value="/common/downloadFile.do") public void downloadFile(CommandMap commandMap, HttpServletResponse response) throws Exception{ Map map = commonService.selectFileInfo(commandMap.getMap()); String original_File_Name = (String)map.get("ORIGINA.. 2022. 4. 19.
[JAVA]브라우저별 한글 파일명 인코딩 _ excel파일 서버에서 프론트로 파일을 전송할 때 한글로 파일명을 보내면 깨지는 경우가 다반사입니다. 따라서 아래 로직과 같이 User-Agent header 값을 가져와서 브라우저 별로 인코딩을 해 줘야 한글이 깨지지 않고 정상 출력이 됩니다. String fileName = "한글파일명"; String name = "출력될파명이름"; // 브라우저 별 한글 인코딩 String header = request.getHeader("User-Agent"); if (header.contains("Edge")){ name = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-Disposition", "attachm.. 2022. 4. 19.
[JAVA] 간단한 폴더 존재여부 확인 해당 경로가 존재 하지 않을 경우가 있음으로, File Folder = new File(savePath); if (!Folder.exists()) { Folder.mkdir(); //폴더 생성 } 해당 폴더가 존재하지않으면 생성하는 간단코드 추가로 문제 방지 및 해결 2022. 4. 18.
[JAVA]파일을 멀티파트로 변환 일반 파일이나, 생성한 파일을 멀티파트로 변환 하는 코드 File file = new File(savePath+"/"+fileName); 저장된 파일을 읽어드리고 DiskFileItem 를 사용하여 변환한다. DiskFileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length() , file.getParentFile()); InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream(); IOUtils.copy(input, os); Multipa.. 2022. 4. 18.
[java] 임시 비밀번호 생성 Random / SecureRandom /RandomStringUtils) java.util.Random 클래스는 난수를 생성할 때 seed값으로 시간을 이용합니다. 그래서 동일한 시간에 Random 클래스를 사용하여 난수를 사용하면 동일한 값이 리턴됩니다. 예측 가능한 난수를 사용하는 경우 공격자가 SW에서 생성되는 다음 숫자를 예상하여 시스템을 공격할 수 있습니다. 시큐어코딩 가이드 - SW 보안약점 47개 항목 중 적절하지 않은 난수 값 사용 (Use of Insufficiently Random Values)에 해당됩니다. 반면에 java.security.SecureRandom 클래스는 예측할 수 없는 seed를 이용하여 강력한 난수를 생성합니다. 임시 비밀번호 생성 getRamdomPassword(10)를 호출하면 10 글자의 임시비밀번호가 생성됩니다. import ja.. 2022. 3. 3.
728x90
반응형