참고글[서블릿/JSP] Apache Commons FileUpload를 이용한 파일업로드 구현하기필수 사전 지식[HTTP] HTTP 환경에서 파일 업로드시 enctype multipart/form-data에 대한 설명파일 업로드파일 업로드는 어느 웹 어플리케이션이든 거의 필수적으로 필요한 기능입니다. 게시판에 첨부파일을 올린다거나 회원가입시 프로필 사진을 올린다거나 자신의 블로그에 동영상등을 올릴때에도 사용합니다. 그러나 파일업로드는 일반적인 text 데이터를 전송할때와는 다른 처리 과정이 필요합니다. 파일은 일반적인 text 데이터와는 다른 특성을 가지고 있기 때문입니다. 자세한 사항은 상단의 필수 사전 지식 포스팅 링크를 참고해주시기 바랍니다.첨부파일과 일반 form 데이터의 차이점브라우저에서 을 통..
Servlet&Jsp
2019. 7. 24. 20:38
[서블릿/JSP] Apache Commons FileUpload를 이용한 파일업로드 구현하기
참고글 [HTTP] HTTP 환경에서 파일 업로드시 enctype multipart/form-data에 대한 설명파일 업로드웹 환경에서 파일업로드는 많은 곳에서 사용됩니다. 예를 들어 게시글의 첨부파일이나 회원가입 시 프로필 사진을 업로드할 때에도 쓰이며, 쇼핑몰에서 상품 이미지를 등록할 때에도 사용될 것입니다.Servlet/JSP 환경에서 파일 업로드를 구현할 때는 보통 파일 업로드와 관련된 라이브러리를 사용합니다. Servlet 3.0 이전에는 전송된 File을 쉽게 처리할 수 있도록 지원해주는 API가 없기 때문입니다. 업로드 관련 라이브러리 없이 직접 업로드 기능을 구현하여 사용해도 되지만 HTTP 기반의 파일 입출력 관련 기능을 구현해서 사용하기엔 번거로운 점이 많기 때문에 거의 대부분의 경우 ..
Servlet&Jsp
2019. 7. 22. 09:48
[JSP/Servlet] JSP/Servlet 환경에서 파일 업로드 위한 Apache Commons FileUpload 라이브러리 설정 방법
연관글[서블릿/JSP] Apache Commons FileUpload를 이용한 파일업로드 구현하기파일 업로드시 라이브러리를 사용하는 이유JSP/Servlet 환경에서 파일을 업로드할때에는 오픈소스 라이브러리를 사용합니다. 왜냐하면 서버입장에서는 평소에 쿼리스트링을 통해 넘어오는 파라미터와는 다르게, 클라이언트가 HTTP 요청메시지의 몸체에 multipart 형태로 업로드한 파일의 바이너리 데이터를 입력 스트림을 통해 읽어들여 각각 잘라서 가공한 다음 사용해야 하는데, 매우 번거로운 일이기 때문입니다.물론 세밀한 조작이나 파일업로드 라이브러리를 직접 개발하기 위해서는 이러한 과정을 직접 개발해야 할 것입니다.그러나 시간이 없는 우리 일반 웹개발자들에겐 좋은 오픈소스 라이브러리들이 있습니다. 최근 버전의 S..
Servlet&Jsp
2019. 7. 18. 14:56
[서블릿/JSP] HttpSessionAttributeListener 리스너로 세션 Attribute 변경시 이벤트 처리하기
이전글[서블릿/JSP] 리스너(Listner)란? 이벤트 리스너의 개념 설명. 구현 및 등록하기[서블릿/JSP] HttpSessionListener 리스너로 세션 생성 및 종료시 이벤트 처리하기[서블릿/JSP] 세션(Session)이란? 세션 생성하는 방법 및 세션 객체 설명HttpSession의 attributeHttpSession 객체는 세션에 값을 저장하기 위한 용도로 attribute를 조작할 수 있는 두 가지 메서드를 가지고 있습니다.public void setAttribute(String name, Object value) //attribute 새로 추가 또는 변경public void removeAttribute(String name) //attribute 제거setAttribute()는 새로..
Servlet&Jsp
2019. 7. 17. 21:45
[서블릿/JSP] HttpSessionListener 리스너로 세션 생성 및 종료시 이벤트 처리하기
이전글[서블릿/JSP] 리스너(Listner)란? 이벤트 리스너의 개념 설명. 구현 및 등록하기[서블릿/JSP] 세션(Session)이란? 세션 생성하는 방법 및 세션 객체 설명HttpSessionListener 리스너JSP/Servlet 환경에서는 접속한 클라이언트에 대한 정보를 HttpSession 객체에 담아 표현합니다. HttpSession 객체는 HTTP 요청시 생성되었다가 응답시 사라지는 ServletRequest 객체와는 다르게 JSP나 Servlet에 의해 생성된 후 설정된 timeout에 따라서 제거됩니다.그리고 이 HttpSession 객체가 생성되고 제거될 때 발생되는 이벤트가 HttpSessionEvent이며, 이 이벤트를 처리하는 리스너가 HttpSessionListener 리스너..
Servlet&Jsp
2019. 7. 16. 00:30
[서블릿/JSP] ServletRequestAttributeListener 리스너로 ServletRequest attribute 변경시 이벤트 처리하기
이전글[서블릿/JSP] ServletRequestListener 리스너로 ServletRequest 생성 소멸시 이벤트 처리하기](https://dololak.tistory.com/613)[서블릿/JSP] JSP request 기본객체](https://dololak.tistory.com/140)ServletRequest 객체ServletRequest 객체는 JSP/Servlet에서 클라이언트로부터의 요청이 왔을때 그 요청 정보를 객체화한것입니다, HTTP 환경에서 클라이언트인 브라우저가 톰캣같은 서블릿 컨테이너로 요청을 보낼때마다 HttpServletRequest 객체가 하나씩 생성되며, 컨테이너에서 요청을 처리한 후 응답을 보낼때 사라지게 됩니다.ServletRequest에는 객체를 저장하고 꺼내어 쓸..
Servlet&Jsp
2019. 7. 15. 09:00
[서블릿/JSP] ServletRequestListener 리스너로 ServletRequest 생성 소멸시 이벤트 처리하기
이전글[서블릿/JSP] 리스너(Listner)란? 이벤트 리스너의 개념 설명. 구현 및 등록하기[서블릿/JSP] JSP request 기본객체ServletRequest 객체ServletRequest 객체는 JSP/Servlet에서 클라이언트로부터의 요청이 왔을 때 그 요청 정보를 객체화한 것입니다. HTTP 환경에서 클라이언트인 브라우저가 톰캣 같은 서블릿 컨테이너로 요청을 보낼 때마다 ServletRequest의 하위객체인 HttpServletRequest 객체가 하나씩 생성되며, 컨테이너에서 요청을 처리한 후 응답을 보낼 때 사라지게 됩니다.ServletRequest에는 객체를 저장하고 꺼내어 쓸 수 있는데, 저장할 때는 public void setAttribute() 메서드를 사용하며, 꺼낼 때는 ..
Servlet&Jsp
2019. 7. 15. 00:30
[서블릿/JSP] HttpSessionBindingListener의 바운드와 언바운드 조건
이전글[서블릿/JSP] HttpSessionBindingListener의 바운드와 언바운드 조건HttpSessionBindingListener 바운드와 언바운드 조건UserInfo 클래스가 다음과 같이 HttpSessionBindingListener를 구현하였다고 하였을때 valueBound()와 valueUnbound() 메서드가 호출되는 조건에 대하여 알아보도록 하겠습니다.package listener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionBindingListener;public class UserInfo implements HttpSessionBindingListener { S..
Servlet&Jsp
2019. 7. 14. 21:14
[서블릿/JSP] HttpSessionBindingListener 리스너 사용법
HttpSessionBindingListener 리스너란HttpSessionBindingListener는 HttpSessionBindingListener 리스너를 구현한 객체가 세션(HttpSession) 객체의 setAttribute() 메서드를 통해 바인딩되거나 removeAttribute() 메서드를 통해 언바인딩될 때에 대한 이벤트를 처리할 수 있도록 하는 리스너입니다.public interface HttpSessionBindingListener extends EventListener { /** * 구현 객체가 세션에 바인딩 될때 호출됨 */ public void valueBound(HttpSessionBindingEvent event); /** * 구현 객체..
Servlet&Jsp
2019. 7. 10. 02:30
[서블릿/JSP] 톰캣 8.0 이하에서 HTTP Response 메시지에서 Server 값 바꾸기
톰캣 8.0 이하에서 HTTP Response 메시지에서 Server 값 바꾸기HTTP 응답메시지의 헤더중 Server라는 속성이 있고 이 값은 웹서버 제품의 이름을 알려줍니다. 톰캣은 기본적으로 Apache-Coyote라는 값을 응답하도록 되어있습니다.아래는 톰캣에게 요청을 보냈을때 응답 메시지를 캡쳐한것입니다.HTTP/1.1 200 OKServer: Apache-Coyote/1.1Set-Cookie: JSESSIONID=A07D4A517740C52E01F502DBF8DE5C0C; Path=/; HttpOnlyContent-Type: text/html;charset=UTF-8Content-Length: 142Date: Tue, 09 Jul 2019 05:01:43 GMT그러나 보안적인 측면에서 보았을때..