-
[web] Servlet이란?Web/Web 2019. 7. 8. 18:11
Java Applcation
- 한개의 main을 가지고 독립적으로 실행하는 자바 클래스
Java Web Application
- 브라우저에서 실행되는 자바 클래스
(Servlet /JSP)
Servlet을 Controller로 이용한다.
서블릿과 JSP를 실행하기 위해서는 Web Application Server(WAS)가 필요.
Servlet이란?
- 자바에서 웹 어플리케이션을 개발할 때 사용한다.
- 스레드(동시실행)를 기반으로 효율적
- 자바 기반이기 때문에 자바 API를 모두 사용 가능
- 효율적인 자료 공유 방법을 제공한다.
- JSP는 서블릿을 기반으로 한 기술이다.
Servlet사용 이점은?
- 유지보수가 수월하고 기능확장이 용이하다.
- 컨트롤러와 뷰의 역할분담으로 인해 디자이너와 개발자간의 협업이 가능하다.
Servlet의 Life Cycle
1. init() 메소드 - 서블릿의 생성자 (가장먼저, 단한번 호출)
2. service() 메소드 - 웹브라우저에 서비스(화면출력) 하는 메소드
클라이언트 요청에 따라 doGet()이나 doPost()메소드로 분기
사용자 요청 처리는 request(요청객체, client, 아이객체, 떼쟁이, 브라우저)로
응답처리는 response(응답객체, server, 엄마객체, 톰캣)객체로 처리함
3. destroy() 메소드 - 컨테이너로부터 서블릿 종료요청이 있을때, 서블릿 종료직전에 해야할 작업을 명시할 때 사용.
대부분의 경우 컨테이너가 종료될때 실행. (컨테이너란? Apache Tomcat는 서블릿 컨테이너)
Tomcat에서 하는일
1. 클래스유무 체크
2. 메모리 적재 체크
3. 메모리 적재가 안되었을때 메모리 적재와 init() 호출- service() 호출
(이 때문에 class에 main이 없다. 톰캣에서 대신 하기 때문에)
request - 브라우저요청
response- 서버
servlet 실행방법
1. http://localhost:8282/TomcatTest/servlet/com.siri.servlet.MyServlet <--이렇게 들어가려면 에러가 난다.
2. WEB-INF/web.xml에 작성된 서블릿 클래스를 등록
<!-- 서블릿 클래스 등록 --> <servlet> <servlet-name>my</servlet-name> <servlet-class> com.siri.servlet.MyServlet </servlet-class> </servlet> <!-- 가상의 경로 설정(서블릿 클래스에 매핑될 가상의 경로)--> <servlet-mapping> <servlet-name>my</servlet-name> <url-pattern>/dark/my</url-pattern> <!-- url - pattern 엘리먼트 내의 맨 앞의 '/'는 (컨텍스트) 루트를 의미! --> </servlet-mapping>
3. MyServlet 클래스 생성 - 생명주기 메소드인 init() ,serviece(), destroy() 메소드 추가
public class MyServlet extends HttpServlet { // 서블릿: 한개의 웹페이지 화면을 구성한다. @Override public void init() throws ServletException { System.out.println("init()"); } @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("service()"); // 서블릿 메소드 - 웹브라우저 서비스 - HTML서비스 // request: 클라이언트(사용자, 브라우저) response: 서버를 각각의미! // 한글 설정은 출력객체 얻어오기전에 하는것 (문자집합설정) resp.setContentType("text/html; charset=UTF-8"); PrintWriter out = resp.getWriter(); // 브라우저 출력 객체 out.print("<html><head><title></title></head>"); out.print("<body><h3>ServletTest</h3><hr>"); out.print("<b><font color=red>안녕, 서블릿?^^***</font></b>"); out.print("</body></html>"); } @Override public void destroy() { System.out.println("destroy()"); // } }
servlet 반응
1. hello.jsp브라우저 요청
2. hello.java 페이지 유무 확인 후 없으면 생성
application = ServletContext - 프로젝트명 하나
application얻어오기
반응형'Web > Web' 카테고리의 다른 글
[web] 페이지 이동시 경로표현 (0) 2019.07.09 [web] GET과 POST란? (0) 2019.07.09 [web] 이클립스 톰캣 서버 환경설정 (0) 2019.07.08 HTTP란? (0) 2018.10.12 Disqus 디스커스 사용방법 (4) 2018.10.10