Search
Duplicate

생λͺ… μ£ΌκΈ° λ©”μ†Œλ“œ

β€’
init()
β€’
service()
β—¦
doGet()
β—¦
doPost()
β€’
destroy()

μ„œλΈ”λ¦Ώ 생λͺ…μ£ΌκΈ° λ©”μ†Œλ“œ

λ©”μ†Œλ“œ
μ„€λͺ…
호좜 μ‹œμ 
init()
μ„œλΈ”λ¦Ώ μ΄ˆκΈ°ν™” μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λ©”μ†Œλ“œ
μ„œλΈ”λ¦Ώ 객체가 졜초둜 생성될 λ•Œ ν•œ 번만 호좜
service()
μš”μ²­ λ©”μ†Œλ“œμ— 따라 doGet, doPost 등을 μžλ™μœΌλ‘œ ν˜ΈμΆœν•˜λŠ” λ©”μ†Œλ“œ
ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”μ²­μ΄ 올 λ•Œλ§ˆλ‹€ 호좜
doGet()
GET μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” λ©”μ†Œλ“œ
μš”μ²­ λ©”μ†Œλ“œκ°€ GET일 λ•Œ 호좜
doPost()
POST μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” λ©”μ†Œλ“œ
μš”μ²­ λ©”μ†Œλ“œκ°€ POST일 λ•Œ 호좜
destroy()
μ„œλΈ”λ¦Ώ μ’…λ£Œ μ‹œ μžμ›μ„ ν•΄μ œν•˜λŠ” λ©”μ†Œλ“œ
μ„œλΈ”λ¦Ώ 객체가 μ†Œλ©Έλ  λ•Œ 호좜

예제 μ½”λ“œ

package lifecycle; import java.io.IOException; import jakarta.servlet.ServletConfig; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet("/lifecycle") // μš”μ²­ 경둜 λ§€ν•‘ public class LifecycleServlet extends HttpServlet { /** * μ„œλΈ”λ¦Ώ 졜초둜 생성될 λ•Œ ν•œ 번만 ν˜ΈμΆœλ˜λŠ” μ΄ˆκΈ°ν™” λ©”μ†Œλ“œ * - μ΄ˆκΈ°ν™” μž‘μ—… */ @Override public void init(ServletConfig config) throws ServletException { System.out.println("μ„œλΈ”λ¦Ώ μ΄ˆκΈ°ν™”"); System.out.println("ServletConfig : " + config); } /** * ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”μ²­μ΄ 올 λ•Œλ§ˆλ‹€ ν˜ΈμΆœλ˜λŠ” λ©”μ†Œλ“œ * - μš”μ²­ λ©”μ†Œλ“œμ— λ”°λΌμ„œ doGet, doPost λ“±μ˜ μžλ™μœΌλ‘œ ν˜ΈμΆœν•©λ‹ˆλ‹€. * - 각 μš”μ²­ λ©”μ†Œλ“œμ— λ”°λ₯Έ μž‘μ—… μ „, κ³΅ν†΅μœΌλ‘œ μ²˜λ¦¬ν•  μž‘μ—… */ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("service λ©”μ†Œλ“œ 호좜"); super.service(request, response); // λ©”μ†Œλ“œμ— λ”°λΌμ„œ doGet, doPost μžλ™ 호좜 } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain; charset=UTF-8"); response.getWriter().println("생λͺ…μ£ΌκΈ° λ©”μ†Œλ“œ"); System.out.println("doGet λ©”μ†Œλ“œ 호좜"); } /** * μ„œλΈ”λ¦Ώμ΄ μ’…λ£Œλ  λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ†Œλ“œ * - μžμ›μ„ ν•΄μ œν•  λ•Œ μ‚¬μš© */ @Override public void destroy() { System.out.println("μ„œλΈ”λ¦Ώ μ’…λ£Œ..."); } }
Java
볡사

μ½”λ“œ μ„€λͺ…

β€’
@WebServlet("/lifecycle"): μ„œλΈ”λ¦Ώμ„ "/lifecycle" 경둜둜 λ§€ν•‘ν•˜λŠ” μ–΄λ…Έν…Œμ΄μ…˜
β€’
init(): ServletConfig 객체λ₯Ό λ°›μ•„ μ΄ˆκΈ°ν™” μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ„œλΈ”λ¦Ώμ΄ 처음 생성될 λ•Œ ν•œ 번만 μ‹€ν–‰λ©λ‹ˆλ‹€.
β€’
service(): λͺ¨λ“  μš”μ²­μ— λŒ€ν•΄ λ¨Όμ € μ‹€ν–‰λ˜λ©°, super.service()λ₯Ό ν˜ΈμΆœν•˜μ—¬ μš”μ²­ λ©”μ†Œλ“œ(GET, POST λ“±)에 따라 μ μ ˆν•œ λ©”μ†Œλ“œλ‘œ λΆ„κΈ°ν•©λ‹ˆλ‹€.
β€’
doGet(): GET μš”μ²­μ„ μ²˜λ¦¬ν•˜λ©°, μ‘λ‹΅μ˜ 문자 인코딩과 μ½˜ν…μΈ  νƒ€μž…μ„ μ„€μ •ν•œ ν›„ 응닡을 μž‘μ„±ν•©λ‹ˆλ‹€.
β€’
destroy(): μ„œλΈ”λ¦Ώμ΄ μ’…λ£Œλ  λ•Œ μ‹€ν–‰λ˜μ–΄ μžμ›μ„ μ •λ¦¬ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.