📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법

# jsp (109)

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그러나 보안적인 측면에서 보았을때..

Servlet&Jsp 2019. 7. 9. 20:30

[서블릿/JSP] 서버의 세션 수 제한하는 방법

서버의 세션 수 제한하는 방법만약 사용자가 로그인 했을때 서버에 세션 객체를 생성한다고 가정했을때 특정 사용자의 수 만큼만 접속을 제한하고 싶은 경우 어떻게 해야할까요? 가장 단순한 방법으로는 서블릿 컨테이너(서버)의 세션 객체의 최대 생성 수를 제한하면 됩니다. 물론 요즘은 인증, 인가와 관련된 수많은 프레임웍이 있기에 실무에서도 이러한 방식을 사용하는 경우가 있는지는 의문입니다. 아마 서버의 사양으로 인한 메모리 관리 용도로 사용하는 경우정도가 있지 않을까 싶습니다.설정 방법톰캣의 경우 [톰캣 설치 디렉터리]/conf/context.xml에 세션객체의 최대 수를 제한할 수 있는 maxActiveSessions 속성을 지원합니다. 태그 하위에 태그를 넣고 속성으로 maxActiveSessions 속성..