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)
댓글 남기기