세크레투스 2023. 9. 1. 09:03
반응형
SMALL

<<복습>>

~ 9/5 : JSP&Servlet

9/6 ~ 9/22 : 스프링(Spring)

9/22 : 시험

 

1. Servlet의 주요역할?

- 클라이언트에서 보내는 주요정보(url-get, body-post 등)를 추출해서 가공하는 역할

- GET : url상에서 노출이 되고, 길이에 제한을 받는다. -> 이름=값&이름=값...

- POST : body에 주요정보가 들어감. -> 이름=값&이름=값...

- 이름=값&이름=값... : form encoding -> default값임

- 바이너리 데이터가 추가 : 다른 인코딩 방법을 취해야 함.

- String           = request.getParameter(이름)

1) 정보 추출 (폼 데이터를 추출하기)

2) input type="text" name="            " value ="            "

3) 사용자가 데이터를 입력 안하는 경우엔 어떻게 넘어가는지 알아야 함

* input type = "text" 인 경우에는 값이 입력되지 않아도 넘어감. : 비어있는 문자열("") 리턴됨.

* input type = "checkbox" 인 경우에는 값이 입력되지 않으면 넘어가지 않음. : null이 리턴됨.

* null이 리턴된 경우 체크해야 할 것 : 1. 오타체크(name이 일치하는지) 2. 체크박스에 값이 입력되지 않았는지

4) 에러가 났을 때 체크해야 할 것 : 1. 예외메세지, 2. 나의 코드 찾기(보통 스텍트레이스 위쪽에 우리 코드가 있음)

5) URL 관리 : 서블릿의 url은 어노테이션에서 결정함.

* 컨텍스트명 뒤에 웹 서블릿 url이 붙음.

* 컨텍스트명은 기본적으로 프로젝트명으로 세팅됨. (필요하다면 변경 가능)

* jsp의 url : 파일경로

* url은 대소문자를 구분함. -> 그래서 원칙을 주는 것이 좋다. 예를 들어서 url은 무조건 소문자로만 작성..

 

form 제시 -> submit에서 서블릿으로 보냄 -> 정보추출 -> 출력 -> jsp로 보냄 -> 내용을 보여줌.

 

 

<<본 수업>>

파일 명 지을 때 : 대상_작업의 종류(create, read, update, delete)

ex) travel_add

 

<ServletConfig API 를 활용한 초기화 파라미터 사용>

1. 서블릿 초기화 시 공통적으로 적용하는 작업

- 파일 업로드 디렉토리 설정

- JDBC 설정 정보(드라이버, 계정 등)

- 서블릿 코드에 적지 않고 web.xml에 설정

- 설정 변경되더라도 소스 재 컴파일 필요 없음

 

2. 초기화 파라미터

- web.xml에 저장되는 초기화 설정 값

- ServletConfig API로 접근

- 여러 서블릿에서 공유하는 것이 아니고 등록된 서블릿에서만 접근 가능

- @WebInitParam 어노테이션 이용 가능

3. @WebInitParam 어노테이션을 이용한 초기화 파라미터 등록

- @WebServlet 어노테이션 내에 initParam 속성에 @WebInitParam 어노테이션으로 지정

 

<ServletContextAPI>

1. ServletContext

- 웹 어플리케이션마다 하나씩 생성되는 객체 -> 어플리케이션 객체

- 다수의 JSP, 서블릿에서 공유 가능

- 웹 어플리케이션과 Life Cycle이 일치 -> application scope

 

2. Scope

- 설정된 데이터를 인식 가능한 범위

 

* Context : 문맥, 상황

* Tomcat에는 여러 서버가 올라올 수 있음. (chapter02, chapter03 ... test 등..)

3. ServletConfig API

- 1개의 서블릿에만 영향을 미침 VS ServletContext API - 다수의 서블릿에서 영향을 미침

4. ServletContext API의 변수

- life time

- access scope

- 톰캣이 기동될때 생성되고, 종료될때 사라짐.

5. JSP/Servlet의 Scope

- Application scope (지금 배우는 내용)

* 어플리케이션의 Life Cycle과 동일한 범위

* 웹 어플리케이션이 존재하는 동안 모든 서블릿과 JSP에서 접근 가능

* ServletContext 객체

- Session scope

* 브라우저의 Life Cycle과 동일

* 브라우저가 처음 요청을 보낸 시점에서 브라우저가 닫힐 때까지 범위

* 로그인 구현시 이용

* HttpSession 객체

- Request scope

* 브라우저에서 요청하고 서버에서 응답하는 범위

* HttpServletRequest 객체

* 한 개의 요청보냈을 때 관리되는 scope임

- Page scope

* 현재 브라우저에 보여지는 웹 페이지 자체

* this 키워드

* 하나의 요청에 대해서 여러 페이지가 관여를 해서 응답을 할 때 운영되는 정보

* 페이지가 바뀌면 사라짐

6. ServletContext 객체의 핵심 기능

- 여러 서블릿에서 사용가능한 초기화 파라미터 사용 -> 컨텍스트 파라미터

- 서블릿에서 파일 접근 가능 - 읽기 모드만 가능

- Application scope에 해당하는 속성을 저장, 조회

- 서블릿의 getServletContext() 메서드로 추출

ServletContext sc = getServletContext();

- setAttribute : 관리 요청 ==> getAttribute : setAttribute를 꺼내서 관리

- (application, session, request, page) scope 모두 setAttribute와 getAttribute를 사용함.

- setAttribute의 첫번째 파라미터값 name은 String 타입이고, 두번째 파라미터값 value는 Object 타입이다.

 

7. 컨텍스트 파라미터 설정

- web.xml에 설정

 

8. 어플리케이션의 Life Cycle

- Tomcat 컨테이너가 시작될 때 웹 어플리케이션 초기화

- Tomcat 컨테이너가 종료될 때 웹 어플리케이션 제거

 

9. 웹 어플리케이션의 초기화, 제거 이벤트 감지

- ServletContextListener API

- 언제 초기화되고 제거 되었는지 쉽게 파악

- 예) JDBC의 Pooling 기법 (Connection 관리)

* 웹 어플리케이션 시작 시 Pooling 활성화

- contextInitialized(event) : 기동 시 호출

- contextDestroyed(event) : 종료 시 호출

* getServletContext() : 서블릿 메서드, 서블릿이 아닌 곳에서는 사용할 수 없음. -> ServeltContextEvent를 통해서 서블릿이 아닌 곳에서 데이터를 받을 수 있다.

 

<Filter API>

1. Filter

- 서블릿이 요청 받기 전과 결과를 웹 브라우저에 응답하기 전에 특정 작업을 수행할 수 있도록 지원

- 선처리 작업(pre-processing) : 요청 필터(Request Filter)

* 웹 컴포넌트가 실행되기 전에 수행

- 후처리 작업(post-processing) : 응답 필터(Response Filter)

* 응답되기 전에 작업을 수행

- 다수의 Filter를 체인으로 연결 가능

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		//선처리
		System.out.println("MyFilter 요청필터 코드작업");
		request.setCharacterEncoding("UTF-8");
		
		chain.doFilter(request, response);
		//후처리 - doFilter 뒤에 있는 것은 doGet과 doPost 작업 이후에 이뤄짐.
		System.out.println("MyFilter 응답필터 코드작업");
	}

 

<url-pattern의 개요>

1. 확장자 패턴

- *.확장명

- 주의사항 : /으로 시작하면 안됨

- Spring, Struts, Struts2 등의 프레임워크에서 많이 사용하는 방법

 

<서브릿과 JDBC 연동>

 

<커넥션 풀(Connection Pool 기능)>

1. Tomcat

-> 이번에 사용되는 Tomcat 라이브러리는 톰캣설치폴더 - lib 에 있는 tomcat-dbcp.jar 파일 안에 있다.

 

<JSP의 개요>

1. JSP(Java Server Page)

- 태그 기반의 웹 컴포넌트로서 

2. JSP 동작 3단계

- 변환 단계

* 요청된 JSP 파일은 파일명_jsp.java 파일명을 가진 서블릿으로 변환

- 컴파일 단계

* 변환된 서블릿을 컴파일하는 단계

* 컴파일 에러가 발생하면 변환되지 않음

* 파일명_jsp.class 형식의 파일 생성

- 실행 단계

* 컴파일 된 파일명_jsp.class 파일을 실행시키는 단계

- 생성, 수정때 위와 같은 작업을 거침.

 

3. 서블릿과 JSP 비교

4. JSP 스크립팅 요소

- JSP 페이지가 서블릿으로 변환시 JSP 엔진에 의해 처리

 

5. 주석 태그

- JSP 페이지 주석

<%-- --%>

 

6. JSP 지시어(Directive tag)

- 해당 페이지를 어떻게 처리할 것인지에 대한 설정 정보를 지시하는 용도

 

7. page 지시어

- <%@ 속성명="속성값" 속성명2="속성값2"%>

 

8. include 지시어

- 현재 페이지에서 다른 html 및 jsp 페이지를 삽입할 수 있는 방법 제공

- 각 페이지마다 공통적인 내용을 가지는 경우 매번 작성하지 않고 삽입

- footer, header, side 영역의 공통 내용 처리

 

<정적, 동적 개념>

- 정적 : 동작하지 않는 파일

- 동적 : 변수를 이용해서 동작하는(변화하는) 파일

 

9. JSP 선언 태그(Declare tag)

- 자바의 멤버 변수와 메서드를 선언할 때 사용

 

10. 내장 객체

 

반응형
LIST