DAY_053[국비] 자바 웹프로그래밍 과정

Bona의 블로그 입니다.·2022년 12월 15일
0

국비과정

목록 보기
53/99

 ☃️ Day 053 

  • ShoppingMall(2)

 🎄 import 

  • jstl
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

  • include
    파일 위치 잘 보고 입력하기
    <%@ include file="header.jsp" %>
    <%@ include file="footer.jsp"%>


 🎁 DBCP입력 소스 

  • (한 줄 코드임 복사해서 붙여넣기)
    <Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxIdle="10" maxTotal="20" maxWaitMillis="-1" name="jdbc/myoracle" password="tiger" type="javax.sql.DataSource" url="jdbc:oracle:thin:@127.0.0.1:1521:xe" username="scott" />
  • (이클립스 Project Explorer)server폴더 > server.xml > 아래쪽에 sourse탭을 클릭해서 가장 아래로 내려가서 ...
    > 태그 'context docbase 이번 프로젝트폴더이름’ 찾기 > 단일 태그를 닫는 태그로 바꾸고 > 그 사이에 위의 코드를 복사해서 붙여넣기

  • TIP : Ctrl + Shift + F키 (자동개행)
    태그 찾기 힘들 때 사용하면 찾기 편해짐



 🎁 header.jsp > main.jsp > footer.jsp 

  • header와 footer를 include해서 사용하고 중간의 main부분만 바꿔서 페이지를 만든다.



 🎁 header.jsp 



 🎁 footer.jsp 



 🎁 main.jsp 



 🎁 css/shopping.css 

  • 이번 프로젝트 파일에서 사용하는 css를 한 파일에 정리
    다음 프로젝트 폴더에서도 그대로 사용할 예정

  • 더 길어질 수도 있음



 🎁 추가 : IndexAction 

  • 신상품과 베스트상품을 조회해서 main.jsp로 가져가는 코드 추가



 🎁 ProductVO 

  • Dto대신 VO라고 쓰기도 한다.



 🎁 ProductDao 



 🎁 Dbman 

  • DB매니저 연결 방식이 약간 바뀜 (과부하 방지)

  • 데이터베이스 커넥션 풀(DBCP)
    : DB가 필요할 때마다 접속을 했다가 끊었다가 하는 것이 아니라
    미리 일정 개수의 Connection을 Pool에 저장하고 있다가
    필요할 때 (pool에서) 꺼내서 사용하도록 하는 것

  • 맨 위에 DBCP입력 소스 넣기 참고



 🎁 member/login.jsp 

  • header, footer는 똑같이 include해서 사용 다만 login.jsp보다 상위 폴더에 있으므로 '../'를 붙여서 상대경로를 정확히 적을 것!!

  • 사이드 메뉴도 여러번 사용해야 하므로 sub_image_menu.html로 만들어서 include해서 사용한다.



 🎁 member/sub_image_menu.html 

  • 왼쪽 사이드에 위에서 아래로 보여지는 사이드 메뉴
  • 사이에 include해서 사용하는 파일이기 때문에 html파일로 만듦



 🎁 member/member.js 

  • 이번 프로젝트 폴더에서 사용할 js파일은 2개
  • member.js는 member와 관련된 Javascript함수만 정리한 파일



 🎁 LoginAction 

  • 리턴 상황이 하나 더 추가 되었음 (휴면계정일 경우)



 🎁 MemberVO 

  • 지금까지 만들었던 MemberDto와 거의 비슷하다.
    필드 몇 개가 더 추가되었다 (휴면계정 여부, 우편번호, 주소1, 주소2)



 🎁 MemberDao 

  • 지금까지 만든 MemberDao와 거의 비슷



 🎁 LogoutAction 

  • 지금까지는 logout할 때 session의 Attribute를 전부 지우는 방식을 사용했다.

  • 그러나 이번에는 평소와 다르게 "loginUser"만 지운다.

  • 회원과 관리자를 다른 테이블에 저장하고 따로 관리하고 있는데 만약 동시 접속 (회원과 관리자) 중에 어느 하나가 로그아웃을 하면 접속 중인 다른 사람의 정보도 같이 지워질 수도 있기 때문에

  • 관리자는 회원이 로그인 중에도 (같은 브라우저에서) 접속할 수 있게 하려는 것 같음 (아마도...)



 🎁 ContractAction 

  • 단순히 회원 약관이 있는 곳으로 이동
    : 회원 약관에 동의 해야 회원가입을 할 수 있도록 하기 위해서



 🎁 member/contract.jsp 



 🎁 JoinFormAction 

  • 회원가입 페이지로 이동



 🎁 member/join.jsp 

  • 회원가입을 위해서 데이터를 입력하는 페이지



 🎁 IdCheckFormAction 

  • 입력받은 id를 DB와 비교해서 이미 사용 중인지 아닌지 확인하고 결과를 팝업창으로 보내는 클래스



 🎁 member/idcheck.jsp 

  • id를 중복체크하는 팝업창

  • header와 footer를 include하지 않으므로 직접입력하고
    jstl, css, JavaScript 모두 import해야 함



 ✨ Tip!!! 

  • sql 더 빨리 실행하는 법
    : 명령문이 아주 많은 sql을 이클립스에서 실행하면 너무 오래 걸린다. 이클립스에서 실행하는 것보다 sqlplus에서 sql파일을 실행하면 훨씬 더 빨리 더 많은 명령을 실행할 수 있다.

  • 명령프롬프트 > sqlplus > 로그인
    > @d:\폴더경로\실행할sql파일이름.sql + enter키
    (d는 드라이브 c드라이브에 있으면 ‘c’를 입력)

  • DB에 우편번호를 한 번에 넣어놓고 회원가입을 하거나 주소를 넣을 때 DB에서 찾도록 하기 위해서 address 테이블에 모든 우편번호를 레코드로 추가하는 zip.sql을 실행할 때 사용하면 좋다.
    (DB에서 우편번호를 찾는 것은 옛날방식이지만 DB 연습하기 좋은 방법이다. 새주소는 훨씬 더 많아져서 이 방법은 사용하지 않는다. 정부나 카카오에서 제공하는 API를 사용한다.)





profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글