수업내용/Web 18

[2023.2.14.화] 요청을 보냈을 때 받는 방식

일반 HTTP 요청 보내기 JSP의 실행결과 -> HTML 콘텐츠 응답 redirect:xxxx -> 재요청 URL 응답 1. 링크를 이용해서 서버로 요청 보내기 2. 폼을 submit 시켜서 서버로 요청 보내기 3. location.href의 주소를 대입해서 주소창의 주소 변경시켜 서버로 요청 보내기 4. 선택된 form 엘리먼트에서 submit이벤트를 강제로 발생시켜서 서버로 요청 보내기 서버에서 일반 HTTP 요청 받기 1. 요청파라미터값을 전달하지 않는 요청 받기 LoginUser 같은 건 세션에 저장되어 있기 때문에 요청파라미터 X 2. 요청파라미터값 하나를 요청 받기 요청파라미터로 no값을 함께 요청 매개변수명하고 요청파라미터의 변수가 똑같으면 requestParam 적어도 되고 안적어도됨 다..

수업내용/Web 2023.02.14

[2022.11.28.월] 부트스트랩

1. 중단점 : 반응형 레이아웃 2. 컨테이너 "container" - 정중앙에 위치 3. 그리드 (1) 레이아웃 나누기 헤더부 일정관리 메뉴 대기 일정 진행 일정 등록 현황 일정 현황 오늘 일정을 확인하세요. 순번 제목 우선순위 예정일 100 프로젝트 주제 선정 매우 높음 2022년 11월 28일 100 프로젝트 주제 선정 매우 높음 2022년 11월 28일 푸터부 (2) 메뉴부 나누기 헤더부 메뉴부 콘텐츠 콘텐츠 콘텐츠 콘텐츠 빠른 메뉴부 (3) 칸 나누기 전체 너비 사용 전체 너비 사용 1 of 3 사용 2 of 3 사용 3 of 3 사용 1 of 3 사용 2 of 3 사용 3 of 3 사용 1 of 3 사용 2 of 3 사용 3 of 3 사용 1 of 3 사용 2 of 3 사용 3 of 3 사용 ..

수업내용/Web 2022.11.28

web-todo 관련

1. DAO 클래스에 싱글턴 패턴을 적용함 (Dao, Service 같은 객체는 싱글턴 패턴 적용) - 싱글턴 패턴이 적용된 클래스는 프로그램이 실행되는 동안 오직 한 개의 객체만 생성해서 사용한다. TodoDao 객체를 매 JSP 마다 생성해야 하는데, 한번만 생성하기 - 싱글턴 패턴 public class TodoDao { // TodoDao 클래스가 메모리에 로딩되는 즉시 TodoDao객체를 생성해서 정적변수에 저장한다. (정적변수 -> 메모리에 로딩되는 순간 딱 한번만 객체 생성됨) private static TodoDao instance = new TodoDao(); // 생성자의 접근제한자를 private 설정해서 외부에서 이 객체를 new로 생성할 수 없게 한다. private TodoDao..

수업내용/Web 2022.11.23

[2022.11.21.월] IO 입출력

1. I/O (Input/Output) Stream - 입출력 시 데이터의 흐름 1-1. ByteStream 한 번에 1byte씩 읽거나 쓰는 스트림 텍스트데이터와 바이너리데이터(그림, 영상, 파일)를 읽고 쓸 수 있다. 종류 InputStream 리소스로부터 1byte씩 읽어오는 스트림 주요 메소드 int read() - 1byte씩 읽어서 정수로 반환한다. int read(byte[ ] buf) - 1byte씩 읽어서 byte[ ] 배열에 순서대로 저장하고, 배열에 저장된 개수를 반환한다. void close( ) - 읽기 작업을 위해서 사용했던 컴퓨터의 자원을 반납한다. OutputStream 리소스로 1byte씩 출력하는 스트림 주요 메소드 void write(int value) - 1byte씩 ..

수업내용/Web 2022.11.21

[2022.11.18.금] 서블릿, 첨부파일 업로드

1. 서블릿 1-1. 서블릿 * 서블릿 : 서버에서 실행되는 자바 프로그램 jakarta.servlet.Servlet 모든 서블릿 클래스가 반드시 구현해야하는 인터페이스다. 서블릿의 라이프사이클 메소드가 정의되어 있다. (생성, 구현, 소멸의 과정) 주요 메소드 void init(ServletConfig config) - 서블릿 객체가 초기화될 때 실행되는 메소드다. void destroy() - 서블릿 객체가 폐기될 때 실행되는 메소드다. void service(ServletReuest request, ServletResponse response) - 서블릿 객체가 클라이언트의 요청을 처리할 때 실행되는 메소드다. jakarta.servlet.GenericServlet Servlet 인터페이스를 구현하..

수업내용/Web 2022.11.18

[2022.11.17.목] 장바구니 추가기능, 비밀번호 암호화

1. 장바구니 추가 기능 1) 장바구니에 추가할 때 수량, 가격 변경 * merge into 문 - 하나의 SQL 문으로 INSERT, UPDATE, DELETE 작업을 수행할 수 있다. - 똑같은 행이 존재하면 -> update, 존재하지 않으면 -> insert - carts.xml merge into sample_board_book_cart_items using dual on (book_no = #bookNo# and user_id = #userId#) when matched then update set item_amount = item_amount + 1, item_updated_date = sysdate when not matched then insert (item_no, book_no, use..

수업내용/Web 2022.11.17

[2022.11.16.수] 국내도서, 장바구니

1. 국내도서 리스트, 상세정보 1) sample_board_books 테이블, sample_board_book_cart_items 테이블 추가 CREATE TABLE "SAMPLE_BOARD_BOOKS" ("BOOK_NO" NUMBER(6,0) PRIMARY KEY, "BOOK_TITLE" VARCHAR2(255) NOT NULL, "BOOK_AUTHOR" VARCHAR2(255) NOT NULL, "BOOK_PUBLISHER" VARCHAR2(255) NOT NULL, "BOOK_DESCRIPTION" VARCHAR2(2000), "BOOK_IMAGE" VARCHAR2(100), "BOOK_PRICE" NUMBER(10,0), "BOOK_DISCOUNT_PRICE" NUMBER(10,0), "BOOK..

수업내용/Web 2022.11.16

[2022.11.15.화] 로그인 기능

1. 오라클 database에 sample_board_users 테이블 추가 CREATE TABLE SAMPLE_BOARD_USERS ( USER_ID VARCHAR2(20) PRIMARY KEY, USER_PASSWORD VARCHAR2(20) NOT NULL, USER_NAME VARCHAR2(100) NOT NULL, USER_EMAIL VARCHAR2(255) UNIQUE, USER_DELETED CHAR(1) DEFAULT 'N', USER_CREATED_DATE DATE DEFAULT SYSDATE, USER_UPDATED_DATE DATE DEFAULT SYSDATE ); boards 테이블의 board_writer를 users 테이블의 user_id와 외래키 연결 reviews 테이블의 r..

수업내용/Web 2022.11.15

[2022.11.14.월] HTTP의 쿠키

1. HTTP 특징 브라우저와 웹서버 사이에 교환되는 메시지의 형식을 정의한 프로토콜 요청메시지 브라우저가 웹서버로 보내는 메시지 요청라인(요청방식, 요청URL), 요청헤더(클라이언트 정보), 요청바디(폼입력값)로 구성된다. 응답메시지 웹서버가 브라우저로 보내는 메시지 응답라인(응답코드), 응답헤더(웹서버 정보, 응답콘텐츠 정보), 응답바디(응답콘텐츠)로 구성된다. 무상태(Stateless) 프로토콜 웹서버가 클라이언트의 정보를 유지하지 않는다. 클라이언트가 요청을 보내고, 서버가 요청을 처리해서 응답을 보내고 나면 클라이언트와 웹 서버간의 연결이 끊어진다. (클라이언트와 웹서버가 연결을 유지하지 않는다.) 클라이언트는 요청을 보낼 때마다 클라이언트의 정보(사용자를 식별할 수 있는 정보)를 서버로 보내야..

수업내용/Web 2022.11.14