์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ผํ๋ผ์ค์๋ง๋
- Java
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ค๋ผํด
- database
- Python
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ์๋ฐ
- ์ปดํจํฐ๊ณผํ
- ํ๋ก๊ทธ๋๋ฐ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ๋ฐ์ํ
- ์ํ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- css
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํ์ด์ฌ
- ๋ ์
- html
- ๊ฐ๋ฐ
- ComputerScience
- ์ฑ
- ์ฝ๋ฉ
- JavaScript
- K๋ฐฐํฐ๋ฆฌ
- ์ค๋ธ์
- ๋ฆฌ์กํธ
- Today
- Total
JiYoung Dev ๐ฅ
[Spring] AJAX ๋น๋๊ธฐ ํต์ - ์์ด๋ ์ค๋ณต ์ฒดํฌ ๊ธฐ๋ฅ ๊ตฌํ (2023.06.01) ๋ณธ๋ฌธ
[Spring] AJAX ๋น๋๊ธฐ ํต์ - ์์ด๋ ์ค๋ณต ์ฒดํฌ ๊ธฐ๋ฅ ๊ตฌํ (2023.06.01)
Shinjio 2023. 6. 1. 17:42๐ AJAX (Asynchronous JavaScript and XML)
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋น๋๊ธฐ์ ์ ๋ณด ๊ตํ์ด ๊ฐ๋ฅํ ํต์ ๊ธฐ๋ฅ
** ํ๋ฉด ์ ํ ์์ด
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋
- ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ๊ณ ํ๋ฉด์ ๊ตฌ์ฑํ๋๋ฐ ์์ด์ ์น ํ๋ฉด์ ๊ฐฑ์ ํ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ณ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ
- ํ๋ฉด ๊ฐฑ์ ์ด ์์ด์ ์ฌ์ฉ์ ์ ์ฅ์์ ๋งค์ฐ ํธ๋ฆฌํ๊ณ ๋น ๋ฅด๊ฒ ์์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ฒ ํจ
- ํ์ง๋ง, ๋์ ์ผ๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋งํผ ๊ฐ๋ฐ์์ ๊ตฌํ์ ๋ณต์กํด์ง
๐ Ajax ์ฅ์
- ํ์ด์ง์ ๊ฐฑ์ ์์ด ์๋ฒ์ ๋น๋๊ธฐ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ค
- ํ๋ฉด์ด ์๋ก ๋ก๋ฉ๋๋ ๊ฒ์ด ์๋๋ฏ๋ก ์๋๋ฉด์์ ์ฑ๋ฅ ๊ฐ์ (์นํ์ด์ง ์๋ ํฅ์)
- ๋ณ๋์ ํ๋ฌ๊ทธ์ธ์ด ํ์ํ์ง ์์
- Http ์ ์ก ์ค์๋ ํด๋ผ์ด์ธํธ๊ฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ์์ฉ ํ ์ ์์
๐ป Ajax ํ์ฉํ์ฌ ์์ด๋ ์ค๋ณต ์ฒดํฌ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ - spring / jquery
1. index.jsp - html ๋ถ๋ถ
email ์ค๋ณต์ฒดํฌ input ํ๊ทธ์ onClick ์ด๋ฒคํธ ์ง์
<li><h5>ํ์๊ฐ์
</h5></li>
<form action="member/join" method="post">
<li><input type="text" name="email" placeholder="Email์ ์
๋ ฅํ์ธ์" id="input" ></li>
<li><input type="button" value="email ์ค๋ณต์ฒดํฌ" onClick="checkEmail()"></li>
<li><span id="result"></span></li>
<li><input type="password" name="pw" placeholder="PW๋ฅผ ์
๋ ฅํ์ธ์" ></li>
<li><input type="text" name="tel" placeholder="์ ํ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์" ></li>
<li><input type="text" name="address" placeholder="์ง์ฃผ์๋ฅผ ์
๋ ฅํ์ธ์" ></li>
<li><input type="submit" value="JoinUs" class="button fit"></li>
</form>
2. index.jsp - script ๋ถ๋ถ
email ์ธํ ํ๊ทธ์์ ์ง์ ํ ์์ด๋ (input) ๋ณ์๋ก ์ ์ฅ
ajax๋ก memberController์ emailCheck๋ก ์์ฒญ > ๋ฐํ๊ฐ(res) ๋ฐ์์ id๊ฐ result์ธ <span>์ ๊ฐ ๋ฃ๊ธฐ
<script>
function checkEmail(){
//์ด๋ฉ์ผ ๊ฐ์ ธ์ค๊ธฐ
//์๋ฐ์คํฌ๋ฆฝํธ๋ผ๋ฉด document.getElementById("email").value
//innerHtml : ํ๊ทธ ์ฌ์ด์ html ์์ ํฌํจํ๋ฉฐ ๊ฐ์ ธ์ค๊ธฐ >>> ์ ์ด์ฟผ๋ฆฌ์์๋ html()
//html() >> ๊ฐ ๊ฐ์ ธ์ค๊ธฐ / html("<h1>s</h1>") >> ๊ฐ ์ถ๊ฐํ๊ธฐ
//innerText : ํ๊ทธ ์ฌ์ด์ text๋ง ๊ฐ์ ธ์ค๊ธฐ >>> ์ ์ด์ฟผ๋ฆฌ์์๋ text()
//value : input ํ๊ทธ์ ์์ฑ๋ ๊ฐ(์ฌ์ฉ์๊ฐ ์
๋ ฅํ(์ ํํ) ๊ฐ) ๊ฐ์ ธ์ค๊ธฐ >>> ์ ์ด์ฟผ๋ฆฌ์์๋ val()
let input = $("#input").val()
console.log(input)
//๋น๋๊ธฐํต์ : json {"key" : "value"} ํค๊ฐ์ผ๋ก ๊ตฌ๋ณ, xml<> ํ๊ทธ๋ก ๊ตฌ๋ณ >> ์์ฃผ ์ฐ๋ ํ์
$.ajax({
//์์ฒญ๊ฒฝ๋ก
url : "member/emailcheck",
//http ์์ฒญ ๋ฉ์๋ (get๋ฐฉ์์ด ๊ธฐ๋ณธ์ผ๋ก ์๋ต ๊ฐ๋ฅ)
type : "get",
data : {'input' : input },
success : function(res){
//res : ์๋ฒ ์๋ต๊ฐ
console.log(res)
if(res=="success"){
$("#result").text('์ฌ์ฉํ ์ ์๋ ์ด๋ฉ์ผ')
}else{//fail
$("#result").text('์ฌ์ฉํ ์ ์๋ ์ด๋ฉ์ผ')
}
},
error : function(){
alert("ํต์ ์คํจ")
}
})
}
</script>
3. MemberController - emailCheck
ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ input๊ฐ(์ด๋ฉ์ผ) ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์
์๋ตํ ๋๋ ๋ทฐ๋ฅผ ๋ฐํํ์ง ์๊ณ ๋ฌธ์์ด์ ๋ฐํ
//๋ทฐ๋ฅผ ๋ฐํํ์ง ์๊ณ data(model)์ ๋ฐํํ๋ ๋ฉ์๋๋ก ๋ณ๊ฒฝํด์ผ ํจ
//@Controller >> view๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
//@Controller + @ResponseBody ์ฌ์ฉ >> model์ ๋ฐํํ๋ ๋ฉ์๋
@RequestMapping(value="/member/emailcheck")
public @ResponseBody String emailCheck(@RequestParam("input") String email) {
System.out.println(email);
int result = mapper.emailCheck(email);
System.out.println(result);
if(result>0) { //๊ฐ์ด ์ด๋ฏธ ์กด์ฌ >> ์ฌ์ฉ๋ถ๊ฐ๋ฅํ ์ด๋ฉ์ผ
System.out.println("ss");
return "fail"; //์ผ๋ฐ๋ฌธ์์ด
}else { //๊ฐ์ด ์์ >> ์ฌ์ฉ๊ฐ๋ฅํ ์ด๋ฉ์ผ
System.out.println("qq");
return "success";
}
}
4. MemberMapper
annotaion ๋ฐฉ์ ํ์ฉํ์ฌ mybatis ์ฌ์ฉ
sql๋ฌธ ์์ฑ์ ์กฐํํ๋ ์ ๋ณด๋ count(*) - intํ
>> ๋ง์ฝ ๊ฐ์ ์์ด๋๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ค๋ฉด ์ซ์ 1์ ์๋ค๋ฉด 0์ ๋ฐํํ ๊ฒ
//์ด๋ฉ์ผ ์ค๋ณต ์ฒดํฌ
@Select("select count(*) email from webmember where email=#{email}")
public int emailCheck(String email);
'full stack > Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] Express ์ฌ์ฉํ๊ธฐ (2023.07.05) (0) | 2023.07.05 |
---|---|
[Spring Boot] Spring Boot ์ฌ์ฉํ๊ธฐ (2023.06.07) (0) | 2023.06.07 |
[JSP&Servlet] FrontController (2023.05.23~24) (0) | 2023.05.24 |
[JSP/Servlet] Maven (2023.05.22) (0) | 2023.05.22 |
[JSP/Servlet] Web MVC (2023.05.19) (0) | 2023.05.19 |