실습(MVC)
- [Web_JSP] 13 이어서
1. MemberVO.java
package com.board.app.domain.vo;
public class MemberVO {
private int memberNumber;
private String memberId;
private String memberPw;
private String memberName;
private int memberAge;
private String memberGender;
private String memberEmail;
private String memberZipcode;
private String memberAddress;
private String memberAddressDetail;
public MemberVO() {;}
public int getMemberNumber() {
return memberNumber;
}
public void setMemberNumber(int memberNumber) {
this.memberNumber = memberNumber;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberPw() {
return memberPw;
}
public void setMemberPw(String memberPw) {
this.memberPw = memberPw;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public int getMemberAge() {
return memberAge;
}
public void setMemberAge(int memberAge) {
this.memberAge = memberAge;
}
public String getMemberGender() {
return memberGender;
}
public void setMemberGender(String memberGender) {
this.memberGender = memberGender;
}
public String getMemberEmail() {
return memberEmail;
}
public void setMemberEmail(String memberEmail) {
this.memberEmail = memberEmail;
}
public String getMemberZipcode() {
return memberZipcode;
}
public void setMemberZipcode(String memberZipcode) {
this.memberZipcode = memberZipcode;
}
public String getMemberAddress() {
return memberAddress;
}
public void setMemberAddress(String memberAddress) {
this.memberAddress = memberAddress;
}
public String getMemberAddressDetail() {
return memberAddressDetail;
}
public void setMemberAddressDetail(String memberAddressDetail) {
this.memberAddressDetail = memberAddressDetail;
}
@Override
public String toString() {
String str = "memberNumber : " + memberNumber + "\n";
str += "memberId : " + memberId + "\n";
str += "memberPw : " + memberPw + "\n";
str += "memberName : " + memberName + "\n";
str += "memberAge : " + memberAge + "\n";
str += "memberGender : " + memberGender + "\n";
str += "memberEmail : " + memberEmail + "\n";
str += "memberZipcode : " + memberZipcode + "\n";
str += "memberAddress : " + memberAddress + "\n";
str += "memberAddressDetail : " + memberAddressDetail;
return str;
}
}
2. MemberDAO.java
package com.board.app.domain.dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.board.app.domain.vo.MemberVO;
import com.mybatis.config.MyBatisConfig;
public class MemberDAO {
SqlSessionFactory sqlSessionFactory = MyBatisConfig.getSqlSessionFactory();
SqlSession sqlSession;
public MemberDAO() {
sqlSession = sqlSessionFactory.openSession(true);
}
//아이디 중복검사
public boolean checkId(String memberId) {
return (Integer)sqlSession.selectOne("Member.checkId", memberId) == 1;
}
//회원가입
public void insert(MemberVO memberVO) {
sqlSession.insert("Member.insert", memberVO);
}
}
3. MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http//mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Member">
<select id="checkId" parameterType="string" resultType="_int">
select count(member_number) from tbl_member where member_id = #{memberId}
</select>
<insert id="insert" parameterType="memberVO">
insert into tbl_member
(member_id, member_pw, member_name, member_age, member_gender, member_email, member_zipcode, member_address, member_address_detail)
values(#{memberId}, #{memberPw}, #{memberName}, #{memberAge}, #{memberGender}, #{memberEmail}, #{memberZipcode}, #{memberAddress}, #{memberAddressDetail});
</insert>
</mapper>
4. config.xml
<?xml version="1.0" encoding="UTF-8"?>
http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<typeAlias type="com.board.app.domain.vo.MemberVO" alias="memberVO"/>
</typeAliases>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/board"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mybatis/mapper/MemberMapper.xml"/>
</mappers>
</configuration>
5. MyBatisConfig.java
package com.mybatis.config;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisConfig {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "./com/mybatis/config/config.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
6. MemberCheckIdOk.java
package com.board.app.member;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import com.board.app.action.Action;
import com.board.app.action.ActionInfo;
import com.board.app.domain.dao.MemberDAO;
public class MemberCheckIdOk implements Action {
@Override
public ActionInfo execute(HttpServletRequest req, HttpServletResponse resp) throws IOException {
req.setCharacterEncoding("UTF-8");
MemberDAO memberDAO = new MemberDAO();
PrintWriter out = resp.getWriter();
String memberId = req.getParameter("memberId");
JSONObject json = new JSONObject();
if(memberDAO.checkId(memberId)) {
json.put("result", "fail");
}else {
json.put("result", "success");
}
out.print(json.toJSONString());
out.close();
return null;
}
}
7. join.js
/**
*
*/
// 주소 찾기(Daum API)
function find() {
new daum.Postcode({
oncomplete: function(data) {
var addr = ''; // 주소 변수
if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
addr = data.roadAddress;
} else { // 사용자가 지번 주소를 선택했을 경우(J)
addr = data.jibunAddress;
}
// 우편번호와 주소 정보를 해당 필드에 넣는다.
document.getElementById('zipcode').value = data.zonecode;
document.getElementById("address").value = addr;
// 커서를 상세주소 필드로 이동한다.
document.getElementById("addressDetail").focus();
}
}).open();
}
//이용 약관
const $all = $("#term");
const $inputs = $(".terms");
$all.on('click', function(){
if($(this).is(":checked")){
$inputs.prop('checked', true);
}else{
$inputs.prop('checked', false);
}
});
$inputs.on('click', function(){
var check = true;
if(!$(this).is(":checked")){
$all.prop('checked', false);
}
if($inputs.filter(":checked").length == 2){
$all.prop('checked', true);
}
});
//약관 펼쳐보기
const aTags = $("a.showTerm");
const textAreas = $("textArea.term-content");
let checkTerm1 = -1;
let checkTerm2 = -1;
aTags.on('click', function(e){
e.preventDefault();
if($(this).attr("href") == "term1-content"){
$("#term1-content").slideToggle(function(){
//토글이 끝나고 나서 실행될 기능 작성
checkTerm1 *= -1;
$(aTags[0]).text(checkTerm1 > 0 ? "닫기 X" : "펼쳐보기");
});
}else if($(this).attr("href") == "term2-content"){
$("#term2-content").slideToggle(function(){
checkTerm2 *= -1;
$(aTags[1]).text(checkTerm2 > 0 ? "닫기 X" : "펼쳐보기");
});
}
});
//아이디 중복검사
let check = false;
function checkId(memberId){
console.log(memberId);
$.ajax({
url: contextPath + "/member/MemberCheckIdOk.me?memberId=" + memberId,
type: "get",
dataType: "json",
success: function(result){
const $result = $("span#result");
if(result.result == "success"){
$result.text("사용가능한 아이디입니다.");
$result.css("color", "blue");
check = true;
}else{
$result.text("중복된 아이디입니다.");
$result.css("color", "red");
check = false;
}
}
});
}
$("input#memberId").keyup(function(){
checkId($(this).val());
})
function send(){
if(!check){
alert("아이디를 다시 확인해주세요.");
return;
}
if(!$all.is(":checked")){
alert("약관 동의가 필요합니다.");
return;
}
joinForm.submit();
}
8. login.js
function send(){
loginForm.submit();
}
'웹 개발 > JSP' 카테고리의 다른 글
[Web_JSP] 16 (0) | 2022.06.04 |
---|---|
[Web_JSP] 15 (0) | 2022.06.03 |
[Web_JSP] 13 (0) | 2022.06.01 |
[Web_JSP] 12 (0) | 2022.05.31 |
[Web_JSP] 11 (0) | 2022.05.30 |