JSP

 

 

 

 

 

 

 

 

SQL 시권스 생성

-- 시퀀스 생성

create sequence reserve_seq 
	start with 1
	increment by 1
	nomaxvalue 
    nocycle
    nocache;


 

CarreserveInfo.jsp

				<tr>					
    				<td colspan="2" class="text-center">
    				<input type="hidden" value="CarOptionSelect.jsp"   name="center">
    				<input type="hidden" value="<%= bean.getImg() %>"   name="img">
    				<input type="hidden" value="<%= bean.getNo() %>"   name="no">
    				<input type="submit" class="btn"  value="옵션 선택후 구매하기">
    				</td>
    			</tr>

 

CarOptionSelect.jsp

    			<tr>
    				<td colspan="2" class="text-center">
    				<input type="hidden" value="<%= qty %>" name="qty">
    				<input type="hidden" value="CarReserveResult.jsp" name="center">
    				<input type="hidden" value="<%= no %>"  name="no" >
    				<input type="submit" value="차량예약하기" class="form-control" style="background-color: #222222; color:#fff">
    				</td>
    			</tr>

 

CarReserveResult.jsp

<%@page import="db.CarListBean"%>
<%@page import="db.RentcarDAO"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="rbean" class="db.CarReserveBean">
	<jsp:setProperty name="rbean" property="*" />
</jsp:useBean> 

   
<div class="container marketing" id="marketing2">
   <!-- Three columns of text below the carousel -->
      <div class="row">
<%
	
	String id =(String)session.getAttribute("id");
	if(id==null){
%> 
	<script>
		alert("로그인후 예약이 가능 합니다.");
		location.href="RentCarMain.jsp?center=MemberLogin.jsp";
	</script>
	
<%
	}
	
	if(rbean.getRday()==null){
%>		
		<script>
		alert("대여일을 선택하세요");
		history.go(-1);
		</script>
	
<%	
	}else{
		
		//날짜 비교
		Date d1 =new Date();
		Date d2=new Date();
		//날짜를 2017-09-27 포멧 해주는 클래스 선언
		SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
		
		d1 =sdf.parse(rbean.getRday());
		d2 =sdf.parse(sdf.format(d2));
		
		//날짜 비교 메소드를 사용
     	int compare = d1.compareTo(d2);
		//예약하려는 날짜보다 현재날짜가 크다면  -1;
		//예약하려는 날짜와 현재날짜가 같다면 0
		//예약하려는 날짜가 더 크다면 1을 리턴
		
		if(compare < 0){//오늘보다 이전 날짜 선택시
			%>
			
	<script>
		alert("현재 시스템 날짜보다 이전 날짜는 선택할수 없습니다.");
		history.go(-1);
	</script>
			
<%		
		}
		
		
		//결과적으로 아무런 문제가 없다면 데이터 저장후 결과 페이지 보여주기
		//아이디 값이 빈클래스에 없기에
		rbean.setId(id);
		
		//데이터 베이스에 빈클래스 저장
		RentcarDAO rdao =new RentcarDAO();
		rdao.setReserveCar(rbean);	
		//차량 정보 얻어오기
		CarListBean cbean = rdao.getOneCar(rbean.getNo());
	
		System.out.println("//차량 정보 얻어오기 :" +cbean.toString());
		//차량 총 금액
		int totalcar=cbean.getPrice()*rbean.getQty()*rbean.getDday();
		System.out.println(cbean.getPrice()+" : 수량 -" + rbean.getQty() + " : " + rbean.getDday() +"//차량 총 금액 :" +cbean.toString());
		//옵션금액
		int usein=0;
		if(rbean.getUserin()==1)usein=10000;
		int usewifi =0;
		if(rbean.getUsewifi()==1)usewifi=10000;
		int useseate=0;
		if(rbean.getUseseat()==1)useseate=10000;
		
	 	int totaloption =(rbean.getQty()*rbean.getDday())*(usein+usewifi+useseate);

%>		

	  <div class="col-sm-12"> 	
			<h2></h2>
			<div class="table-responsive">
			<table class="table">
				<caption></caption>
				<thead><tr><td colspan="2" class="text-center"><h2>차량 예약 완료 화면</h2></td></tr></thead>
				<tbody>
				 <tr>
				 	<td colspan="2" class="text-right">
				 	 <img src="img/<%= cbean.getImg() %>" class="img-responsive img-rounded" id="resultImg">
				 	</td>
				 </tr>			 
				
				 <tr>
				  <th>차량 총예약금액</th>
				  <td><%= totalcar %>원</td>
				 </tr>
				 
				<tr>
				  <th>차량 총옵션 금액</th>
				  <td><%= totaloption %>원</td>
				</tr>
				 
				<tr>
				 <th>차량 총금액</th>
				 <td><%= totaloption+totalcar %>원  </td>	
				 </tr>
			 </tbody>
			</table>
			</div>
	  </div>


<%
	}
%>
	  
 </div>
 
</div>
 
  <hr class="divider">
 
 
 
 
    

 

 

class RentcarDAO

	//하나의 예약 정보를 저장하는 메소드
	public void setReserveCar(CarReserveBean  bean){
		getCon();
		try{
			String sql ="insert into CARRESERVE (RESERVENO, NO, ID, QTY, DDAY, RDAY, USERIN, USEWIFI, USESEAT, USENAVI )"
					+ " VALUES(RESERVE_SEQ.nextval, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
			pstmt =con.prepareStatement(sql);
			
			System.out.println(bean.toString());
			
			//?에 값을 대입
			pstmt.setInt(1, bean.getNo());
			pstmt.setString(2, bean.getId());
			pstmt.setInt(3, bean.getQty());
			pstmt.setInt(4, bean.getDday());
			pstmt.setString(5, bean.getRday());
			
			pstmt.setInt(6, bean.getUserin());
			pstmt.setInt(7, bean.getUsewifi());
			pstmt.setInt(8, bean.getUseseat());
			pstmt.setInt(9, bean.getUsenavi());
			pstmt.executeUpdate();
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			closed();
		}
	}
	

 

 

 

 

동영상 강좌와 다르게  모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.

여기서는  jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.

 

또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.

혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.

소스 :  https://github.com/braverokmc79/jsp_sin

 

 

유튜브 동영상 출처 :

소프트캠퍼스

강사 : 신형섭(잭임연구원)

저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.

 

 

 

about author

PHRASE

Level 60  라이트

None so blind as those who won't see. (馬耳東風

댓글 ( 4)

댓글 남기기

작성