서버의 세션 수 제한하는 방법만약 사용자가 로그인 했을때 서버에 세션 객체를 생성한다고 가정했을때 특정 사용자의 수 만큼만 접속을 제한하고 싶은 경우 어떻게 해야할까요? 가장 단순한 방법으로는 서블릿 컨테이너(서버)의 세션 객체의 최대 생성 수를 제한하면 됩니다. 물론 요즘은 인증, 인가와 관련된 수많은 프레임웍이 있기에 실무에서도 이러한 방식을 사용하는 경우가 있는지는 의문입니다. 아마 서버의 사양으로 인한 메모리 관리 용도로 사용하는 경우정도가 있지 않을까 싶습니다.설정 방법톰캣의 경우 [톰캣 설치 디렉터리]/conf/context.xml에 세션객체의 최대 수를 제한할 수 있는 maxActiveSessions 속성을 지원합니다. 태그 하위에 태그를 넣고 속성으로 maxActiveSessions 속성..
Servlet&Jsp
2019. 7. 9. 12:45
[서블릿/JSP] 세션 timeout 설정 방법들과 적용 우선순위
참고글[서블릿/JSP] 세션(session)의 마지막 접근시간 및 유효시간에 대해[서블릿/JSP] 세션(Session)이란? 세션 생성하는 방법 및 세션 객체 설명[서블릿/JSP] 세션(session)을 명시적으로 종료시키는 방법세션(Session)세션은 접속한 사용자의 상태를 담은 객체입니다. stateless인 HTTP의 특성상 브라우저는 웹서버와의 관계에서 접속중이라는 개념이 없고 매번 HTTP요청을 통해 잠깐 접근했다가 응답이 오면 접근을 끊어버리기 때문입니다.따라서 아파치 웹서버나 톰캣같은 서블릿 컨테이너는 웹환경에서 사용자가 접속중이다라는 개념이 없으므로 특별한 방식을 사용합니다. 그것은 세션 객체를 생성해두고 일정시간(TIMEOUT)내에 클라이언트가 HTTP 요청을 보낸경우 아직 사용자가 떠..
Servlet&Jsp
2019. 1. 24. 17:09
[서블릿/JSP] 리스너(Listner)란? 이벤트 리스너의 개념 설명. 구현 및 등록하기
리스너란? 이벤트, 리스너, 이벤트핸들러 간략 개념정리리스너는 단어의 뜻으로 보자면 (소리를) 듣는 사람, 청취자입니다. 프로그래밍에서의 리스너는 무언가 소리를 듣는 사람을 뜻하기 보다는 특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 컴포넌트(메서드나 함수)를 말합니다.리스너는 이벤트가 발생함과 동시에 특정 행동을(메서드나 함수를 실행)하는데, 이것을 이벤트 핸들링이라고 합니다. 따라서 리스너를 이벤트 핸들러라고 부르기도 합니다.여기서 이벤트라는 말이 등장하는데, 이벤트는 발생한 특정 사건이나 일을 말하는데, 예를 들어보자면 마우스 클릭, 키보드 키 입력, 버튼 클릭, 텍스트 입력 등이 있습니다.꼭 입출력과 관련된것만이 이벤트는 아니며, 이 글에서 설명하려는 Servlet/JS..
Servlet&Jsp
2019. 1. 16. 11:23
[서블릿/JSP] web.xml에서 filter-mapping 설정의 dispatcher 설정에 대하여
참고글[서블릿/JSP] Exception 타입에 따른 오류 처리 JSP 맵핑하기[서블릿/JSP] HTTP 응답 상태 코드별로 처리할 JSP 지정하기필터 객체의 처리 조건필터는 클라이언트가 서버의 특정 자원을 요청할 때 해당 요청을 필터링 처리하는 것이 목적입니다. 그러나 여기서 말하는 클라이언트는 브라우저만 해당되는 것은 아닙니다. 즉 브라우저가 서블릿이나 JSP를 요청할 수도 있지만 RequestDispatcher 객체의 include()나 forward()를 통해 JSP에서 JSP로 서블릿에서 서블릿으로 요청을 하는 경우도 있습니다.또한 웹 컴포넌트에서 요청을 처리하다 예외가 발생하고 예외를 처리하지 못해 웹 컨테이너로 던져진 경우 설정에 따라 웹 컨테이너가 특정 에러 처리 페이지에 처리를 요청하기도..
Servlet&Jsp
2019. 1. 13. 21:13
[서블릿/JSP] init() 메서드를 통한 필터 초기화시에 FilterConfig를 통해 설정값 얻기
참고글[서블릿/JSP] 서블릿의 초기화 과정 및 초기화 방법FilterConfig란FilterConfig는 필터가 초기화 되는 시점에 호출되는 init() 메서드의 매개변수로 전달되는 객체입니다.public class MyFilter implements Filter { public void init(FilterConfig config) throws ServletException { //필터 객체가 생성 및 초기화 될 때 최초에 한 번 실행 //FilterConfig 객체를 통해 web.xml에서 설정해둔 설정 값들을 가져올 수 있다. }}FilterConfig 객체는 web.xml에서 태그를 통해 작성해둔 설정값 정보들과 ServletContext에 대한 참조를 가지..
Servlet&Jsp
2019. 1. 11. 15:48
[서블릿/JSP] @WebFilter 어노테이션으로 필터 설정하기
이전글[서블릿/JSP] 필터(Filter) 사용 방법 및 예제[서블릿/JSP] 필터(Filter)란? 필터 개념 및 설명@WebFilter 어노테이션으로 필터 설정하기서블릿 스펙 3.0 이전까지는 web.xml을 통해 Servlet과 Filter를 등록하고 URL 맵핑등을 설정하여 사용하였습니다. 그러나 서블릿 3.0 부터는 web.xml에서의 서블릿, 필터 설정을 자바 소스상에서 대체할 수 있는 어노테이션이 추가되었습니다.@WebFilter 어노테이션은 필터를 등록하고 설정하는 어노테이션입니다. 서블릿 3.0은 톰캣을 기준으로 7 버전부터 지원하므로 톰캣7 이상의 서블릿컨테이너를 사용한다면 @WebFilter 어노테이션을 사용하여 필터를 등록할 수 있습니다.다음은 이전글에서 사용했던 예제인 Loggin..
Servlet&Jsp
2019. 1. 9. 00:30
[서블릿/JSP] 필터(Filter) 사용 방법 및 예제
Filter 인터페이스필터를 구현하기 위해 Servlet/Jsp에서는 javax.servlet.Filter라는 인터페이스를 제공하며 이 인터페이스를 구현하도록 되어 있습니다. Filter 인터페이스의 메서드는 다음과 같이 구성되어있습니다.package javax.servlet;import java.io.IOException;public interface Filter { public void init(FilterConfig filterConfig) throws ServletException; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) t..
Servlet&Jsp
2019. 1. 8. 12:00
[서블릿/JSP] 필터(Filter)란? 필터 개념 및 설명
필터(Filter)란필터는 이름에서도 알 수 있듯 정수기 필터, 에어컨 필터, 담배의 필터와 같이 무언가를 걸러내는 필터를 말합니다. JSP/Servlet 에서도 필터의 개념은 같지만 걸러내는 대상이 다릅니다.Jsp/Servlet에서의 필터는 서블릿 2.3 부터 추가된 기능으로 클라이언트(브라우저)가 서버로 요청을 보내올때 요청이 서블릿으로 전달되기 전, 후에 필터링하기 위한 기술을 의미합니다.Jsp/Servlet 스펙에서 필터는 사용하기 쉽도록 javax.servlet.Filter 인터페이스로 제공하고 있으며 이것을 구현하고 web.xml에 등록하기만 하면 간단하게 사용할 수 있습니다.인터페이스의 구현 메서드는 서블릿의 service() 메서드나 doGet() doPost() 메서드와 유사하기때문에 매..
Servlet&Jsp
2019. 1. 8. 10:12
[서블릿/JSP] 필터를 여러개 등록하는 방법 및 순서 지정하기
필터체인(FilterChain)하나의 웹 어플리케이션에는 여러개의 필터가 존재할 수 있습니다웹 어플리케이션에 생성된 여러개의 필터 객체들은 순서를 가지고 서로 사슬처럼 연결되어 있기에 이것을 필터체인(FilterChain)이라고 합니다. 필터체인의 가장 끝에는 최종 목적지(Servlet, JSP, 기타 자원)가 있습니다.필터 클래스에서 구현한 doFilter() 메서드의 세번째 파라미터로 FilterChain이 넘어오는데 이 FilterChain이 이 필터사슬과 관련된 객체입니다. 따라서 FilterChain의 doFilter() 메서드를 실행하면 필터체인상에 있는 다음 컴포넌트로 제어가 넘어갑니다.public void doFilter(ServletRequest request, ServletRespons..
Servlet&Jsp
2019. 1. 3. 16:19
[서블릿/JSP] 웹어플리케이션(ServletContext)과 세션(Session)의 관계
참고글[서블릿/JSP] JSP 기본 객체별 생명 주기(scope)[서블릿/JSP] JSP application 기본 객체란? web.xml 초기 설정 값 가져오기웹어플리케이션(ServletContext)과 세션(Session)의 관계서블릿 컨테이너는(예를 들어 톰캣) 여러개의 웹어플리케이션을 배포할 수 있습니다. 웹어플리케이션은 서블릿 컨테이너의 webapps 디렉터리 하위에 배포되는데 webapps/ROOT/ 경로로 배포되면 컨텍스트 경로는 localhost/ 와 같이 / 경로로 배포되며, webapps/jspStudy 와 같이 배포되면 컨텍스트 경로는 localhost/jspStudy/가 됩니다.즉 webapps 하위의 배포 디렉터리별로 웹어플리케이션의 단위가 결정되는것입니다. 그리고 각각의 웹 어플..