JAVA 쑝스토리 2021. 5. 18. 18:06
스프링 프레임워크 기반으로 fileupload 기능 구현중에 다음과 같은 에러를 만났습니다. ajax 를 이용 하여 다음과 같이 요청 하였습니다. 자바스크립트 ajax 요청 부문 $.ajax({ url : "/registerBoard.do", enctype: 'multipart/form-data', // 필수 processData: false, // 필수 contentType: false, // 필수 type : "POST", data : formData, success : function(data) { if(data==""){ }else{ } }, error : function(msg) { } }); } } 스크립트 상으로는 이상이 없습니다. 위와 같이 진행시에 에러가 났다면 스프링프레임워크 xml 설..
JAVA 쑝스토리 2021. 5. 14. 10:30
메이븐의 기본구조(Maven Project) 원래 메이븐의 기본 프로젝트 구조는 위 사진과 같습니다. 때문에 메이븐으로 빌드 및 install 을 하게 될 경우 저 경로를 기본으로 잡기 때문에 저곳을 컴파일 하여 deploy 하게 됩니다. 다이나믹 웹 프로젝트(dynamic Web Project) 그런데 제가 받은 프로젝트의 구조는 다이나믹 웹프로젝트의 구조여서 이곳에 메이븐프로젝트로 변경을 하고 경로를 따로 설정을 해줘야 했습니다. 설정법은 pom.xml 에서 설정해줘야 합니다. POM.XML을 변경하면 간단하다 org.apache.maven.plugins maven-war-plugin WebContent\WEB-INF\web.xml ${basedir}/WebContent ${basedir}/src/e..
JAVA 쑝스토리 2019. 6. 12. 16:31
스프링 자바 파일 다운로드 java file download 예제자바 스프링에서 파일을 다운로드 하는 예제를 올려보겠습니다. 저는 각종 문서 템플릿을 사용자들이 다운받을 수 있도록 JSP페이지에 기능을 추가 하였습니다. 파일 다운로드 로직을 유틸자바파일로 생성하고, 컨트롤러단에서 사용하였습니다. JSP 에서 url로 호출하여 사용하였습니다. 순서대로 진행하시면, 자연스럽게 이해되실꺼에요. 1. 자바파일다운로드 코딩로직 (DownloadView.java 파일을 생성해준다.) import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.Unsupp..
JAVA 쑝스토리 2018. 9. 21. 13:41
자바 파일 입출력 NIO 를 이용하여 속도를 빠르게 이용하자 파일 이동/복사 관련하여 작업을 하던중에 I/O를 사용하였는데, 속도가 너무 느리더라구요. 고작 6메가짜리를 이동/복사 하는데 말이죠. 그래서 속도를 향상시키는 방법이 뭐가 있나 찾아보던 도중에 NIO 를 알게 되었습니다. NIO 란?자바 4 버전부터 새로운 입출력이라는 (New Input/Output) 의 약어로 NIO 패키지를 포함 시키면서 나오게 되었습니다. 이후에 자바7에서는 비동기 채널등의 네트워크 지원을 강화시킨 NIO 2 API 가 추가되었죠. 일반 IO 와 그러면 어떠한 차이점이 있을까요? 구분 IO NIO 입출력 스트림 채널 비동기 지원안함 지원함 블로킹 / 논블로킹 블로킹만 모두 지원 이렇게만 보아도 NIO 가 훨씬 좋다는걸 ..
JAVA 쑝스토리 2018. 9. 20. 14:51
$.each(data, function(key,value) 이용하여 데이터 받기 비동기 방식으로 동작하기 위해 ajax를 사용하게 됩니다. 저는 레이어팝업에서 데이터를 가져오기 위하여 사용하였습니다. 레이어팝업은 한페이지 안에서 동작이 이뤄져야 하기 때문에 ajax 통신이 필요합니다. 장점은 비동기로 작동하기 때문에 해당기능이 데이터를 처리하는 동안에 또 다른 동작을 수행할수 있고, 불필요한 화면 로딩을 줄이고, 조금더 자유롭게 보이는 페이지 구현을 가능하게 해줍니다. Jquery each 의 표현식 JSP 에서 $.each(data, function(key,value) 으로 데이터를 가져오고 function 기능을 통해 key 와 value 를 구분하여 가져올수 있습니다. 이렇게 가져온 키와 값은 물론..
JAVA 쑝스토리 2018. 9. 17. 15:36
JAVA AES256 양방향 암호화 방식 실제 프로젝트를 진행 하면서 사용 하였던 AES256 암호화 기법을 소개하려고 합니다. 실제로 아직까지 많은 자바 개발자들이 이용하고 있습니다. 아파치에서 제공하는 common.codec 을 사용하며, 별도의 많은 파일은 필요하지 않습니다. commons-codec-1.10.jar 파일을 필요로 합니다. 이것은 저가 하단쪽에 첨부해드릴게요. ㅎㅎ 대칭키(비밀키) 방식의 AES256 암호화 장단점예전 AES128(128비트 블록암호화)를 사용하던 암호화가 보안에 취약하여, 개선된 버전이 AES256(256비트 블록암호화) 입니다. 주로 평문 데이터를 암호화하는데 많이 쓰이며, 비밀키 하나로 데이터를 암호화 하고 복호화를 하며 사용하게 됩니다. 장점으로는 AES128..
JAVA 쑝스토리 2018. 9. 17. 13:10
httpclient 를 이용한 POST 파일, 이미지 전송프로젝트를 진행 하며 클라이언트가 파일업로드를 하면 파일을 서버에서 PDF로 변환 한뒤, 다시 클라이언트 리다이렉트 해주는 로직을 구현하고 있습니다. 자바의 org.apache 를 이용하여 post 방식으로 파일을 서버에 전송하는 소스파일 입니다. HTTP POST 를 이용한 파일 전송하기 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.Http..
JAVA 쑝스토리 2018. 9. 14. 15:31
스프링 자바 인터셉터 설정에 대해 알아보자 스프링에서 세션체크 및 로그인 전후 처리를 위해 자주 사용 되는 핸들러 인터셉터 DispatcherServlet이 컨트롤러를 호출하기전과 후에 대한 response(응답) 와 request(요청)을 제어 할 수 있는 필터입니다. 쉽게 설명하면, 클라이언트 즉 사용자가 서블릿 요청을 하면 Controller 로 가기전에 그 요청을 가로채는 역할을 합니다. 3가지 메소드의 사용HandlerInterceptor 는 3가지의 메소드로 구성되어 있으며, 사용자에게 필요한 시기에 따라 메소드를 선택하여 사용할수 있습니다. preHandle : 제일 많이 쓰이며, Controller 가 수행되기전에 수행 됩니다.postHandle : Controller가 호출 되어 수행되고..
JAVA 쑝스토리 2018. 9. 13. 14:26
자바 접속자 브라우저 정보와 IP 정보 얻어오기 웹사이트를 관리하다보면, 웹로그를 기록해야 되는 경우가 많습니다. 사용자에 대한 추적을 하기 위해서죠. 자바에서 제공하는 HttpRequest.UserAgent Property 를 통하여 접속 사용자의 브라우저 정보를 얻을 수 있습니다. 저는 인터셉터에서 처리하였으며, 사용자의 브라우저 정보 및 아이피등의 웹로그를 얻기 위해 구현 하였습니다. 서블릿을 따로 만들어 필요할때마다 요청하여 사용중입니다. getHeader 를 통하여 User-Agent 에서 얻어온 값을 출력해 보면 상당히 긴 구문을 출력해 옵니다. 브라우저에 대한 상세정보인데요.저희는 이것을 indexof 를 이용하여, 각 브라우저의 특정 문자열을 찾아서 맞으면 그 결과값을 저장하여 브라우저 정..