서블릿 기본기능 수행과정은 요약하면 클라이언트로 부터 요청을 받아 비즈니스 로직을 처리하고 그 결과를 다시 클라이언트에 돌려주는 과정이다.
기능1. 서블릿 응답 요청 API기능
request,response
form태그의 action 속성 = 데이터를 전송할 서블릿이나 JSP이름을 지정한다.
String getParameter(String name) name의 값을 알고 있을 때 name에 대한 전송 값을 받아오는데 사용한다.
get,post방식차이
dohandle = get,post
hidden태그를 보내 javascript로
1.로그인 유효성 검사
2.로그인 요청시 관리자 화면 나타내기
서블릿 비즈니스 처리 작업
이란 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것을 의미한다.
비즈니스 : 상업적 활동(상품이나 서비스를 제공하여 수익창출)
비즈니스 로직: application이나 시스템에서 실제 비즈니스 기능, process를 구현하는부분
결국 고객의 요청으로 상업적활동이 이루어짐으로 뜻이 같다.
DAO패턴
DAO, VO
웹애플리케이션이 DB를 필요할때마다 연결하는게 jdbc방식
이방식을보완하고자 커넥션풀을ㅇ 이용해 데이터베이스와 연결시킨 상태를 유지함
JNDI 데이터베이스 설정정보를 동적으로 가져와 관리할 수 있다.
하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법을 포워드라고 한다.
redirect, Refresh, location, dispatch방법
dispatch는 클라이언트를 거치고 가는 나머지 3개와 다르게 다이렉트로 간다.
클라이언트 거쳐서 가는 3가지 방식들은 첫번재 request 두번재 request다름에 주의
get방식으로 데이터를 요청하면 양이적고 보안상의 문제가 있다.
그래서 JSP로 대량의 데이터를 공유하거나 전달하고 싶을 때는 바인딩 기능
을 하용한다.
setAttribute 바인딩
getAttribute 바인딩된 것을 name으로 가져온다.
ServletContext는 웹 애플리케이션 마다 생성되고 ServletConfig는 각 서블릿에 대해 생성된다.
서블릿 컨텍스트 객체는 웹 애플리케이션이 실행되면서 애플리케이션의 공통자원이나 정보를 미리 바인딩해서 서블릿들이 공유하여 사용한다.
서블릿은 브라우저에서 최초 요청시 init() 메서드를 실행한후 메모리에 로드되어 기능을 수행한다.
최초요청에 대해서는 실행 시간이 길어질 수 밖에 없다. 이런 단점을 보완하는 기능이 load-on-start기능이다.
네, 맞습니다. load-on-startup은 서블릿이 웹 애플리케이션을 배포할 때 초기화되는 시점을 조절하는데 사용되는 설정입니다. 이 설정을 사용하면 웹 애플리케이션이 시작될 때 서블릿이 자동으로 초기화되어 사용 가능한 상태가 된다.
사용자 입장에서 웹 페이지 사이의 상태나 정보를 공유하려면 프로그래머가 세션트래킹
이라는 웹 페이지 연결기능을 구현해야 한다.
상태나 정보를 공유하
려면 웹페이지 연결기능 즉 세션트래킹
을 이용해야한다. 쿠키
란 웹페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 여러 웹페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법 입니다.
사용자의 로그인 상태나 쇼핑몰의 장바구니 담기 기능 같은 정보를 해당 브라우저의 세션에 저장해 두고 사용하면 편리하다.(많이쓰임)
서블릿 속성
이란 다음 세가지 서블릿 API클래스에 저장되는 객체(정보)라고 보면 된다.
1.Servletcontext :애플리케이션 전체 접근
2.HttpSession : 브라우저에서 접근
3.HttpServletRequest : 해당 요청에만 접근
서블릿 스코프
는 서블릿 API에 바인딩된 속성에 대한 접근 범위를 의미한다.
스코프 기능
1. 로그인 상태유지기능
2. 장바구니 기능
3. MVC의 Model과 View의 데이터 전달 기능
URL
패턴이란 실제 서블릿의 매핑 이름을 말한다.
1. @webServlet("/first/") : 디렉터리 이름만 일치하는 패턴
2. @webServlet(".do") : 확장자만 일치하는 패턴
서블릿 요청할때 반복작업을 줄여줄 수 있는게 filter이다. 즉 모든 서블릿에서 공통으로 처리하는 작업을 먼저 필터에서 처리해주면 편하다.
ex)한글 인코딩
서블릿에서 발생하는 이벤트
에 대해 적절한 처리를 해주는 여러가지 리스너를 제공한다.
HttpSessionListener: 세션 객체의 생성/소멸 이벤트 발생시 처리 (로그인 접속자수 표시)
HttpSessiongBindingListener: 세션에 바인딩/언바인딩된 객체를 알려주는 이벤트 발생시 처리한다. (로그인 접속자수 표시)