๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป..Tech..๐Ÿ’ป/๐ŸƒSpring ๐Ÿƒ

[์˜ค๋ฅ˜] PRG(Post-Redirect-Get) ํŒจํ„ด ์ ์šฉ ์˜ค๋ฅ˜

๐Ÿค” ๋ฌธ์ œ๋ฅผ ๊ฒช๊ฒŒ ๋œ ์ด์œ  ๐Ÿค”

์ฑ… '์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด'๋ฅผ ์“ฐ์‹  ๋ถ„๊ป˜์„œ ๋ถ€๋ก ๋ถ€๋ถ„์— ์žˆ๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ POST ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ redirect ํ•˜๋Š” ๊ฒƒ๊ณผ ๋ทฐ ํžŒํŠธ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์‹œ๋„ํ•ด๋ณด๋ผ๊ณ  ํ•˜์…จ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋‚ด ํ”„๋กœ์ ํŠธ์— ์‹ค์ œ๋กœ ์‹œ๋„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

1. "/url" ๋กœ ๋ฆฌํ„ดํ•˜๋ฉด ํ™”๋ฉด์€ ์ „ํ™˜๋˜๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ๋Š” ๊ณ„์†ํ•ด์„œ ์ด์ „ url์„ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ์—ˆ๋‹ค.

 

2. "redirect:/url"๋กœ ๋ฐ˜ํ™˜ํ–ˆ๋”๋‹ˆ ํ™”๋ฉด์ด ์ „ํ™˜๋˜๋ฉด์„œ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ๋„ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.

 

1๋ฒˆ ๋ฐฉ๋ฒ•์€ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ™”๋ฉด์„ ์ƒˆ๋กœ๊ณ ์นจํ•  ๋•Œ๋งˆ๋‹ค POST์š”์ฒญ์ด ๋‚ ๋ผ๊ฐˆ ์œ„ํ—˜์ด ์กด์žฌํ•œ๋‹ค.

2๋ฒˆ ๋ฐฉ๋ฒ•์€ ์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์— ๋ถ€์ž‘์šฉ์„ ์ผ์œผํ‚ค์ง€ ์•Š๋Š”๋‹ค.

 

โš ๏ธ ๋ฌธ์ œ  ์ƒํ™ฉ โš ๏ธ

์œ„์—์„œ ์‹œ๋„ํ–ˆ๋˜ ์ปจํŠธ๋กค๋Ÿฌ ๋ง๊ณ  ๋˜ ๋‹ค๋ฅธ POST ์ปจํŠธ๋กค๋Ÿฌ์— ๋‹ค์‹œ PRG ํŒจํ„ด์„ ์‹œ๋„ํ•ด๋ดค๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—” "/redirect:/url"์„ ํ•ด๋„ redirect ๋˜์ง€ ์•Š๊ณ  ์š”์ฒญ ์ˆ˜ํ–‰ ํ›„ ResponseBody์— url์˜ html ์ฝ”๋“œ๋ฅผ ์‹ค์–ด์„œ ๋ณด๋ƒˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋‚˜ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค.

 

๊ทธ๋Ÿฌ๋‹ค ajax์ธก ์‘๋‹ต์—์„œ window.redirect๋ฅผ ํ–ˆ๋”๋‹ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

 

 

๐Ÿ’ก ๋ฌธ์ œ  ํ•ด๊ฒฐ ๐Ÿ’ก

ajax์™€ redirect๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰์„ ํ–ˆ๋”๋‹ˆ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ์žˆ์—ˆ๋‹ค...

stackoverflow.com/questions/36840104/spring-mvc-redirect-in-responsebody

 

Spring MVC: Redirect in @ResponseBody

I want to redirect to another .jsp in spring mvc method. I don't want to use javascripts methods like: window.location.replace(url). My method: @RequestMapping(value= "loginUser", method=RequestM...

stackoverflow.com

 

PRG ํŒจํ„ด?

์›น ๊ฐœ๋ฐœ ์‹œ ๊ถŒ์žฅ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ POST ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ๋˜ ๋‹ค๋ฅธ URL๋กœ์˜ GET ์š”์ฒญ์„ ์œ„ํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ

PRG ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์‹œ ๋ฌธ์ œ์ 

1. ์ƒˆ๋กœ๊ณ ์นจ์œผ๋กœ ์ธํ•ด ๋™์ผํ•œ POST ์š”์ฒญ์ด ์ค‘๋ณต์œผ๋กœ ๋ฐœ์ƒํ•˜์—ฌ ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์„ ์ˆ˜ ์žˆ๋‹ค.

ex) ์ค‘๋ณต ๊ฒฐ์ œ, ์ค‘๋ณต ์ถœ๊ธˆ

 

2. POST์š”์ฒญ์˜ ๊ฒฐ๊ณผ์— ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ถ๋งˆํฌํ•˜๊ฑฐ๋‚˜ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›Œ์ง„๋‹ค. (URL์ด ๋ฐ”๋€Œ์ง€ ์•Š์œผ๋ฏ€๋กœ)

** PRG ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ** 

https://en.wikipedia.org/wiki/Post/Redirect/Get

** PRG ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ๋•Œ **

https://en.wikipedia.org/wiki/Post/Redirect/Get

 

'๐Ÿ’ป..Tech..๐Ÿ’ป > ๐ŸƒSpring ๐Ÿƒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Spring์— Jackson Custom Serialization ์ ์šฉ  (0) 2022.07.06