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">상세보기 »</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">상세보기 »</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 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기