๐ปServlet
- ์๋ฐ ์ง์์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ํ๊ธฐ ์ํ ๊ธฐ์ ์ด๋ค.
- ํ๋ง๋๋ก ์๋ฐ๋ก ์น ์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๊ธฐ์ ์ด๋ค.
- ์๋ฐ ์ง์์์ ์ฒซ๋ฒ์งธ ์น ์๋ฒ ๊ธฐ์ (90๋ ๋ ์คํ๋ฐ์ ๋ฑ์ฅ) ์ด์ ํ์ฌ ๋ชจ๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ด๋ค.
- ์์ ์๋ฐ์ ์น์ ํน์ง์ ์ ์ฉํ ์๋ธ๋ฆฟ ๊ท๊ฒฉ์ ๋ํ ๊ฒ์ด๋ค.
- ์น ํ์ด์ง๋ฅผ ์์ฐํ์ฌ ๋์ ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ค.
๐ป์๋ฐ๋ก ์น์ฌ์ดํธ๋ฅผ ๋ง๋ ๋ค๋ ์๋ฏธ
์๋ฐ๋ก ์น์ฌ์ดํธ๋ฅผ ๋ง๋ ๋ค๋ ์๋ฏธ๋ ์ ์ ํ์ด์ง์ ๋์ ํ์ด์ง๋ฅผ ๋ง๋ ๋ค๋ ์๋ฏธ์ด๋ค.
์ ์ ํ์ด์ง
- ์ด๋ค ๋์์ด ์ธ์ ์ ์์ ํ๋ ํญ์ ๋์ผํ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ํ์ด์ง
- ex) ํํ์ด์ง
๋์ ํ์ด์ง
- ์ด๋ค ๋์์ด ์ธ์ ์ ์์ ํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ํ์ด์ง
- ์ฃผ์๋ ๋ชจ๋ ๋์ผํ์ง๋ง ๋ด์ฉ์ด ์์ดํ๋ค.
- ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํ์ด์ง๊ฐ ์๋ URL๋ฅผ ์์ฒญํ๋ ์ฆ์ ํ์ด์ง๋ฅผ ์์ฑํ๋ค.
- ex) ์ธํฐ๋ท ๋ฉ์ผํ์ด์ง
๐ปServlet Class
- ๋ธ๋ผ์ฐ์ (=์นดํ), Servlet Class(=์๋ฐ์)
- ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์์ฒญ์ ๋ฐ๋ผ, ๋์ ์ผ๋ก ์น ํ์ด์ง๋ฅผ ์์ฐํ๋ ํด๋์ค
- ์๋ธ๋ฆฟ ๊ธฐ์ ์ ๊ตฌํํ ์ค์ ํด๋์ค
Servlet Class ์์ฑ ๊ท์น
1. ์๋ธ๋ฆฟ ํด๋์ค ์ ์ธ
์ผ๋ฐ ํด๋์ค๋ฅผ ์๋ธ๋ฆฟ ํด๋์ค๋ก ์ ์ธํ๋ ค๋ฉด 1) 'javax.servlet.Servlet' ์ธํฐํ์ด์ค ๊ตฌํ' ๋๋ 2) 'javax.servlet.http.HttpServlet' ํด๋์ค๋ฅผ ์์ ๋ฐ๋๋ค.
1๋ฒ์ ๊ฒฝ์ฐ ๋ณต์กํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค์ง๋ง, ๊ตฌํ์ด ์์ ๋กญ๋ค.
2๋ฒ์ ๊ฒฝ์ฐ ๋จ์ํ๊ณ ๋น์ฉ์ด ์ ๊ฒ ๋ค์ด ์ด ๋ฐฉ๋ฒ์ ๋ง์ด ์ฌ์ฉํ๋ค.
2. doGet/doPost ๋ฉ์๋ ์ ์ธ(๊ตฌํ ๋จ๊ณ)
- ์์ฝ๋ ์ด๋ฆ์ ๋ฉ์๋
- ๋ ์ค ํ๋๋ง ์ ์ธํด๋ ๋๋ ์ํฉ๊ณผ ๋ ๋ค ์ ์ธํ๋ ์ํฉ์ด ๋ค๋ฅด๋ค.
- ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์๋์ผ๋ก ํธ์ถ๋๋ค.
- "์ฃผ๋ฌธํ๊ธฐ" ์ฒ๋ผ HTML ํ์ด์ง๋ฅผ ๋ง๋๋ ๋ฉ์๋์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ค.
- ๋ฉ์๋ ์์ฑ ๊ท์น
- 1) ๋งค๊ฐ๋ณ์
- a. java.servlet.http.HttpServletRequest
- b. java.servlet.http.HttpServletResponse
- 2) ์์ธ ๋ฏธ๋ฃจ๊ธฐ
- a. java.io.IOException
- b. java.servlet.ServletException
- 1) ๋งค๊ฐ๋ณ์
3. ๋์ HTML ํ์ด์ง ์์ฑ ๊ตฌํ
- doGet/doPost ๋ฉ์๋์ ๊ตฌํ๋ถ์์ HTML ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- HttpServletResponse ๊ฐ์ฒด์ getWriter() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ PrintWriter ๊ฐ์ฒด๋ฅผ ๋ฐํ๋ฐ๋๋ค.
- PrintWriter ๊ฐ์ฒด์ printXXX("ํ๊ทธ") ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ HTML ํ์ด์ง๋ฅผ ์์ฑํ๋ค.
- ์ด ๊ณผ์ ์ผ๋ก ๋์ ์ธ ์นํ์ด์ง๊ฐ ์์ฐ๋๋ค.
- ํ์ด์ง๊ฐ ์์ฑ๋๋ฉด ๋ธ๋ผ์ฐ์ ์ ๋ฐํํ์ฌ ์น ํ์ด์ง๋ฅผ ์ถ๋ ฅํ๋ค.
๐ปServet ์คํ
ํจํค์ง ๋ฐ ์๋ฐ ํ์ผ ์์ฑ
com.test.servlet ์์ฑ
java ํ์ผ ์์ฑ
1. ์๋ธ๋ฆฟ ํด๋์ค ์ ์ธ
package com.test.servlet;
import javax.servlet.http.HttpServlet;
public class Ex01 extends HttpServlet{
}
2. doGet/doPost ๋ฉ์๋ ์ ์ธ
public class Ex01 extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
}
}
3. ๋์ HTML ํ์ด์ง ์์ฑ ๊ตฌํ
+) ํ์ด์ง ํ๊ธ ์ธ์ฝ๋ฉ
resp.setCharacterEncoding("UTF-8");
package com.test.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Ex01 extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
PrintWriter writer = resp.getWriter();
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='UTF-8'");
writer.println("<style>");
writer.println("h1 {color: 'cornflowerblue';}");
writer.println("<style>");
writer.println("</head>");
writer.println("<body>");
writer.println("<h1>hello</h1>");
writer.println("<p>Servlet์ผ๋ก ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค.</p>");
writer.println("</body>");
writer.println("");
writer.println("");
writer.println("");
writer.println("</html>");
writer.close(); //์ผ์ข
์ ์คํธ๋ฆผ
}
}
์๋ฒ ์คํ
Tomcat์ผ๋ก ์คํํ๋ค.
์ ์ ์๋ฌ
http://localhost:8090/servlet/servlet/com.test.servlet.Ex01 ์ผ๋ก ์ ์ํ์ฌ ์๋ฌ๊ฐ ๋๋ค.
์๋ฐ ํด๋์ค๋ ์น์์๋ ์คํํ ์ ์๋ค.
์๋ฐ ํด๋์ค๋ URL ํตํด์ ์คํํ ์ ์์ด ๊ฐ์ URL๋ฅผ ์์ฑํ๊ณ ๊ฐ์ URL ๋ด๋ถ์ ์ผ๋ก ์๋ฐ ํด๋์ค๋ฅผ ํธ์ถํ๋ค. ์ด ์ญํ ์ Tomcat์ด ์ค๊ฐ์์ ์ฒ๋ฆฌํ๋ค.
'web.xml' ํ์ผ์ ํฐ์บฃ์ด ์ฌ์ดํธ ์ด์๊ณผ ๊ด๋ จ๋ ์ค์ ํ์ผ๋ก ํฐ์บฃ์ด ๊ฐ์ URL๋ก ์๋ฐ ํด๋์ค๋ฅผ ํธ์ถํ๋ค.
ํ์ผ ๊ฒฝ๋ก๋ webapp/Web-INF/web.mxl์ด๋ฉฐ ๋ง์ฝ ์กด์ฌํ์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ด ์์ฑํ๋ค.
web.mxl ํ์ผ ์์ฑ
ํ๋ก์ ํธ ์ฐํด๋ฆญ - Java EE Tools - Generate Deployment Descriptor Stub
web.xml ํ์ผ์ด ์์ฑ๋๋ค.
web.xml ๋ฒ๊ทธ ์์
web.xml ํ์ผ ์์ฑ๋ ์งํ ์๋ฌ๋๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๊ฒ์ ์์ฃผ ์ค๋๋ ๋ฒ๊ทธ์ด๋ค.
์๋ฌ ๋ ๊ณณ์ ์คํ์ด์ค๋ฐ๋ฅผ ๋๋ฌ ํ์ผ์ ์ ์ฅํ๋ค๊ฐ ๋ค์ ์ญ์ ํ์ฌ ์ ์ฅํ๋ฉด ์๋ฌ๊ฐ ์ฌ๋ผ์ง๋ค.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>servletTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
ctrl + shift + f ๋ฅผ ๋๋ฌ ๋ผ์ธ ์ ๋ ฌ์ ํด์ค๋ค.
Servlet ์ค์ - ๊ฐ์ ์ฃผ์ ๋งคํ
์๋ฐ ํด๋์ค๋ฅผ ํธ์ถํ ์ ์๋ ๊ฐ์ URL ์์ฑํ๊ธฐ์ํด ๊ฐ์ ์ฃผ์ ๋งคํ์ ํ๋ค.
๊ฐ์ ์ฃผ์ ๋งคํ์ ๊ฐ์ URL๊ณผ ์๋ธ๋ฆฟ์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ด๋ค.
servlet-class
<servlet>
<servlet-class>com.test.servlet.Ex01</servlet-class>
</servlet>
servlet-class๋ก ์ด๋ค ํ์ผ์ ์ฐ๊ฒฐํ ๊ฑด์ง ์ค์ ํด์ค๋ค.
servlet-mapping
<servlet-mapping>
<!-- ๋ฌด์กฐ๊ฑด ๊ฐ์ง URL๋ก ๋ค์ด๊ฐ๋ค -->
<url-pattern>/๊ฐ์url.do</url-pattern>
</servlet-mapping>
๊ฐ์์ url์ ์ค์ ํด์ค๋ค.
url-pattern ํ๊ทธ ์ฌ์ด์ ํ์ฅ์๋, ์๋์๋ฌธ์๋ ์ด๋ค ํํ์ ๋ฌธ์์ด์ด ๋ค์ด๊ฐ๋ ๋ฌด์กฐ๊ฑด ๊ฐ์ง url๋ก ๋ค์ด๊ฐ๋ค.
'/' + '๊ฐ์URL'
/ ๋ 'http://localhost:8090/servlet/servlet/' ์ ์๋ฏธํ๋ค.
servlet-name
<servlet-name>ex01</servlet-name>
servlet-name ์ผ๋ก servlet-mapping์ url-pattern์ด ์ฐ๊ฒฐํด์ค๋ค.
์ ์ฒด web.xml ํ์ผ ์ฝ๋
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>servletTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!--
Servlet ์ค์
์๋ฐ ํด๋์ค๋ฅผ ํธ์ถํ ์ ์๋ ๊ฐ์ URL ์์ฑํ๊ธฐ
๊ฐ์ ์ฃผ์ ๋งคํ์ ๋ป์ ๊ฐ์ URL๊ณผ ์๋ธ๋ฆฟ์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ด๋ค.
-->
<servlet>
<servlet-name>ex01</servlet-name>
<servlet-class>com.test.servlet.Ex01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ex01</servlet-name>
<!-- ๋ฌด์กฐ๊ฑด ๊ฐ์ง URL๋ก ๋ค์ด๊ฐ๋ค -->
<url-pattern>/๊ฐ์url.do</url-pattern>
</servlet-mapping>
</web-app>
์ ์ํ๊ธฐ
http://localhost:8090/servlet/๊ฐ์url.do
์ ๋๋ก ์ ์๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
'SERVER(Servlet, JSP)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP] JSP ํ๋ก์ ํธ ์์ฑ (0) | 2023.10.17 |
---|---|
[Servlet] ๋ฐ์ดํฐ ์ ์ก ๋ฐ ์์ (0) | 2023.10.17 |
[servlet] ์ ์ ํ์ด์ง์ ๋์ ํ์ด์ง์ ์๋ ์๋ฆฌ (0) | 2023.10.17 |
[servlet] servlet ํด๋์ค ์๋ฌ ๋์ฒ๋ฒ (0) | 2023.10.17 |
[Server]์ดํด๋ฆฝ์ค๋ก ์๋ฒ ํ๋ก์ ํธ ์์ฑํ๊ธฐ (0) | 2023.10.16 |