json을 이용하기 위한 lib 추가
pom.xml에 아래 코드를 추가해 줍니다.
<!-- json parser -->
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<!-- jackson -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
Register.jsp 수정
ajax를 이용하기위해 jquery를 추가해주고 버튼을 만들어 줍니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<form name="Register" method="post" action="RegisterAct">
<table border="1" align="center" width="500" height="500">
<tr>
<td colspan="4" height="100" align="center">회원가입</td>
</tr>
<tr>
<td colspan="1" height="100" align="center">ID</td>
<td colspan="2" height="100" align="center">
<input type="text" name="user_id" id="user_id">
</td>
<td align="center">
<button id="duplicate_check" type="button" onclick="check();">중복체크</button>
</td>
</tr>
<tr>
<td colspan="1" height="100" align="center">Password</td>
<td colspan="3" height="100" align="center">
<input type="text" name="password">
</td>
</tr>
<tr>
<td colspan="1" height="100" align="center">NickName</td>
<td colspan="3" height="100" align="center">
<input type="text" name="nickname">
</td>
</tr>
<tr>
<td colspan="1" height="100" align="center">Name</td>
<td colspan="3" height="100" align="center">
<input type="text" name="name">
</td>
</tr>
<tr>
<td colspan="4" height="100" align="center"><input type = "submit" value="가입하기"></td>
</tr>
</table>
</form>
</body>
</html>
</body>아래 function check를 만들어 줍니다.
<script>
function check(){
id = $("#user_id").val();
$.ajax({
url: 'ID_Check',
type: 'POST',
dataType: 'text', //서버로부터 내가 받는 데이터의 타입
contentType : 'text/plain; charset=utf-8;',//내가 서버로 보내는 데이터의 타입
data: id ,
success: function(data){
if(data == 0){
console.log("아이디 없음");
alert("사용하실 수 있는 아이디입니다.");
}else{
console.log("아이디 있음");
alert("중복된 아이디가 존재합니다.");
}
},
error: function (){
}
});
}
</script>
UDao와 UserDao 수정
interface UDao에 아이디 중복 체크와 관련된 새로운 메소드를 생성해 줍니다.
package com.app.app.Dao;
import java.util.ArrayList;
import java.util.Map;
import com.app.app.Dto.UserDto;
public interface UDao {
public void Register(Map map);
public UserDto Id_Check(String id);
}
UDao의 구현클래스 UserDao에서 추가된 메소드를 재정의 해줍니다.
package com.app.app.Dao;
import java.util.ArrayList;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import com.app.app.Dto.UserDto;
public class UserDao implements UDao{
JdbcTemplate template;
@Autowired
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
@Override
public void Register(Map map) { }
@Override
public UserDto Id_Check(String id) {
return null;
}
}
mapper 수정
com.app.app.mapper에 있는 UDao.xml에 아래 구문을 추가해줍니다.
<select parameterType="String" id="Id_Check" resultType="com.app.app.Dto.UserDto">
SELECT user_id FROM user where user_id = #{id}
</select>
AppController 수정
Register페이지에서 /ID_Check 로 보낸 아이디값을 DB에서 조회하고 중복 여부를 알려주는 메소드 ID_Check를 만들어 줍니다.
@ResponseBody
@RequestMapping(value = "/ID_Check", produces="text/plane")
public String ID_Check(@RequestBody String paramData) throws ParseException {
//클라이언트가 보낸 ID값
String ID = paramData.trim();
System.out.println(ID);
UDao dao = sqlSession.getMapper(UDao.class);
UserDto dto = dao.Id_Check(ID);
if(dto != null) {//결과 값이 있으면 아이디 존재
return "-1";
} else { //없으면 아이디 존재 X
System.out.println("null");
return "0";
}
}
Register 페이지에 접속하여 확인해봅시다.
'WEB > Spring' 카테고리의 다른 글
7) Spring - 로그아웃 (0) | 2019.10.12 |
---|---|
6) Spring - 로그인(Session 이용) (0) | 2019.10.08 |
4) Spring - 회원가입 처리하기. (0) | 2019.09.26 |
3) Spring - RequestMapping 하기 (0) | 2019.09.25 |
2) Spring - 기본설정(MyBatis) (0) | 2019.09.25 |