์ธํ๋ฐ ๊น์ํ๋์ ์คํ๋ง MVC 1ํธ ๊ฐ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑํ ๊ธ์ ๋๋ค.
1. HttpServletResponse
HttpServletResponse๋ HTTP ์๋ต ๋ฉ์ธ์ง๋ฅผ ์์ฑํด์ฃผ๋ ํด๋์ค์ด๋ค. ์๋ต ๋ฉ์ธ์ง๋ฅผ ์ง์ ์์ฑํ๋๊ฑด ๋ฒ๊ฑฐ๋กญ๊ธฐ ๋๋ฌธ์, ์๋ต์ฝ๋์ ํค๋, ๋ฐ๋์ ๋ฃ์ ๊ฐ๋ค์ ๋ฃ์ด์ฃผ๋ฉด HttpServletResponse ๊ฐ์ฒด๊ฐ ์๋ต ๋ฉ์ธ์ง๋ฅผ ์์ฑํด์ค๋ค.
@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// [status-line]
response.setStatus(HttpServletResponse.SC_OK);
// [response-headers]
response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("my-header", "hello");
// [message body]
PrintWriter writer = response.getWriter();
writer.println("์๋
ํ์ธ์.");
}
์์ ๊ฐ์ด setHeader() ๋ฉ์๋๋ฅผ ํตํด ํด๋์ ๋ค์ด๊ฐ ๋ค์ํ ๊ฐ์ ์ง์ ํ ์ ์๋ค.
์คํ ๊ฒฐ๊ณผ
// [Content ํธ์ ๋ฉ์๋]
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
// [Cookie ํธ์ ๋ฉ์๋]
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600); //600์ด
response.addCookie(cookie);
// [Redirect ํธ์ ๋ฉ์๋]
response.sendRedirect("/basic/hello-form.html");
setHeader() ๋ฉ์๋๊ฐ ๋ถํธํ๋ค๋ฉด, ํค๋ ํธ์ ๋ฉ์๋๋ฅผ ํตํด์๋ ํค๋์ ๋ค์ด๊ฐ Content, Cookie ๋ฑ์ ์ง์ ํ ์ ์๋ค.
2. HTTP ์๋ต ๋ฐ์ดํฐ ์ ์ก
HTTP ์๋ต ๋ฉ์ธ์ง๋ ์ฃผ๋ก ๋จ์ ํ ์คํธ, HTML, JSON ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์ ๋ฌํ๋ค.
(1) ๋จ์ ํ ์คํธ ๋ฐํ
writer.println("ok")์ฒ๋ผ PrintWriter ๊ฐ์ฒด์ ๊ฐ์ ์ฐ๋ ๋ฐฉ์์ด๋ค.
@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.println("์๋
ํ์ธ์.");
}
(2) HTML ๋ฐํ
HTTP ์๋ต์ผ๋ก HTML์ ๋ฐํํ๋ ๊ฒฝ์ฐ, ํค๋์ content-type์ text/html๋ก ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด PrintWriter ๊ฐ์ฒด์ ์ง์ html ๋ฌธ์์ ๋ด์ฉ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
@WebServlet(name="responseHtmlServlet", urlPatterns = "/response-html")
public class ResponseHtmlServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Content-Type: text/html;charset=utf-8
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println(" <div>์๋ต ๋ด์ฉ</div>");
writer.println("</html>");
writer.println("</body>");
}
}
(3) JSON ๋ฐํ
HTTP ์๋ต์ผ๋ก HTML์ ๋ฐํํ๋ ๊ฒฝ์ฐ, ํค๋์ content-type์ application/json๋ก ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ writeValueAsString() ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํด์ค๋ค.
@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Content-Type: application/json
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
HelloData helloData = new HelloData();
helloData.setUsername("kim");
helloData.setAge(20);
// {"username": "kim", "age": 20}
String result = objectMapper.writeValueAsString(helloData);
response.getWriter().write(result);
}
}
'๐๐ฉ๐ซ๐ข๐ง๐ > ๐๐๐ (๐)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HttpServletRequest๋ก ์์ฒญ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ (0) | 2023.10.17 |
---|---|
์๋ธ๋ฆฟ์ด๋? (0) | 2023.10.17 |