본문 바로가기

개발/JAVA33

MultipartHttpServletRequest 다중파일 업로드 파일 업로드를 위해 Form의 인코딩타입을 multipart/form-data로 변경해줍니다.이후 업로드 할 파일을 선택할 수 있도록 file 타입의 input 태그를 작성해줍니다. Spring에서 Multipart 파일업로드를 사용하기 위한 Commons fileupload(http://jakarta.apache.org/commons/fileupload)를 지원하고 있습니다.context파일에 multipartResolver를 bean에 등록해줍니다.multipartResolver는 maxUploadSize(최대 크기), maxInMemorySize(임시 파일 생성 전 메모리 보관 최대 크기), defaultEncoding(인코딩 타입) 세가지의 속성을 지원하고 있습니다. 이후 컨트롤러에서 요청을 받아.. 2018. 7. 23.
Java8#02. 함수형 인터페이스(Functional Interface) 앞선 포스팅에서 함수형 인터페이스(Functional Interface)가 무엇인지 알아봤다. 이번 포스팅에서는 Java8에서 기본적으로 제공하는 함수형 인터페이스들을 알아보자. 보통 'API는 외울필요없다. 이런게 있다는것만 알고있으면 된다.' 이런말을 많이 하는데 개인적인 생각에 Java8에서 제공하는 API는 최대한 외울수 있는데까지는 외워야 한다고 생각한다. 다음번에 알아볼 Stream은 선언형 프로그래밍으로 API만 계속 등장하게되는데 그때마다 찾아서 쓰려면 오히려 생산성이 저하되는 일이 발생할 수도 있기때문이다. 1) Runnable기존부터 존재하던 인터페이스로 스레드를 생성할때 주로사용하였으며 가장 기본적인 함수형 인터페이스다. void 타입의 인자없는 메서드를 갖고있다.Runnable r .. 2018. 7. 20.
Java8#01. 람다 표현식(Lambda Expression) Java8에서 뭐가 추가됐나요? 라고 물으면 가장 먼저 들리는 대답은 십중팔구 '람다와 스트림이요' 일것이다. 당연히 맞는 말이고 틀린 답은 아니지만 람다와 스트림이 왜 추가됐는지를 알아야하는데, 자바가 기존에 없던 문법까지 만들어가면서 이런것들을 추가한건 함수형 프로그래밍을 받아들이기 위해서다. 그래서 Java8을 공부하고자하는 사람이라면 그냥 단순히 '이번에 추가된 람다랑 스트림공부해야지'가 아니라 함수형 프로그래밍을 공부해야한다. 이는 프로그래밍 자체의 패러다임이 변하기때문에 그저 추가된 문법, 추가된 API만 공부하면 되는 수준이 아니라 프로그래밍 방식 자체, 문제 해결을 위한 사고방식 자체를 기존에서 탈피해야함을 의미한다. 해보니 기존에도 못하던걸 새로운걸 받아들이려고하니까 너무 어렵다;; 그래.. 2018. 7. 20.
로그인 중복체크 /* * 로그인 중복체크 * 이미 로그인한 사용자가 있을경우 기존의 사용자 세션을 종료후 자신이 로그인. * 해시테이블에 세션과 접속자 아이디를 저장해 둔다. * 세션 Object를 저장하는 이유는 동일한 아이디로 재접속 했을경우 * 아이디로 세션Object를 찾아내어 기존의 접속을 끊기위해서다.(invalidate) */ ============== WEB-INF\src\test\LoginManager.java =============== package test; import java.util.*; import javax.servlet.http.*; /* * session이 끊어졌을때를 처리하기 위해 사용 * static메소드에서는 static만사용 하므로static으로 선언한다. */ public cl.. 2018. 7. 11.