* 파일구조 형태 *
Controller: JoinusController.java
Dao: MemberDao.java , TWMemberDao.java
Vo: Members.java
View단: find.jsp
< find.jsp >
<html>
<head>
<title>find</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/find.css" type="text/css" rel="stylesheet" />
<script src="../js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
// window로드 됐을때, id가 btnFindUid / btnFindPW 인 것을 클릭하면 해당 함수 실행
$(window).load(function() {
$("#btnFindUid").click(btnFindUid);
$("#btnFindPW").click(btnFindPW);
});
// btnFindUid를 클릭했을 때 실행되는 함수내용.
function btnFindUid(event) {
// id가 Email인 객체를 Email이라는 변수에 저장.
var Email = $("#Email");
// 변수 Email의 value가 공백("")이면 alert창(경고창) 띄우고 return false를 함.
if (Email.val() == "") {
alert("이메일을 입력하세요");
return;
}
var name = $("#name");
if (name.val() == "") {
alert("이름을 입력하세요");
return;
}
// 해당 값들을 findIDResult.htm의 주소로 변수 Email과 name의 값들을 controller에 전달,
// 전달한 후 받은 익명의 function으로 controller로 부터 받은 결과값(result변수 값)을 alert창을 통해 출력.
$.post("findIDResult.htm", {
Email : Email.val(),
name : name.val()
}, function(data) {
alert(eval(data).result);
});
}
</script>
</head>
<body>
<div class="leftt">
<form name="form1" action="findIDResult.htm" method="post">
<fieldset>
<legend class="hidden"> ID/비밀번호 찾기 </legend>
<ul id="findID">
<li>ID찾기</li>
<li><label>· E-mail </label><input type="text" id="Email" name="Email" /></li>
<li><label>· 이름 </label> <input type="text" id="name" name="name" /></li>
<li>
<input type="button" name="btnFindUid" id="btnFindUid" value="아이디 찾기" />
</li>
</ul>
</fieldset>
</form>
</div>
</html>
< JoinusController.java >
@Controller
public class JoinusController {
// Dao를 전역변수로 선언해 현재 class파일에서 공통으로 사용한다.
@Autowired
private MembersDao membersDao;
// 해당 페이지명으로 요청이 들어왔을 시 실행할 함수부분.
@RequestMapping("/joinuser/findIDResult.htm")
// findid함수 선언 후 매개변수는 find.jsp에서 post되어 보내진 Email, name과
// 윈도우창에서 출력할 서블릿객체(HttpServletResponse) 선언
public void findId(String Email, String name, HttpServletResponse response) throws IOException {
// 출력시 한글깨짐현상 방지를 위해 새로 encoding해줌. UTF-8로
response.setCharacterEncoding("UTF-8");
// 자바출력객체 printwriter에 서블릿객체의 값을 저장해 생성.
PrintWriter out = response.getWriter();
// memberDao에 있는 FindID함수의 결과값이 true이면,
if (membersDao.FindID(Email, name) == true) {
// Members라는 value객체 m에(VO부분에 생성한 Members.java)
// memberDao에 있는 getID함수의 결과값을 저장.(Email과 name값을 담아서)
Members m = membersDao.getID(Email, name);
// 문자열변수 id에 m에 있는 id를 가져와 저장.
String id = m.getId();
// 출력객체 out변수를 이용해 결과값 전송.
// result에 '입력하신 정보와 일치하는 아이디는 " + id + " 입니다.' 를 담아 view단에서 출력함.
out.write("({'result':'입력하신 정보와 일치하는 아이디는 " + id + " 입니다.'})");
// memberDao에 있는 FindID함수의 결과값이 false이면,
} else {
// result에 '입력하신 정보로 찾을 수 없습니다.' 를 담아 view단에서 출력함.
out.write("({'result': '입력하신 정보로 찾을 수 없습니다.'})");
}
}
}
< TWMemberDao.java >
- MemberDao.java에서 사용할 함수들을 인터페이스로 정의해 놓은 파일.
// value객체인 Members.java를 사용하려고 import함.
import tourwingz.vo.Members;
public interface TWMemberDao {
public Members getID(String Email, String name);
public Members getPW(String id, String name, String pwQ, String pwA);
public boolean FindID(String Email, String name);
public boolean FindPW(String id, String name, String PwQ, String PwA);
}
< MemberDao.java >
// TWMemberDao.java 인터페이스 파일을 상속받아 클래스 생성.
public class MembersDao implements TWMemberDao {
// 전역변수로 자바코드와 데이터베이스를 연결시켜주기 위해 선언
private JdbcTemplate template;
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
// 상속받아서 사용하는 함수기 때문에 override(재정의)해 사용한다.
// ID를 찾기위해 입력된 Email과 name을 매개변수로 해 구현한 함수.
@Override
public Members getID(String Email, String name) {
// DB에서 돌린 쿼리문, ?는 매개변수에 따라 달라진다.
// Members테이블에서 입력된 email과 name이 있으면 해당되는 필드값을 출력하라는 쿼리문.
String sql = "select * from Members where email=? and Name= ?";
// try/catch문으로 묶어준 이유는 쿼리문의 결과값이 없다면 null을 무조건 return하게 했다.
try {
// 위 쿼리문의 ? 에 해당하는 것을 매개변수 Email과 name을 넣어 실행한다.
return template.queryForObject(sql, new Object[] { Email, name },
new RowMapper<Members>() {
@Override
public Members mapRow(ResultSet rs, int rowNum) throws SQLException {
Members m = new Members();
m.setId(rs.getString("id"));
m.setPwd(rs.getString("pwd"));
m.setPwQ(rs.getString("pwQ"));
m.setPwA(rs.getString("pwA"));
m.setEmail(rs.getString("email"));
m.setName(rs.getString("name"));
m.setSignupDate(rs.getDate("signupdate"));
m.setDeleteDate(rs.getDate("deletedate"));
m.setLiveCity(rs.getString("livecity"));
m.setJob(rs.getString("job"));
m.setGender(rs.getString("gender"));
m.setPurpose(rs.getString("purpose"));
return m;
}
});
} catch (Exception e) {
return null;
}
}
// getID(Email, name)함수를 이용해 값이 있는지 없는지 판단하는 함수
@Override
public boolean FindID(String Email, String name) {
// getID함수를 이용해 VO(Value Object) m에 담는다.
Members m = getID(Email, name);
// m의 값이 null이 아니면
if (m != null) {
// m의 ID값을 id라는 변수에 담는다.
String id = m.getId();
// true를 return한다.
return true;
}
// m의 값이 null이면 false를 return한다.
return false;
}
}
'일했던김개미' 카테고리의 다른 글
[eGov ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailu (0) | 2013.12.02 |
---|---|
[ORACLE] Oracle 11g 설치 후 계정생성 및 권한설정방법 (0) | 2013.10.31 |
[Powermockup] Powermockup, 웹 기획 TOOL (0) | 2013.07.22 |
[MyBatis(iBatis)] $와 #의 차이점 (0) | 2013.07.10 |
[etc.] 특정 사이트 접속불가(win7) 해결방법 (0) | 2013.07.10 |
댓글