1. WebArchitecture
- page ์ด๋๋ฐฉ๋ฒ
- url ์ ๋ ฅ (get๋ฐฉ์)
- link (get๋ฐฉ์)
- form (get๋ฐฉ์)
- get (get๋ฐฉ์)
- post
์ฆ form์ post๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์์ผ๋ฉด ๋ชจ๋ GET ๋ฐฉ์์ด๋ค.
- Persistence Login = ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก์ง
2. Servlet
- Servlet = Java + HTML
- ์๋ฐ์์ ๋ฐฑ์ค๋๋ฅผ ์ง์ํ๋ api ๋ ๊ฐ์ง
- servlet → ์๋ฐ์์ html์ด ํฌํจ
- jsp → html ์์ ์๋ฐ๊ฐ ํฌํจ
- ์ฒ์์ servlet์ด ๋จผ์ ๋์ด → ์๋ฐ์ดํ ์์ html์ ํ๋ํ๋ ๋ฃ๋๊ฒ ๋๋ฌด ํ๋ค์ด → html์ ์๋ฐ ๋ฃ์ผ๋ฉด ์ด๋จ๊น? → jsp ๋ฑ์ฅ
- ์ธํ ์์ฒด๊ฐ .java
- ์๋ธ๋ฆฟ ํ์ผ์์ ์์ฑ์ ์ ๋ง๋ค์ด๋ ๋จ → init๋ฉ์๋ ์ฌ์ฉํ๋ฉด ๋๋๊น
์น์์ ๋์๊ฐ๋ ์๋ฐ๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด
Interface Servlet
- Servlet ์ธํฐํ์ด์ค๋ฅผ implements ํด์ผ ํ๋ค.
- ๋ชจ๋ ๋ฉ์๋๋ฅผ ์์ํด์ผ ํจ
Class GenericServlet
- GenericServlet ๋ฅผ extends ํด์ผ ํ๋ค.
- abstract(์ถ์) ํด๋์ค์ด๋ค.
public abstract class GenericServlet implements Sservlet, ServletConfig, Serializable
- ๋ชจ๋ ๋ฉ์๋๋ฅผ ์์ํ ํ์์๋ค.
- ์ถ์ ๋ฉ์๋์ธ
abstract void service(ServletRequest req, ServletResponse res)
๋ฉ์๋ ๋ง ์์ํ๋ฉด ๋๋ค. - ํ๊ธ๊ณผ ๊ฐ์ unicode๊ฐ ๋์ด์ฌ ๊ฒฝ์ฐ POST ๋ฐฉ์์์ ๋ฌธ์ ๊ฐ ๋๋ค (GET๋ฐฉ์์ ๋ฌธ์ X)
- tomcat์ character set์ด ํ๊ธ์ฒ๋ฆฌ ๋์ง ์์์ ๋ฐ์๋๋ ๋ฌธ์
- if๋ฌธ์ผ๋ก get ๋ฐฉ์์ธ์ง post ๋ฐฉ์์ธ์ง ๋งค๋ฒ ํ์ธํด์ค์ผ ํจ
- ํด๋ผ์ด์ธํธ์์ ํธ์ถ ํ ๋ ๋ง๋ค ๋งค๋ฒ if๊ฐ ๋๋ ๊ฒ์ ์ข์ง ์์
Class HttpServlet
- HttpServlet์ extends ํด์ผ ํ๋ค.
- GenericServlet ์ extends ํจ
- abstract(์ถ์) ํด๋์ค์ด๋ค.
public abstract class HttpServlet extends GenericServlet
- ์๋ฏธ์์ ์ถ์ํด๋์ค!
- overrideํ ์ถ์๋ฉ์๋๊ฐ ์๋ค
- ๋ด๊ฐ overrideํ๊ณ ์ถ์ ๋ฉ์๋๋ง overrideํ๋ฉด ๋๋ค.
doPost
,doGet
,doDelete
,doPut
... ๊ณผ ๊ฐ์ ๋ฉ์๋๊ฐ ์์
- post๋ฐฉ์์์ request๋ก ๋ฐ์์จ ๋ฐ์ดํฐ์ ๋ํด์๋
request.setCharacterEncoding("utf-8");
์ ํด์ค์ผ ํ๋ค. (ํ๊ธ ๊นจ์ง ๋ฐฉ์ง) - get๋ฐฉ์์์๋ request๋ก ๋ฐ์์จ ๋ฐ์ดํฐ์ ๋ํด์ ์์๊ฐ์ ์ฝ๋๋ฅผ ํด์ฃผ์ง ์๊ณ ๊ทธ๋ฅ
request.getParameter("username")
๊ณผ ๊ฐ์ด ํด์ค๋ ๋๋ค.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String userpwd = request.getParameter("userpwd");
String[] fruit = request.getParameterValues("fruit");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println(" <body>");
out.println(" Hello Servlet!!");
out.println(" ์๋
์๋ธ๋ฆฟ!");
out.println(username + "๋ ๋น๋ฒ์" + userpwd + "์ด๊ณ ์ข์ํ๋ ๊ณผ์ผ์ " + Arrays.toString(fruit) + "์
๋๋ค");
out.println(" </body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
doGet(request,response);
}
์๋ธ๋ฆฟ์ ์์๊ตฌ์กฐ
GenericServlet, HttpServlet ์ ์ฐจ์ด์ ์ GenericServlet์ genericํ protocol์ ์ฌ์ฉํ ์ ์์ง๋ง HttpServlet์ HTTP protocol๋ง ์ฌ์ฉํ ์ ์๋ค.
3. Servlet Life-Cycle
- ๋ด๊ฐ . ์ฐ์ด์ ๋ถ๋ฅด์ง ์์๋๋ฐ ์คํ๋๋ ํจ์
- servlet ์ด๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋์ผ๋ฉด Servlet Container๊ฐ ์์์ ์์ฑํด์ค๋ค. (servlet๊ฐ์ฒด๋ ์ฐ๋ฆฌ๊ฐ ์ง์ ํธ์ถํ ์ ์๋ค)
- (servlet ํด๋์ค์์ ์์ฑ์๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์ง ์์)
- tomcat ์์์ ์์์ ํธ์ถํด์ค๋ค. (Life-Cycle)
- tomcat์ด ๊บผ์ง๊ธฐ ์ ์ ๊บผ์ง๋ค (์ ํํ๋ ์๋ฒ๊ฐ ๋ค์ด๋๊ธฐ ์ )
- destroy ํ๊ธฐ์ ํด์ผํ ๊ฑฐ ํ๊ณ super.destroy()
- init ์ super.init() ํ๊ณ ๋ด๊ฐ ํ ๊ฑฐ ํ๊ธฐ..
- tomcat์์ init, destroyํด๋ ํ๋ ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ตํด๋ ๋จ..
- ์๋ธ๋ฆฟ์ ์๋ฒ์ ํ ๊ฐ๋ง ๋ง๋ค์ด์ง๋ค!
- ์๋ธ๋ฆฟ์ ๋ฉค๋ฒ๋ณ์๊ฐ ์์ผ๋ฉด ๊ณต์ ๋๋ค.
- ์ค๋ ๋ ๊ด๋ฆฌ๋ WAS๊ฐ ๋ด๋นํด์ค๋ค.
WAS์ Servlet Container ?
WAS = Web Server + Web Container(Sevlet Container)
์ ์ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๋ฉด์๋(Web Server), ์น ์ปจํ ์ด๋๋ฅผ ์ด์ฉํด ๋ด๋ถ ๋ก์ง์ ๊ฑฐ์ณ ๋์ ํ์ด์ง(Web Container)๋ฅผ ๋ณด์ฌ์ค ์ ์๊ฒ ๋จ.
์๋ฐ๋ ์น ๊ตฌํ ๊ธฐ์ ๋ก Servlet๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด Servlet์ ๊ด๋ฆฌํ๊ณ jspํ์ผ์ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด Servlet Container์ด๋ค!
์ฆ WAS๋ Servlet Container๋ฅผ ํฌํจํ๋ ๊ฐ๋
'๐๋ฐฑ์๋ : BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MVC Pattern, Session, Cookie (1) | 2024.01.01 |
---|---|
[JSP] (0) | 2023.12.28 |
[SpringBoot ํ๋ฉฐ ๋ง์ฃผ์น ์ค๋ฅ] Transaction silently rolled back because it has been marked as rollback-only (0) | 2023.10.09 |
[SpringBoot] dto์ ์์น (0) | 2023.07.31 |
[SpringBoot] 2.7.13 ์์ swagger ์ค๋ฅ (0) | 2023.07.31 |