본문 바로가기

교재 실습/자바 웹 프로그래밍 Next Step95

3.4.3.5 요구사항 5 - 로그인하기 "로그인" 메뉴를 클릭하면 http://localhost:8080/user/login.html 으로 이동해 로그인 할 수 있다. 로그인이 성공하면 /index.html로 이동하고, 실패하면 /user/login_failed.html로 이동해야 한다.앞에서 회원가입한 사용자로 로그인할 수 있어야 한다. 로그인이 성공하면 쿠키를 활용해 로그인 상태를 유지할 수 있어야 한다. 로그인이 성공할 경우 요청 헤더의 Cookie 헤더 값이 logined=true, 실패하면 logined=false로 전달되어야 한다. HINT 1단계· 로그인 성공시 HTTP 응답 헤더(response header)에 Set-Cookie를 추가해 로그인 성공 여부를 전달한다. · 응답 헤더의 예시HTTP/1.1 200 OK Conten.. 2025. 2. 2.
3.4.3.4 요구사항 4 - 302 status code 적용 "회원가입"을 완료하면 /index.html 페이지로 이동하고 싶다. 현재는 URL이 /user/create 로 유지되는 상태이기 때문에 응답으로 전달할 파일이 없다. 따라서 회원가입을 완료한 후 /index.html 페이지로 이동한다. 브라우저의 URL도 /user/create가 아니라 /index.html로 변경해야 한다. HINT· HTTP 응답 헤더의 status code를 200이 아니라 302 code를 사용한다. · http://en.wikipedia.org/wiki/HTTP_302 문서 참고참고도서 : https://roadbook.co.kr/169 [신간안내] 자바 웹 프로그래밍 Next Step● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ●.. 2025. 2. 1.
3.4.3.3 요구사항 3 - POST 방식으로 회원가입하기 http://localhost:8080/user/form.html 파일의 form 태그 method를 get에서 post로 수정한 후 회원가입이 정상적으로 동작하도록 구현한다. (예시) HTTP Header와 BodyPOST /user/create HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 59 Content-Type: application/x-www-form-urlencoded Accept: */* userId=javajigi&password=password&name=JaeSungHINT· POST로 데이터를 전달할 경우 전달하는 데이터는 HTTP 본문문에 담긴다. · HTTP 본문은 HTTP 헤더 이후 빈 공백을 가지는 .. 2025. 2. 1.
3.4.3.2 요구사항 2 - GET 방식으로 회원가입하기 "회원가입" 메뉴를 클릭하면 http://localhost:8080/user/form.html 으로 이동하면서 회원가입할 수 있다.회원가입을 하면 다음과 같은 형태로 사용자가 입력한 값이 서버에 전달된다. /user/create?userId=javajigi&password=password&name=JaeSung&email=javajigi%40slipp.net HTML과 URL을 비교해보고 사용자가 입력한 값을 파싱(문자열을 원하는 형태로 분리하거나 조작하는 것을 의미)해 model.User 클래스에 저장한다. (예시) HTTP HeaderGET /user/create?userId=javajigi&password=password&name=JaeSungHTTP/1.1HINT· HTTP 요청의 첫 번째 라인에.. 2025. 2. 1.
3.4.3.1 요구사항 1 - index.html 응답하기 앞에서 설치한 HTTP 웹 서버에 접속하면 어떤 URL로 접속하더라도 "Hello World" 문자열만 출력하고 있는데, http://localhost:8080/index.html로 접속했을 때 webapp 디렉토리의 index.html 파일을 읽어 클라이언트에 응답한다.  (예시)HTTP HeaderGET /index.html HTTP/1.1Host: localhost:8080Connection: keep-aliveAccept: */*HINT 1단계· InputStream을 한 줄 단위로 읽기 위해 BufferedReader를 생성한다.  -> 구글에서 "java Inputstream bufferedreader"로 검색 후 문제 해결 · BufferedReader.readLine() 메서드를 활용해 라.. 2025. 1. 31.
3.4.3 실습 요구사항 실습 과정은 요구사항 전체를 한 번에 제시하지 않고 요구사항 하나를 제시하고 문제를 해결하면 다음 요구사항을 제시하는 방식으로 진행한다. 반드시 요구사항을 해결한 상태에서 다음 단계로 진행해야 다음 요구사항을 해결할 수 있는 구조로 되어 있다.참고도서 : https://roadbook.co.kr/169 [신간안내] 자바 웹 프로그래밍 Next Step● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ● 정가: 30,000원 ● 발행일: 2016년 9월 19일 ● ISBN: 978-89-97924-24-0 93000 [강컴] [교보] [반디] [알라딘] [예스24] [인터파크] [샘roadbook.co.kr 2025. 1. 30.
3.4.2 실습 환경 세팅 및 소스코드 분석 실습으로 진행할 HTTP 웹 서버는 로컬 개발 환경을 세팅한 https://github.com/slipp/web-application-server 저장소의 master 브랜치에서 시작하면 된다. webserver.WebServer를 실행한 후 브라우저에서 http://localhost:8080 으로 접근했을 때 "Hello World" 메시지가 출력되면 실습할 수 있는 준비가 끝났다. 실습으로 진행할 HTTP 웹 서버의 핵심이 되는 코드는 webserver 패키지의 WebServer와 RequestHandler 클래스이다. WebServer 클래스는 웹 서버를 시작하고, 사용자의 요청이 있을 때까지 대기 상태에 있다가 사용자의 요청이 있을 경우 요청을 RequestHandler 클래스에 위임하는 역할을 .. 2025. 1. 29.
3.4.1 실습 전 사전 학습 및 친구 찾기 HTTP 웹 서버를 직접 구현하기 위해 사전 준비를 한다. 실습 시작 전, 자바의 스레드(Thread), 입출력 스트림(Input/Output Stream)에 대한 지식이 부족하다고 생각한다면 다시 한 번 자바 책을 참고해 학습한 후 실습을 진행할 것을 추천한다.현재 자신의 수준과 역량에 따라 명확히 구분하기 힘들겠지만 대략적으로 구분해 어떤 방식으로 실습하는 것이 좋은지 추천해본다. · 자바 문법이 익숙하지 않고, 자바 기반 웹 애플리케이션 개발 경험은 책을 따라하면서 구현한 수준이라면 이 실습은 혼자 진행하기 힘들 가능성이 높다. 이 경우 경험 많은 선배 개발자나 수준이 비슷한 친구와 같이 짝 프로그래밍으로 실습을 진행한다. · 웹 개발 경험이 없더라도 자바 문법이 친숙하다고 생각하는 개발자는 혼자 .. 2025. 1. 28.
3.3.4 리눅스, 터미널과 친해지기 리눅스 환경과 친해지려면 먼저 터미널 환경에서 작업하는 것에 대한 두려움을 없애야 한다. 두려움을 없애는 가장 좋은 방법은 리눅스 환경에 자주 접속해서 무엇이라도 해보는 경험을 하는 것이다. 로컬 개발 PC를 맥 운영체제로 하는 것도 리눅스 환경에 익숙해질 수 있는 한 가지 방법이다. 반드시 맥 운영체제가 아니더라도 최근 클라우드 서비스가 많아지면서 무료로 사용할 수 있는 리눅스 서버도 있기 때문에 의지만 있다면 얼마든지 무료로 학습 가능하다. 클라우드 서비스의 경우 서버에 무슨 짓을 해도 다른 사용자에게 영향을 미치지 않기 때문에 마음껏 가지고 놀면 된다. 가지고 놀다 뭔가 문제가 있으면 서버를 삭제하고 새로운 서버를 생성해 처음부터 다시 시작하면 된다.리눅스 환경이 막막한 이유 중의 하나는 마우스를 .. 2025. 1. 27.