JavaScript

[JavaScript] url ํŒŒ๋ผ๋ฏธํ„ฐ ํ™œ์šฉํ•˜๊ธฐ

๋ฒผ๋ฆฌ01 2024. 3. 29. 00:17

๐Ÿ“Œ๋ฌธ์ œ

๊ธฐ์กด์—๋Š” ์ œ์ถœ์ด ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์‹คํŒจํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ดํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด  `Controller` ๋ฉ”์„œ๋“œ ๋‚ด์— `PrintWriter`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ `alert`๋ฅผ ๋„์šฐ๋„๋ก ํ–ˆ๋‹ค.

 

 

	response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        PrintWriter w = null;

        try {
            w = response.getWriter();
        } catch (IOException e) {
//            throw new RuntimeException(e);
            return "redirect:/another";
        }

        if(result == 1){
            w.println("<script> alert('์„ฑ๊ณต!');");
        }else{
            w.println("<script> alert('์‹คํŒจ.');");
        }

        w.println("location.href='/another' </script>");
        w.close();

 

 

๋ฌผ๋ก  ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋”๋ผ๋„ ๋ฐ”๋ผ๋˜๋Œ€๋กœ `alert` ์ฐฝ์ด ๋œจ๊ธด ํ•˜์ง€๋งŒ, ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋งค์šฐ ๋–จ์–ด์ง€๊ณ  ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐฑ๋‹จ์—์„œ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ๋˜ alert ์ฐฝ์„ ๋ชจ๋‹ฌ๋กœ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์„ฑ๊ณต/์‹คํŒจ ๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋ก ํŠธ๋‹จ ๋‚ด์—์„œ ์ž์œ ๋กญ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋ฐฑ์—์„œ ํ”„๋ก ํŠธ๋กœ ์ฝ”๋“œ๋งŒ์„ ๋„˜๊ธฐ๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•ด๋ณด์˜€๋‹ค. (๋ฐฑ๊ณผ ํ”„๋ก ํŠธ์˜ ์—ญํ•  ๋ถ„๋ฆฌ)

 

 

๐Ÿ“Œํ•ด๊ฒฐ

REST API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ์ง€๋งŒ ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ ํ”„๋ก ํŠธ๋‹จ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ `form`์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœํ•œ ๋’ค ์„œ๋ฒ„๋‹จ์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ๋งˆ์น˜๊ณ  ์„ฑ๊ณต ์—ฌ๋ถ€๋งŒ ๋„˜๊ฒจ์ฃผ๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ `PrinterWriter` ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•˜๊ณ  ๋ฐ˜ํ™˜ url๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค.

 

        if(result == 1){
            return "redirect:/another?code=success";
        }

        return "redirect:/another?code=fail";

 

 

๋ฐ˜ํ™˜ url์— ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ณด๋‚ด์ค€๋‹ค๋ฉด ํ”„๋ก ํŠธ๋‹จ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ํ˜„์žฌ url์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ•จ์ˆ˜์™€ ํ•ด๋‹น url์— ์กด์žฌํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค!

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ฝ”๋“œ์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

    const url = new URL(window.location.href);
    const urlSearchParams = url.searchParams;
    const code = urlSearchParams.get("code");

    switch (code){
        case 'success' :
            alert('์„ฑ๊ณต!');
            break;
        case 'fail' :
            alert('์‹คํŒจ.');
    }

 

 

 

๐Ÿ“Œ๋ฐœ์ „

ํ”„๋ก ํŠธ์—์„œ ๋ฐฑ๊ณผ ํ†ต์‹ ํ•˜์—ฌ ์„ฑ๊ณต/์‹คํŒจ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ajax ๋˜๋Š” axios๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ajax๋Š” jQuery, axios๋Š” axios๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์ตœ๊ทผ์—๋Š” jQuery๋ณด๋‹ค๋Š” React๋ฅผ ๋” ํ™œ์šฉํ•˜๋Š” ์ถ”์„ธ๋กœ, React ๋˜๋Š” Vue์™€ ํ˜ธํ™˜์„ฑ์ด ์ข‹์€ axios๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•ด๋ณด์ธ๋‹ค. React๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด์ž!

 

 

๐Ÿ“Œ์ฐธ๊ณ 

 

[Javascript] ํ˜„์žฌ ํŽ˜์ด์ง€ URL ๊ฐ€์ ธ์˜ค๊ธฐ

Javascript์—์„œ ํ˜„์žฌ ํŽ˜์ด์ง€์˜ URL ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. window.location (Location ๊ฐ์ฒด) ํ˜„์žฌ ํŽ˜์ด์ง€์˜ URL์„ ์•Œ์•„์˜ค๊ธฐ ์œ„ํ•ด window.location ์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. window.location ์†์„ฑ์— ์ ‘

hianna.tistory.com

 

[Javascript] URL ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ (์ฟผ๋ฆฌ์ŠคํŠธ๋ง ๊ฐ’)

Javascript์—์„œ URL์— ํฌํ•จ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ(์ฟผ๋ฆฌ์ŠคํŠธ๋ง)์˜ ๊ฐ’์„ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ด์ง€์˜ URL๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฝ๊ธฐ ํŠน์ • ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ์ฝ๊ธฐ ํŠน์ • ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๊ธฐ ํŒŒ๋ผ๋ฏธํ„ฐ ์ถ”๊ฐ€, ๋ณ€๊ฒฝ,

hianna.tistory.com