본문 바로가기

웹 개발/JSP

[Web_JSP] 13

실습(MVC)

- [Web_JSP] 12 이어서

 

 

1. join.jsp  

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
	<section>
		<form action="JoinOk.me" name="joinForm" method="post">
			<p>
				<label>
					아이디 : <input type="text" name="memberId">
				</label>
				<input type="button" value="중복확인" onclick="checkId()">
				<p id="result"></p>
			</p>
			<p>
				<label>
					이름 : <input type="text" name="memberName">
				</label>
			</p>
			<p>
				<label>
					비밀번호 : <input type="password" name="memberPw">
				</label>
			</p>
			<p>
				<label>
					비밀번호 확인 : <input type="password" id="memberPw">
				</label>
			</p>
			<p>
				성별 : 
				<label>
					남자 <input type="radio" name="memberGender" value="M">
				</label>
				<label>
					여자 <input type="radio" name="memberGender" value="W">
				</label>
				<label>
					선택안함 <input type="radio" name="memberGender" value="N">
				</label>
			</p>
			<p>
				<input type="text" id="sample5_address" placeholder="주소" name="memberAddress">
				<input type="button" onclick="sample5_execDaumPostcode()" value="주소 검색"><br>
				<input type="text" name="memberAddressDetail" placeholder="상세 주소">
				<div id="map" style="width:300px;height:300px;margin-top:10px;display:none"></div>
			</p>
			<p>
				<input type="button" value="가입 완료" onclick="join()">
			</p>
		</form>
	</section>
</body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
<script src="//dapi.kakao.com/v2/maps/sdk.js?appkey=37a9abf54fb9bec320d474d06c964451&libraries=services"></script>
<script>
	function checkId(){
		$.ajax({
			url: "/day07/CheckIdOk.me",
			type: "get",
			data: {memberId: $("input[name='memberId']").val()},
			contentType: "application/json; charset=utf-8",
			dataType: "json",
			success: function(result){
				if(result.check){
					
					
					$("p#result").text("중복된 아이디입니다.");
				}else{
					$("p#result").text("사용가능한 아이디입니다.");
				}
			},
			error: function(request, status, error){
				console.log("실패..");
				console.log(request);
				console.log(status);
				console.log(error);
			}
		});
	}

	function join(){
		joinForm.submit();
	}

    var mapContainer = document.getElementById('map'), // 지도를 표시할 div
        mapOption = {
            center: new daum.maps.LatLng(37.537187, 127.005476), // 지도의 중심좌표
            level: 5 // 지도의 확대 레벨
        };

    //지도를 미리 생성
    var map = new daum.maps.Map(mapContainer, mapOption);
    //주소-좌표 변환 객체를 생성
    var geocoder = new daum.maps.services.Geocoder();
    //마커를 미리 생성
    var marker = new daum.maps.Marker({
        position: new daum.maps.LatLng(37.537187, 127.005476),
        map: map
    });


    function sample5_execDaumPostcode() {
        new daum.Postcode({
            oncomplete: function(data) {
                var addr = data.address; // 최종 주소 변수

                // 주소 정보를 해당 필드에 넣는다.
                document.getElementById("sample5_address").value = addr;
                // 주소로 상세 정보를 검색
                geocoder.addressSearch(data.address, function(results, status) {
                    // 정상적으로 검색이 완료됐으면
                    if (status === daum.maps.services.Status.OK) {

                        var result = results[0]; //첫번째 결과의 값을 활용

                        // 해당 주소에 대한 좌표를 받아서
                        var coords = new daum.maps.LatLng(result.y, result.x);
                        // 지도를 보여준다.
                        mapContainer.style.display = "block";
                        map.relayout();
                        // 지도 중심을 변경한다.
                        map.setCenter(coords);
                        // 마커를 결과값으로 받은 위치로 옮긴다.
                        marker.setPosition(coords)
                    }
                });
            }
        }).open();
    }
</script>
</html>

 

 

 

2. loginSuccess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 결과</title>
</head>
<body>
	<c:choose>
		<c:when test="${empty memberNumber}">
			<h3>로그인 실패</h3>
		</c:when>
		<c:otherwise>
			<h1><c:out value="${memberNumber}"/>번 회원님 로그인 성공</h1>
		</c:otherwise>
	</c:choose>
	
</body>
</html>

 

 

 

3. login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
	<section>
		<form action="MemberLoginOk.me" method="post" name="loginForm">
			<div>
				<input name="memberId" type="text" placeholder="아이디를 입력해주세요.">
			</div>
			<div>
				<input name="memberPw" type="password" placeholder="패스워드를 입력해주세요.">
			</div>
			<div>
				<input type="button" id="login" value="로그인">
			</div>
		</form>
	</section>
</body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
	let form = document.loginForm;
	
	$("input#login").on("click", function(){
		console.log(form.memberId);
		if(!form.memberId.value){
			alert("아이디를 입력해주세요.");
			return;
		}
		if(!form.memberPw.value){
			alert("패스워드를 입력해주세요.");
			return;
		}
		
		form.submit();
	});
	
</script>
</html>

 

 


 

 

실습(MVC)

- board 프로젝트 

 

1. dBeaver에서 database 생성 및 사용 설정

create database board;
use board;

 

 

 

2. dBeaver에서 table 생성 및 데이터 삽입

create table tbl_member(
	member_number int unsigned auto_increment primary key,
	member_id varchar(500) unique,
	member_pw varchar(500),
	member_name varchar(500),
	member_age tinyint,
	member_gender char(5),
	member_email varchar(500),
	member_zipcode char(5),
	member_address varchar(500),
	member_address_detail varchar(500)
);

insert into tbl_member
(member_id, member_pw, member_name, member_age, member_gender, member_email, member_zipcode, member_address, member_address_detail)
values('hong1234', '1234', '홍길동', 20, 'M', 'tedhong1204@gmail.com', '12345', '강남구 역삼동', '3층');


select * from tbl_member;

 

 

 

3. Action.java

package com.board.app.action;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface Action {
	public ActionInfo execute(HttpServletRequest req, HttpServletResponse resp) throws IOException;
}

 

 

 

4. ActionInfo.java

package com.board.app.action;

public class ActionInfo {
	private boolean isRedirect;
	private String path;
	
	public ActionInfo() {;}

	public boolean isRedirect() {
		return isRedirect;
	}

	public void setRedirect(boolean isRedirect) {
		this.isRedirect = isRedirect;
	}

	public String getPath() { 
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}
}

 

 

 

 

'웹 개발 > JSP' 카테고리의 다른 글

[Web_JSP] 15  (0) 2022.06.03
[Web_JSP] 14  (0) 2022.06.02
[Web_JSP] 12  (0) 2022.05.31
[Web_JSP] 11  (0) 2022.05.30
[Web_JSP] 10  (0) 2022.05.29