서블릿은 HTML, CSS, 자바스크립트, 웹 디자인 등과 연동하기에 많은 단점이 있다.
서블릿이 존속되는 이유
1. JSP에는 없는 서버측 프로그램 기능
2. 대기업 framework의 기초 기술로 사용
이클립스로 서블릿 만들기(p.196)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package ch08; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/ch08/ExampleServlet01") // 서블릿 호출될 이름을 선언 public class ExampleServlet01 extends HttpServlet { // 서블릿을 만들기 위해서는 반드시 상속해야하는 클래스 private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); // 브라우저로 응답할때의 타입과 문자셋 설정 PrintWriter out = response.getWriter(); // html 시작 out.println("<html>"); out.println("<body>"); out.println("<h1>이클립스로 서블릿 만들기<h1>"); out.println("</body>"); out.println("</html>"); // html 끝 } } | cs |
컴파일하면 class파일이 생성된다.
이클립스에서 서블릿 파일을 컴파일하면서 생성되는 class파일 저장 경로
C:\Users\user\Desktop\JSP_STUDY\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
\wtpwebapps\JspStudy\WEB-INF\classes\ch08
톰캣으로 서블릿파일을 컴파일하면 class파일은 서블릿파일(.java)파일과 같은 위치에 class파일을 포함한 폴더가 생성된다.
이클립스에서 jsp파일을 컴파일 할 때 생성되는 class파일 저장 경로
C:\Users\user\Desktop\JSP_STUDY\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
\work\Catalina\localhost\JspStudy\org\apache\jsp
서블릿 맵핑 방식
서블릿을 실행하기 위해서는 브라우저에서 URL상에 표시되는 서블릿의 가상의 이름
(클래스 이름으로 실행하면 너무 길고, 경로가 노출됨)을 설정해야한다.
서블릿 맵핑 방법 1. web.xml에서 설정하는 방법 / 2. 서블릿 코드에 @WebServlet 어노테이션으로 설정하는 방법
서블릿의 주요 클래스
1. HttpSevlet
2. HttpSevletRequest
3. HttpSevletResponse
4. HttpSevssion
1. HttpSevlet
서블릿을 만들기 위해 반드시 상속해야하는 필수 클래스
서블릿을 만들기 위해 존재하는 클래스
상속 구조도 : Servlet (인터페이스) - GenericServlet(추상클래스) - HttpSevlet
메서드 |
설명 |
void init() |
서블릿의 객체가 생성될 때 호출되는 메서드 |
void destroy() |
서블릿 객체가 메모리에서 사라질 때 호출되는 메서드 |
void service(request, response) |
서블릿의 요청이 있을 때 호출되는 메서드 |
void doGEt(request, response) |
html에서 form의 메서드가 get일 때 호출되는 메서드 |
void doPost(request, response) |
html에서 form의 메서드가 post일 때 호출되는 메서드 |
2. HttpSevletRequest
클라이언트가 데이터를 입력하는 것과 같이 클라이언트의 정보에 대한 요청 값을 저장하는 클래스
3. HttpSevletResponse
클라이언트가 요청한 정보를 처리하고 다시 응답하기위한 정보를 담고있는 클래스
4. HttpSevssion
클라이언트가 세션 정보를 저장하고세션 기능을 유지하기 위해서 제공되는 클래스
서블릿의 라이프 사이클
클라이언트의 서블릿 요청
-> init( ) [최초 한번 호출]
-> service(req,res) / doGet(req,res) / doPost(req,res) [반복적 호출]
-> destroy() [마지막 한번 호출]
'JSP > JSP & Servlet ' 카테고리의 다른 글
Session을 이용한 로그인 처리 페이지 (0) | 2019.05.08 |
---|---|
Cookies & Session (0) | 2019.05.07 |
package javax.servlet does not exist 오류 (0) | 2019.04.30 |
액션태그 jsp:useBean / 자바빈즈(JavaBeans) (0) | 2019.04.30 |
액션 태그 jsp : forward (0) | 2019.04.30 |