Skip to content

SeoSiun/be-was

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-was-2023

Java Web Application Server 2023

프로젝트 정보

이 프로젝트는 우아한 테크코스 박재성님의 허가를 받아 https://github.com/woowacourse/jwp-was 를 참고하여 작성되었습니다.

요구사항

step1 - index.html 응답

  • 정적인 html 파일 응답

  • HTTP Request 내용 출력

    • 서버로 들어오는 HTTP Request 내용을 읽고 log.debug로 출력
  • 기존 Thread 기반 프로젝트를 Concurrent 패키지를 사용하도록 수정

step2 - GET으로 회원가입

  • '회원가입' 클릭시 회원가입 폼 표시
  • 회원가입 폼에서 '가입' 클릭시 전달되는 사용자 입력값을 파싱해 model.User 클래스에 저장
    • HTML과 URL을 비교 후 파싱할 것
    • 유지보수가 편하도록!
  • Junit을 활용한 단위테스트

step3 - 다양한 컨텐츠 타입 지원

  • html, css, js, ico, png, jpg 확장자를 지원해야 한다
  • static 폴더 내의 정적 콘텐츠에 대한 요청이 정상적으로 처리되어야 한다

step4 - POST로 회원 가입

  • 회원가입 POST로 수정!
    • user/form.html 파일의 form 태그 method를 post로 수정
    • body에서 인자 읽어오기
  • 가입 완료시 index.html 페이지로 리다이렉트
    • HTTP redirect 기능 구현하기
    • statusCode 302로 설정

step5 - 쿠키를 이용한 로그인

  • 로그인 메뉴 클릭시 user/login.html로 이동해 로그인할 수 있음
  • 로그인 성공 시
    • DataBase에 저장된 유저의 아이디, 비밀번호와 같은지 확인하여 성공여부 판단
    • index.html로 리다이렉트
    • 헤더의 쿠키 값을 SID=[세션 ID]로 응답
      • 세션 ID는 랜덤한 숫자 또는 문자열 (UUID로 구현)
      • 세션 아이디에 해당하는 유저 정보에 접근 가능해야한다.
  • 로그인 실패 시 user/login_failed.html로 리다이렉트

step6 - 동적인 HTML

  • 동적인 html 구현
    • 로그인 상태인 경우 (Cookie 헤더에 있는 sid의 유저가 존재하는 경우?)
      • /index.html에서 사용자 이름을 표시
      • /user/list에서 사용자 목록 출력
    • 로그인 상태가 아닌 경우
      • /index.html에서 '로그인' 버튼을 표시
      • /user/list 페이지 접근시 로그인 페이지(login.html)로 리다이렉트

학습할 내용

step1 - index.html 응답

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 55.3%
  • HTML 38.9%
  • CSS 5.6%
  • JavaScript 0.2%