Coding Planet

์„œ๋ธ”๋ฆฟ์—์„œ ํด๋ผ์ด์–ธํŠธ ์ธก์— JavaScript Alert ์ฐฝ ํ‘œ์‹œํ•˜๊ธฐ : PrintWriter ๋ณธ๋ฌธ

๐Ÿ’ป Java Study/Java ์ด๋ก  ์ •๋ฆฌ

์„œ๋ธ”๋ฆฟ์—์„œ ํด๋ผ์ด์–ธํŠธ ์ธก์— JavaScript Alert ์ฐฝ ํ‘œ์‹œํ•˜๊ธฐ : PrintWriter

jhj.sharon 2024. 5. 13. 11:43
๋ฐ˜์‘ํ˜•

 

ํ˜„์žฌ ๊ฐœ๋ฐœ์ค‘์ธ ์›นํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ์‹œ SpringSecurityLoginFilter๋ฅผ ํƒ€๋ฉด์„œ ํ•„์š”ํ•œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ž…์‹ ์ฒญ์„ ํ•˜๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ์Šน์ธ ํ›„ ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด ๋•Œ ์‚ฌ์šฉ ์ƒํƒœ(๊ฐ€์ž…์‹ ์ฒญ or ๊ฐ€์ž…์Šน์€)์„ ์กฐํšŒํ•œ ํ›„ ๊ฐ€์ž…๋Œ€๊ธฐ ์ƒํƒœ๋ผ๋ฉด alert์ฐฝ์„ ๋„์šฐ๊ณ  ๋‹ค์‹œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ณด๋‚ด์•ผํ•œ๋‹ค. 

 

Java ์„œ๋ธ”๋ฆฟ์—์„œ ํด๋ผ์ด์–ธํŠธ์— JavaScript Alert ์ฐฝ์„ ๋„์šฐ๋ ค๋ฉด, HttpServletResponse ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค์Œ์€ ๊ฐ€์ž… ์‹ ์ฒญ ์ƒํƒœ๊ฐ€ '์Šน์ธ ๋Œ€๊ธฐ(A)'์ธ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒํƒœ๋ฅผ ์•Œ๋ฆฌ๊ณ  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ์˜ˆ์ œ ์ฝ”๋“œ์ด๋‹ค.

 

if ("A".equals(loginVO.getUserSttus())) {
    httpResponse.setContentType("text/html; charset=UTF-8");
    PrintWriter out = httpResponse.getWriter();
    out.println("<script>alert('์Šน์ธ ๋Œ€๊ธฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ์Šน์ธ ํ›„ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.'); location.href='" + httpRequest.getContextPath() + "/auth/login.do';</script>");
    out.flush();
    out.close();
    return;
}

 

 

HttpServletResponse.getWriter()

  • HttpServletResponse์˜ getWriter() ๋ฉ”์„œ๋“œ๋Š” ์‘๋‹ต์„ ์œ„ํ•œ PrintWriter ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด PrintWriter๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • ๋ฐ˜ํ™˜๋œ PrintWriter๋Š” UTF-8๊ณผ ๊ฐ™์€ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด๋ฅผ HTTP ์‘๋‹ต ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณด๋‚ธ๋‹ค.
  • ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” getWriter()๋ฅผ ํ˜ธ์ถœํ•œ ํ›„๋ถ€ํ„ฐ ์‘๋‹ต ๋ฐ”๋””๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์ด PrintWriter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

PrintWriter์˜ ๊ธฐ๋Šฅ

  • PrintWriter๋Š” ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ ๋ฉ”์„œ๋“œ(print(), println(), format(), write() ๋“ฑ)๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, HTML, JSON, ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋“ฑ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋–ค ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋„ PrintWriter๋ฅผ ํ†ตํ•ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • PrintWriter๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ๋ง์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, flush() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฒ„ํผ์— ์ €์žฅ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ฐ•์ œ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•
Comments