JSP

 

 

 

 

 

CarAllList.jsp, CarReserveMain.jsp, CarCategoryList.jsp  의 링크 코드를 변경

 <div class="col-lg-4">
          <img class="img-circle" src="img/<%=bean.getImg() %>" alt="Generic placeholder image" width="300" height="200" 
             onclick="location.href='CarreserveInfo.jsp?no=<%= bean.getNo() %>'" >
          <h2><%=bean.getName() %></h2>
          <p><%= bean.getInfo() %></p>
          <p><a class="btn btn-default" href="CarreserveInfo.jsp?no=<%= bean.getNo() %>" role="button">상세보기 &raquo;</a></p>
        </div><!-- /.col-lg-4 -->

 

===>

 

  <div class="col-lg-4">
          <img class="img-circle" src="img/<%=bean.getImg() %>" alt="Generic placeholder image" width="300" height="200" 
             onclick="location.href='RentCarMain.jsp?center=CarreserveInfo.jsp&no=<%= bean.getNo() %>'" >
          <h2><%=bean.getName() %></h2>
          <p><%= bean.getInfo() %></p>
          <p><a class="btn btn-default" href="RentCarMain.jsp?center=CarreserveInfo.jsp&no=<%= bean.getNo() %>" role="button">상세보기 &raquo;</a></p>
        </div><!-- /.col-lg-4 -->

 

 

class RentcarDAO 

	//하나의 자동차 정보를 리턴하는 메소드
	public CarListBean getOneCar(int no){
		//sql injection 에 대한 보안상 파라미터값이 숫자가 아니면  no 값은 1로변경 
		if(!isNumeric(String.valueOf(no))) no=1 ;
	
		String sql ="select * from RentCar where no="+no;
		Vector<CarListBean> v=commonCarBean(sql, false, 0);
		//리턴타입 선언
		CarListBean bean =v.get(0);
		return bean;
	}
	
	//보안상 파라미터값이 숫자인지 체크
	public static boolean isNumeric(String s){
		try{
			Double.parseDouble(s);
			return true;
		}catch(NumberFormatException e){
			return false;
		}
	}

 

// 공통 부분 메소드 로 만듬.
	private Vector<CarListBean> commonCarBean(String sql, boolean option, int num){
		getCon(); //커넥션이 연결되엉야 쿼리를 실행 가능
		Vector<CarListBean> v =new Vector<>();
		CarListBean bean =null;
		try {
			pstmt=con.prepareStatement(sql);
			//쿼리 실행후 결과를 Result 타입으로 리턴
			
			rs =pstmt.executeQuery();
			int count=0;
			while(rs.next()){			
				bean = new CarListBean();
				bean.setNo(rs.getInt(1));
				bean.setName(rs.getString(2));
				bean.setCategory(rs.getInt(3));
				bean.setPrice(rs.getInt(4));
				bean.setUsepeople(rs.getInt(5));
				bean.setCompany(rs.getString(6));
				bean.setImg(rs.getString(7));
				bean.setInfo(rs.getString(8));
				//벡터를 빈 클래스에 저장
				v.add(bean);
			
				if(option){	
					count++;
					if(count >=num)break; //반복문을 빠져나가시오.
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			closed();
		}
		return v;
	}
	

 

 

 

CarreserveInfo.jsp

<%@page import="db.CarListBean"%>
<%@page import="java.util.Vector"%>
<%@page import="db.RentcarDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%

	int no  =Integer.parseInt(request.getParameter("no"));
	
	//데이터베이스에 접근
	RentcarDAO rdao =new RentcarDAO();
	//렌트카 하나에대한 정보를 얻어옴
	CarListBean bean =rdao.getOneCar(no);
	
	String temp="";
	if(bean.getCategory()==1)temp="소형";
	else if(bean.getCategory()==2)temp="중형";
	else if(bean.getCategory()==3)temp="대형";

%>
		
<div class="container marketing" id="marketing">
   <!-- Three columns of text below the carousel -->
      <div class="row">
		<h2 class="text-center" id="carTitle"><%= bean.getName() %> 차량 선택</h2>
		<div class="col-xs-1 col-md-1"></div>
    	<div class="col-sm-5">
    		<img src="img/<%= bean.getImg() %>" id="infoImg">
    	</div>
    	
    	<div class="col-sm-5">
    		
    		<table class="table">
    			<tr>
    				<th>차량이름</th>
    				<td><%= bean.getName() %></td>
    			</tr>
    			<tr>
    				<th>차량수량</th>
    				<td>
    					<select class="form-control" name="qty">
    						<option >1</option>
    						<option>2</option>
    						<option>3</option>
    					</select>
    				</td>
    			</tr>
    			<tr>
    				<th>차량분류</th>
    				<td><%= temp %></td>
    			</tr>
    			<tr>
    				<th>대여가격</th>
    				<td><%=bean.getPrice() %>원</td>
    			</tr>
    			<tr>
    				<th>제조회사</th>
    				<td><%= bean.getCompany() %></td>
    			</tr>
				<tr>
    				<td colspan="2" class="text-center"><input type="submit" class="btn"  value="옵션 선택후 구매하기"></td>
    			</tr>
    			
    		</table>
    			
    	</div>
    	<div class="col-xs-1 col-md-1"></div>	
	</div>      
	
  <hr class="divider">
  <div class="row">
  <h3 class="text-center">차량 정보 보기</h3>
  <p  class="text-center"><b><%= bean.getName() %></b> 자동차 입니다.</p>
  </div>

</div>

 

 

Header.jsp

CSS 변경 및 추가


#infoImg:HOVER{
	cursor:pointer;
	-webkit-transform:scale(1.2);
    -moz-transform:scale(1.2);
    -ms-transform:scale(1.2);   
    -o-transform:scale(1.2);
    transform:scale(1.3);
    
}

@media  screen and (min-width:200px) and (max-width:500px) {

	#infoImg{
		max-width:200px;	
		box-shadow: 5px 5px 3px #aaaaaa; 
	}
	
}
@media  screen and (min-width:501px) and (max-width:1568px) {


	#infoImg{
		max-width:400px;	
		box-shadow: 5px 5px 3px #aaaaaa; 
	}
	
}

 

 

 

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

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

 

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

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

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

 

 

유튜브 동영상 출처 :

소프트캠퍼스

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

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

 

 

 

about author

PHRASE

Level 60  라이트

군주는 여우와 사자를 겸비해야 한다. 사자는 스스로 함정을 막을 수 없고, 여우는 이리를 막을 수 없다. 따라서 함정의 단서를 알기 위해서는 여우가 되고, 이리를 도망가게 하기 위해서는 사자가 되지 않으면 안 된다. -마키아 벨리

댓글 ( 4)

댓글 남기기

작성