하나 : 서블릿 무엇입니까 :
서블릿 javaWeb은 동적 자원이며, 세 가지 구성 요소 중 하나입니다. 작업 요청을 처리하는 서블릿이다 서버는 서블릿에 대한 요청은 보통 서블릿 요구 송수신 처리 :
1. 요청 데이터를 수신
2. 요청 처리
3. 전체 응답
예를 들어, 클라이언트가 서블릿에 의해 처리 완료해야 로그인 요청, 출력 등록 요청을 얻기를 보냈습니다! 서블릿가 우리 자신을 작성해야, 각 서블릿 구현해야 javax.servlet.Servlet 인터페이스
2 : 서블릿을 달성하는 방법
서블릿을 달성하기 위해 세 가지 방법이 있습니다 :
1. javax.servlet.Servlet 인터페이스를 달성하기 위해
2. 클래스는 javax.servlet.GenericServlet을 상속
3. 인 javax.servlet.http.HttpServlet 클래스 상속
일반적으로 우리는 우리의 서블릿을 완료하기 위해 HttpServlet을 클래스를 상속 할뿐만 아니라 java.servlet.Servlet에서 학습을 시작하는 서블릿 인터페이스를 배운다.
Servlet.java 달성
/ ** * 확인 방법 서블릿 인터페이스 * / 공용 클래스 였던 aServlet 를 구현 서블릿 { / * * 그것은 또한 라이프 사이클 접근 방식 서블릿이 파괴되기 전에 *이 호출되고,이 한 번만 호출됩니다! * / @Override 공개 공극이 제 (파괴) { 에서 System.out.println ( "32 파괴 () ....." ) } / * * 구성 정보 서블릿 얻기 위해 사용될 수 * / @Override 공개 된 ServletConfig에 getServletConfig을 () { 에서 System.out.println ( "에 getServletConfig () ... ... ..." ); 반환 널 (null) ; } / * * 가져 오기 서블릿 정보 * / @Override 공공 문자열하는 getServletInfo () { 에서 System.out.println ( "하는 getServletInfo () ..." ); 반환 널 (null) ; } / * * 그것은 생명주기 접근 방식입니다 *이 서블릿 객체가 생성 된 직후 실행하고 한 번만 수행! (통화 음성 후) * / @Override 공개 공극 초기화합니다 (ServletConfig를는 arg0)이 발생 ServletException을 { 에서 System.out.println ( "초기화는 () ..." ) } / * * 그것은주기 방법은 그것이 * 라고 여러 번! * 각 처리 요청이 메소드 호출 * / @Override 공개 무효서비스 (ServletRequest의 요청은, ServletResponse를 응답) 가 발생 ServletException을, IOException가 { (에서 System.out.println "...... 서비스를 ()" ); }
당신은 서블릿 서블릿을 완료하면 클래스는 web.xml 파일에 구성해야합니다;
<서블릿> <서블릿 이름>였던 aServlet </ 서블릿 이름> <servlet- 클래스 > cn.itcast.web.servlet.AServlet </ servlet- 클래스 > </ 서블릿> <서블릿 매핑> <서블릿 이름>였던 aServlet </ 서블릿 이름> <URL 패턴> /였던 aServlet </ URL 패턴> </ 서블릿 매핑>
세 : 서블릿의 라이프 사이클
소위 수명주기 XXX, 그가 태어난 XXX, 서비스, 죽음. 서블릿 라이프 사이클, 너무! 서블릿 라이프 사이클 및 관련 방법은 다음과 같습니다
1. 공공 무효의 초기화 (ServletConfig를의 설정)이 발생 ServletException을 2. 공공 추상적 무효 서비스 (ServletRequest의 REQ, ServletResponse를 입술) 가 발생 ServletException을, 때 java.io.IOException 3. 공공 무효 파괴를 ()
1.Servlet 탄생
서블릿 서버는 첫 번째 방문은 서블릿, 서블릿 또는 서버 Qidong의에서 생성을 만드는 것입니다 것입니다. 서버가 시작되면 서블릿을 작성, 당신은 web.xm 파일을 구성해야합니다. 그 기본은, 서블릿은 서버가 생성 액세스 할 이번이 처음이다.
그냥 서블릿 유형, 서버는 객체의 하나의 인스턴스를 생성, 예 : http 우리의 첫 번째 방문에서 : // localhost를 : 8080 /였던 aServlet, 서버를 통해 "/였던 aServlet"는 서블릿 cn.itcast.servlet.AServlet의 이름을 찾기 위해 결합 할 때, 서버는 생성되지 않은 경우, 서버가 반사에 의해 AServlt의 인스턴스를 생성합니다, 서블릿의이 유형이 작성되었는지 여부를 확인. 우리는 다시 방문 할 때
cn.itcast.servlet.AServlet는 서버가 다시였던 aServlet 인스턴스를 생성 아니라 직접 만든 마지막 인스턴스를 사용하지 않습니다.
서블릿이 생성 된 후, 서버는 서블릿 공극 INIT (ServletConfig를 구성)에있어서 즉시 호출한다. , 서블릿 호출 초기화 () 메소드 직후에 생성 된 개체의 인스턴스와 Servlt의 기억
이 메소드는 평생 한 번이라고합니다. 이 방법은 한 번만 호출됩니다.
우리는 아버지 초기화에서 서블릿의 초기화의 수 () 메소드 할 수있다!
2.Servlet 서비스
서버가 요청을 수신 할 때마다, 상기 요청을 처리하는 서블릿 서비스 () 메소드를 호출한다. 서버가 요청을 받으면, 그것을 seviet ()에있어서 한번 사용 서비스 () 메소드를 호출할지 여러 번 호출한다.
그것은 바로이 때문에, 그래서 우리는 service () 메소드의 요청을 처리하는 코드를 작성해야!
3.Servlet 파괴
서버가 종료 될 때 서블릿은 보통 파괴했다. 서버가 종료되면, 서버는 서블릿 () 메소드 서블릿을 파괴 서블릿 호출을 파괴하기 전에, 우리는 마지막 말을 서블릿 수, 파괴 갈 것입니다
속으로는 예를 들어, 파괴 () 메소드에 코드와 같은 특정 자원의 릴리스를 () 메소드를 파괴한다.
@Override 공공 무효 () {파괴 // 기본적으로 NOOP은 } / ** * 지정된 값이 포함 된 <코드> 문자열 </ code>를 반환 * 초기화 매개 변수, 또는 <코드> 널 (null) </ code>를 매개 변수의 경우 하지 않습니다 * 존재한다. 참조 { @link ServletConfig를 # getInitParameter을}. * <p> *이 방법은 편리하게 공급된다. 그것은 이름의 값을 얻을 수 서블릿의 <코드> ServletConfig를 </ 코드> 개체에서 * 매개 변수를. * * @param의 이름 *의은 <코드> 문자열 </ 코드> 특정 이름 * 초기화 매개 변수 *의 @return문자열은 <코드> 문자열 </ 코드>의 값을 포함 * 초기화 파라미터 * / @Override 공개 문자열 getInitParameter (캐릭터 명) { 반환 .에 getServletConfig () getInitParameter (이름); } / ** * int로서 서블릿의 초기화 파라미터의 이름을 돌려줍니다 * <코드> <코드> 문자열 </ 코드> 개체 또는 빈의 열거 </ 코드> * <코드> 열거 </ 코드>의 경우 서블릿 초기화 파라미터가없는. * {참조 @link 된 ServletConfig 번호의은 getInitParameterNames을}. * < *이 방법은 편리하게 공급된다. 그것은에서 매개 변수 이름을 얻는다 * 서블릿의 <코드> ServletConfig를 </ 코드> 객체입니다. * * @return <코드> 문자열 </ 코드> 객체 열거 열거 * 서블릿의 초기화 파라미터의 이름 함유 * / @Override 공개 열거 <문자열> 은 getInitParameterNames () { 반환 .에 getServletConfig을 ()를은 getInitParameterNames (); } / ** * 반환이 서블릿의 { @link ServletConfig를} 객체입니다. * * @ 반환은의 <코드> ServletConfig를 ServletConfig를 </ 코드> 객체 초기화이 서블릿 * * / 의 <코드>의 ServletContext </ 코드>의 ServletContext @Override 공개 된 ServletConfig에 getServletConfig는 () { 반환 설정; } / ** *은 {에 대한 참조를 돌려줍니다 @link 이 서블릿이있는 ServletContext를} * 실행됩니다. 참조 { @link ServletConfig를 # getServletContext을}. * <p> *이 방법은 편리하게 공급된다. 그것은에서 컨텍스트 도착 * 서블릿의 <코드> ServletConfig를 </ 코드> 개체를. * * @return *의 <코드>이 서블릿에 의해 초기화 </ 코드> 방법 * / @Override 공공 의 ServletContext getServletContext () { 창.에 getServletConfig () getServletContext (); } / ** * 작성자, 버전, 등, 서블릿에 대한 정보를 반환 * 저작권. 기본적으로이 방법은 빈 문자열을 반환합니다. 이 오버라이드 (override) 가 의미있는 값을 반환하도록 * 방법. 참조 * { @link 서블릿 #하는 getServletInfo}. * * @return 이 서블릿에 대한 문자열 정보를 기본적으로 빈 문자열 * / @Override 공공문자열하는 getServletInfo () { 반환 "" ; }