spring 전반적인 복습하기 - servlet

 -doxxx 메소드의 인자 : req, res 로 규약되어 있다. 

- doget, dopost -> httpservlet 에 보면 정의되어 있고 재정의 해서 오버라이딩해서 사용한다. 

  HTTP 메소드 : GET, POST, DELETE, PUSH, HEAD 


-printwriter 객체 생성


- 재정의

요청을 생성할 때마다 서버의 현재시간이 달라진다.

new Date 부분을 db에서 조회한 데이터라고 생각해보면, 사용자 별로 요청에 대한 응답을 각각다르게 생성하는 것이 가능하다. 

db에 대한 연동 부분은 html, javascript 만 이용해서 불가능하다 ( 정적인 것 ) 

servlet을 통해 응답으로 생성하는 html 을 동적으로 변경 => 동적(servlet/jsp 를 배우는 이유) 


-servlet 의 라이프 사이클


init() ==> service() ==> destroy()

init 은 로딩시 최초 1회 service 메서드는 사용자가 요청할 때마다 , destroy() 는 서버 종료 or reload 시 

init 메서드는 해당 서블릿에서 사용하는 자원을 초기화 할 때 사용한다. 

로딩시 최초 1회를 호출한다 : 로딩 되는 시점에 => 해당 서블릿으로 최초 요청이 들어왔을 때 

단 web.xml 의 servlet 엘레먼트의 하위 엘레먼트 load-on-startip 엘레먼트 값으로 양의 정수값을 입력할 경우 서버가 가동하면서 바로 init 메소드 호출 


-servlet container 가 요청을 처리하는 방법

등록된 url 매핑을 참고하여 등록된 서블릿으로 요청을 전달한다(service 메서드 호출) 

예시 ) localhost/basicServlet ==> BasicServlet의 service 메소드를 통해 응답 생성

localhost/index.jsp ==> servlet 설정에 있는 web.xml 에 등록된 *.jsp, *.jspx url-pattern 에 따라 jsp 라는 이름의 서블릿에서 처리 (JspServlet) 




printWriter 객체를 생성해서 응답부분에 뿌려준다. 

printWriter pw = resp.getWriter(); 



효율성을 위해서 버퍼에 어느정도 양이 차면 사용한다. -> 조금만 찼어도 보내도 된다.

(pw.println)이 끝나면 더이상 작성할 내용이 없으므로 작업을 끝내도 된다고 해준다.

pw.flush();

//사용한 자원을 반납

pw.close(); 










 


댓글