[java] request 에서 file 정보가 null이 떨어지는 이유

728x90
반응형

[문제]

 fileUpload 함수가 너무 길고 지저분 하게 되어있어서 리팩토링을 하는 도중

request로 파일 객체를 받아서 서버에 업로드를 해야하는데 

클라이언트에서 넘겨줄땐 문제 없이 넘어가는데 

파싱을 하려고 하면 null로 떴다.

 

[원인]

페이지의 요청이 발생하면 최초 한 번만 자바 코드로 변환된 후 서블릿 클래스로 컴파일 됨
즉, JSP는 실행시 서블릿으로 변환됨 (출처-https://pathas.tistory.com/176)

이것 때문인지 정확한 원인은 모르겠는데 request를 두번 사용해서 값들이 날아간것이었다.

 

[해결]

이 오래된(약 20년 전..) 프레임워크에서 공통적으로 만들어놓은 jsp에서 request를 먼저 받아 multipart인 것들을 파싱하고 있었다. 그 후에 내가 파싱을 시도하려고 하니까 null이 떴던것!!

중복된 소스를 제거하니까 정상적으로 file 객체들이 떴다.

멋찐 대리님의 도움을 받아 이틀동안 해결 못할 뻔 한걸 해결했다!! 

 

Ref


https://lessoncoding.tistory.com/34

 

파일 업로드 / 다운로드 구현 (1) - 파일 업로드

파일 업로드를 서버에서 편리하게 구현하기 위해서는 cos.jar 또는 Commons Fileupload.jar 와 Commons io.jar 를 다운받아야 사용할 수 있다. 여기서는 Commons Fileupload.jar, Commons io.jar를 사용하여 파..

lessoncoding.tistory.com

https://pathas.tistory.com/176

 

JSP | JSP 개요 및 특징

JSP Java Server Pages 자바를 기반으로 하며 서블릿보다는 자바 코드에 덜 의존적인 웹 프로그래밍 언어 JSP 개요 서블릿과 동일한 처리 구조를 가짐 서블릿 기술을 확장한 것이며 웹 상에서 100% 순수

pathas.tistory.com

 

728x90
반응형