마트철수
[055] 웹 애플리케이션 프로젝트 + JSP 본문
2024.07.25(목)
JSP, Selvlet 1일차
JSP, selvlet
PART01 시작하기
- CH01.1 웹 애플리케이션 개요
- CH01.2 웹 애플리케이션 프로젝트
PART02
- CH02.3 JSP 문법
PART03
- CH03.1 HTML5 Form 태그화 서블릿
- CH03.2 필터
PART04
- CH04.1 서블릿 고급 - 세션, 쿠키
- CH04.2 요청 포워딩, 리다이렉트
PART05
- CH05 EL, JSTL
- FrontController
CH01.1 웹 애플리케이션 개요
HTTP 클라이언트와 서버
- URL: Uniform Resource Locator (위치 정보로 표현해서 유일하게 구분)
- URI: Uniform Resource Information (유일하게 식별만 되면 됨)
# URI가 더 넓은 개념
HTTP Request
- 요청 라인(Request Line): POST /selvlet/Simple/SimpleServlet HTTP/1.1
- 한 줄로 고정됨
- 요청 헤더(Request Header): 키 : 값
- 수많은 정보를 담을 수 있는 공간
- Content-Type: application/x-www-form-urlencoded
- 요청 본체(Request Body)
- POST, PUT일 때 존재 (GET일 땐 없음)
HTTP Response
- 상태 라인: HTTP/1.1 200 OK
- 200:성공, 300: redirect, 400: 실패
- 응답 헤더
- 응답 본체
- 응답에 필요한 내용 (HTML 문서)
1) statless ...
2) 문자기반 ... 이미지 다운은? binary를 문자로 변환해서 통신해야함(base64 인코딩)
웹 애플리케이션
- 인터넷을 기반으로 구성된 웹상에서 웹 브라우저를 이용한 클라이언트와 HTML (정적 웹 컴포넌트)
JSP/Servlet
- Tomcat이 대신 실행해줌
- 지역 변수로만 운영되면 신경쓰지 X
웹 컴포넌트
- MVN: 모델, 뷰, 컨트롤러 → View는 JSP / Controller는 servlet
CH01.2 웹 어플리케이션 프로젝트
home 링크 넣기
// charset 설정 추가해야 한글 안깨짐
response.setContentType("text/html; charset=UTF-8");
...
// 첫 번째 방법
out.println("<a href = '\'>Home</a>");
// 중간에 " 붙여줄 경우 \ 역슬래쉬 필수
out.println("<a href =\"/\">홈으로</a>");
webapp/WEB-INF/web.xml
: 자체 스키마를 가짐
build.gradle
: dependencies에 입력된 기능들은 lib에 자동 배전됨

연결 페이지
: '/'로 끝나면, 인덱스 파일을 달라 (index jsp 가능한 상태)

- Java 파일의 HelloServlet과 연결됨

- 새로운 프로젝트 생성 시 구현 쉬움

서블릿 아키텍처 및 핵심 API
HttpServletRequest API
- setCharacterEncoding(String encoding): 요청 본문의 문자 인코딩 설정
- getParameter(String name): 요청 파라미터의 값 반환
- getParameterNames(): Enumeration: 모든 요청 파라미터의 이름을 열거형(Enumeration)으로 반환
- getParameterValues(String name): String[ ]
- 동일한 이름의 여러 요청 파라미터 값을 문자열 배열로 반환 (체크박스에 사용)
# 없는 name을 사용하면? null 리턴됨
# getParameter의 리턴값은 String임
→ page = 2 에서 2가 문자열이 됨
→ 근데 나(개발자)는 int로 반환받고 싶음
→ ParseInt 했다가 null이 들어가면 오류 발생
→ 그래서 null 체크하는 습관 중요
서블릿 LifeCycle 메서드
- 서블릿의 인스턴스를 init, service, dextroy 메소드로 관리
- init 메서드: 인스턴스가 처음 실행될 때, 단 한번 호출
- service 메서드: 클라이언트가 요청할 때마다 호출
- destroy 메서드: 인스턴스가 웹 컨테이너에서 제거될 때 호출
- 서블릿 응답 처리
: 클라이언트에서 서블릿으로 요청 - 서블릿은 처리한 결과를 html 형식으로 응답처리
- '문자셋 설정'이 매우 중요함 ... response.setContentType("text/html;charset=UTF-8");
'KB IT's Your Life > 교육' 카테고리의 다른 글
| [057] JSP 그리고 HTML5 Form 태그화 서블릿 (0) | 2024.07.29 |
|---|---|
| [056] 알고리즘: 암시적 그래프 (0) | 2024.07.26 |
| [053] MongoDB JAVA 연동 (3) | 2024.07.23 |
| [052] MongoDB를 이용한 프로그래밍 (4) | 2024.07.22 |
| [051] BFS, DFS (알고리즘 핵심) (0) | 2024.07.19 |