일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 벡엔드
- 백준
- greedy
- jsp
- 순열 알고리즘
- DP
- 해시
- 크루스칼 알고리즘
- Prim's Algorithm
- SERVLET
- 웹서버
- 정렬
- programmers
- mst
- dbms
- 다이나믹 프로그래밍
- 프림 알고리즘
- 소수
- mysql
- BJ
- 브라우저
- Kruskal's Algorithm
- 부스트코스
- 웹프로그래밍
- request
- 프로그래머스
- 정렬 알고리즘
- 네이버 부스트캠프 ai tech
- 그리디
- 웹 프로그래밍
- Today
- Total
끵뀐꿩긘의 여러가지
[부스트코스]웹 프로그래밍 13. Servlet(2) 본문
Servlet 작성 방법
1. Servlet 3.0 spec 이상에서 사용하는 방법
- web.xml 파일을 사용하지 않습니다.
- 자바 어노테이션(annotation)을 사용합니다.
- 앞에서 실습했던 first web에서 사용합니다.
2. Servlet 3.0 spec미만에서 사용하는 방법
- servlet을 등록할 때 web.xml 파일에 등록합니다.
*wev.xml: web application의 설정을 위한 deployment descriptor
브라우저가 Java Servlet에 접근하기 위해서는 WAS(Ex. Tomcat)에 필요한 정보를 알려줘야 해당하는 Servlet을 호출할 수 있다.
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
34
35
36
37
38
39
40
|
package examples;
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;
/**
* Servlet implementation class TenServlet
*/
@WebServlet("/ten")
public class TenServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TenServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>1부터 10까지 출력합니다.<h1>");
for(int i = 1; i<=10; i++) {
out.print(i+"<br>");
}
out.close();
}
}
|
cs |
위의 코드는 doGet메소드을 활용하여 1~10을 출력하는 코드입니다.
31번째 줄은 이 코드가 html을 사용하여 작성된 코드라는것을 알려주며,
response. 를 사용하여 페이지에 표현하였습니다.
서블릿의 생명주기
HttpServlet의 3가지 메소드를 오버라이딩
- init()
- service(request, response)
- destroy()
WAS가 서블릿 요청을 받았을때 서블릿을 언제 생성하고 언제 종료하는지 알아봅시다.
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
34
35
36
37
38
|
package examples;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
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("/LifecycleServlet")
public class LifecycleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LifecycleServlet() {
System.out.println("LifecycleServlet 생성!!");
}
public void init(ServletConfig config) throws ServletException {
System.out.println("init test 호출!!");
}
public void destroy() {
System.out.println("destroy 호출!!");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("service호출!!");
}
}
|
cs |
WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인합니다.
if (메모리에 없음) {
- 해당 서블릿 클래스를 메모리에 올림
- init() 메소드를 실행
}
- service()메소드를 실행was가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행됩니다.
결과적으로 위와 같이 실행되는 것을 알 수 있습니다.
참고: https://www.edwith.org/boostcourse-web/lecture/16687/
[LECTURE] 2) Servlet 작성 방법 : edwith
들어가기 전에 현재 프로젝트에서 웹을 개발할 때 서블릿을 직접 써서 개발하지는 않습니다. 조금 더 편하게 사용할 수 있게 도와주는 다양한 프레임워크를 사용해서 개발하는 경우가 더 ... - 부스트코스
www.edwith.org
https://www.edwith.org/boostcourse-web/lecture/16688/
[LECTURE] 3) Servlet 라이프 싸이클 : edwith
들어가기 전에 어떤 객체의 생성부터 소멸까지의 과정을 라이프 사이클(Life Cycle)라고 합니다. 이번 학습에서는 서블릿의 라이프 사이클을 알아봅니다. 학습 목표 서블릿... - 부스트코스
www.edwith.org
servlet이 무엇인가에 이어 servlet을 작성하는 방법 servlet이 언제 생성되고 종료되는지 알아보았습니다.
'부스트코스 - 웹 > 1. 웹 프로그래밍 기초' 카테고리의 다른 글
[부스트코스]웹 프로그래밍 14. Request, Response 객체 (0) | 2020.02.27 |
---|---|
[부스트코스]웹 프로그래밍 12. Servlet(1) (0) | 2020.02.21 |
[부스트코스]웹 프로그래밍 11. 개발환경 설정하기 (0) | 2020.02.21 |
[부스트코스]웹 프로그래밍 10. CSS(4-CSS layout스타일 속성) (0) | 2020.02.14 |
[부스트코스]웹 프로그래밍 9.CSS(3 - 기본스타일 속성) (0) | 2020.02.14 |