'서블릿'에 해당되는 글 1건

  1. 2009.08.14 스터디 08/15(JSP&Servlet Servlet) by 대절님

//서블릿
정의 : 웹APP를 만드는 자바 기술
특징 :
-html의 정적인 문제점해결할수 있는 동적인 특징, 자바언어로 작성
-객체 지향적, 다른 자바기술과 연동 가능(JDBC,EJB등)
-container라는 특별한 환경에서 실행, 플랫폼 독립적
-스레드 방식실행(공유, 병행처리), ServerSide에 적합한 자바기술
-보안모델 적용 수월, 브라우저를 통해 요청

//서블릿 API

public interface Servlet
         ↑
public abstract class GenericServlet impl ServletConfig   <--init(), service()
         ↑
public abstract class HttpServlet      <--doGet(), doPost()
         ↑
사용자정의 Servlet

//Servlet Life Cycle
-init() : 서블릿 요청시 맨처음 단한번 수행, 서블릿의 초기화 작업수행
-service() : doGet(), doPost(), 서블릿요청시 매번 수행, 실제 비지니스 로직 수행(반드시 구현)
-destroy() : 서블릿이 컨테이너에서 소멸될때, 마무리 작업 수행

/예제
package test.web
public class HelloServlet extends HttpServlet{
  public void init(){ sout('init()') }
  public doGet(HttpServletRequest request, HttpServletResponse response) {  sout('doGet()') };
  public void destroy(){  sout( 'destroy()' )  };
}
javac -d . HelloServlet.java
-브라우저 요청 : http://localhost:8090/webapp/servlet/test.web.HelloServlet  <--404에러
conf/web.xml에 들어가서 288~291line <servlet-mapping> 주석 해제

-container 실행되고 있는상태에서 source변경 한후 다시 comfile하면 container가 인식 후 이어서 실행됨.
  reloadable=true로 했기때문에,,

/브라우저 요청하는 url이 길고 보안에 취약하기 때문에 서블릿 mapping작업을 해야함.

//Servlet mapping작업
-각 context에 저장된 web.xml에서 설정
-<servlet>태그와 <servlet mapping>태그 이용. 여러개의 servlet mapping도 가능
<web-app>
  <servlet>
    <servlet-name>aaa</servlet-name>
    <servlet-class>test.web.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>aaa</servlet-name>
    <url-pattern>/hello</url-pattern>     <--브라우저에서 요청할 alias
  </servlet-mapping>
</web-app>
http://localhost:8090/webapp/hello       <--mapping한후 이렇게 요청하면됨.

//Servlet Architecture

1. http://localhost:8090/wqbapp/hello요청

2. HelloSevelt이 메모리에 로드된적이 있는지 체크(없으면 3번),     로드된적이 있으면 5번으로

3. HelloServlet을 메모리에 로드(맨처음만)

4. init()메소드 호출

5. 서비스 메소드 호출(doGet, doPost)

6. 결과응답

 

 

 

 


 

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바