JSP, Orcle을 이용한 쇼핑몰 예제
DB Table 생성
member_info : 사용자 정보 Table
id, pw, name, phonenum, address, class, job
purchase_list : 구매 목록 Table
seq, id, itemname, price, totalnum, p_date
basket_info : 장바구니 정보 Table
id, itemname, price, totalnum
purchase_info : 구매하기 정보 Table
id, itemname, price, totalnum
board_info : 게시판 정보 Table
seq, id, title, content, w_date
item_info : 물품 정보 Table
itemname, price, totalnum
class_info : 회원 등급 정보 Table
class, condition
- Oracle Database에 각각의 테이블을 생성한 후, class_info에 해당 등급에 대한 기준 금액 정보를 insert를 통해 저장합니다.
insert into class_info values('VVIP',2000000); insert into class_info values('VIP',1000000); insert into class_info values('TOP',300000); insert into class_info values('BEST',100000); insert into class_info values('NEW',0);
같은 방법으로 item_info에도 물품 목록 정보를 저장합니다.
insert into item_info values('pants2',990000, 50); insert into item_info values('pants1',345000, 9);
2. 로그인
두 개의 input을 이용해 id, password를 입력받아 로그인을 수행합니다. 로그 아웃을 하게 될 경우 session.invalidate()를 이용해 기존의 사용자 정보를 삭제합니다.
<%session.invalidate(); //로그아웃시 기존의 사용자 정보를 지워준다. %> <body><center> <h1>환영합니다</h1><br/> <form action="login_chk.jsp" method = "post"> ID : <input type = "text" name = "id"><br/> Password : <input type = "password" name = "pw"><br/> <input type = "submit" value = "로그인" name = "login"> <input type = "button" value = "회원가입" name = "join" onclick="openPage('join.jsp')"/> </form> </center> <!--버튼의 onclick을 이용해 함수 openPage를 호출.--> <script type="text/javascript"> function openPage(pageURL) { window.location.href = pageURL; } </script> </body>
로그인 버튼을 클릭하면 login_chk.jsp로 id와 password parameter를 submit하게 됩니다. login_chk에서는 id와 password가 일치하는 데이터를 member_info에서 불러와 확인합니다.
<% //--로그인 구현 부분-- String id = request.getParameter("id"); String pw = request.getParameter("pw"); ora or = new ora(); String sql = "select * from member_info"; or.dbconnection(); ResultSet rs = or.db_select(sql); //select로 member_info table의 모든 정보를 불러온다. while (rs.next()) { String DBid = rs.getString("id"); String DBpw = rs.getString("pw"); String DBname = rs.getString("name"); String DBphonenum = rs.getString("phonenum"); String DBaddress = rs.getString("address"); String DBclass = rs.getString("class"); String DBjob = rs.getString("job");
if(id.equals(DBid)&&pw.equals(DBpw)){
일치하는 데이터가 존재하면 해당 사용자의 정보를 session의 Attribute에 저장합니다.
session.setAttribute("userId", DBid); session.setAttribute("userPw", DBpw); session.setAttribute("userPhonenum", DBphonenum); session.setAttribute("userName", DBname); session.setAttribute("userAddress", DBaddress); session.setAttribute("userClass", DBclass); session.setAttribute("userJob", DBjob);
id나 password가 불일치 할 경우에 메세지를 출력하고 로그인 창으로 복귀합니다. 로그인에 성공할 경우 main.jsp로 페이지가 이동합니다.
}else if(id.equals(DBid)&&!pw.equals(DBpw)){ out.println("<script>alert(\"비밀번호불일치\");history.back();</script>"); }else if(id.equals(DBid)&&pw.equals(DBpw)){ out.println("<script>alert(\"아이디불일치\");history.back();</script>"); } } or.db_close(); if(session.getAttribute("userId")==null){ out.println("<script>alert(\"회원정보가 없습니다\");history.back();</script>"); }else{ response.sendRedirect("main.jsp"); //로그인에 성공시 main.jsp를 호출한다. }
회원가입 버튼을 클릭하면, 사용자의 정보를 입력받고, 저장 버튼을 클릭하여 회원가입을 완료할 수 있습니다. 회원가입 페이지 join.jsp에서 input을 통해 각종 회원 정보를 입력받고 get방식으로 joingo.jsp에 넘깁니다.
<form action="joingo.jsp" type = "get"> id : <input type = "text" name = "id"><br/> password:<input type = "password" name = "pw"><br/> name : <input type = "text" name = "name"><br/> phone number : <input type = "text" name = "phonenum"><br/> address : <input type = "text" name = "address"><br/> <br/> <input type = "submit" value = "저장"> <input type = "reset" value ="초기화"><br/>
joingo.jsp에서는 join.jsp에서 입력받은 정보를 getParameter를 통해 값을 받아오고, sql문을 통해 DB에 저장합니다. sql문을 통해 insert를 수행하고 나면 login화면으로 돌아갑니다.
String id = request.getParameter("id"); String pw = request.getParameter("pw"); String name = request.getParameter("name"); String phonenum = request.getParameter("phonenum"); String address = request.getParameter("address"); String sql = "insert into member_info values('"+id+"','"+pw+"','"+name+"','"+phonenum+"','"+address+"','NEW', 'CUSTOMER')"; ora or = new ora(); or.dbconnection(); or.db_Update(sql); or.db_close(); response.sendRedirect("login.jsp"); %>
















