■ 수업 파일
1. 02_JSP/src/main/webapp/views/
- elements : JSP 스크립트 요소
- directive : 지시자 태그
- common : include 지시자 header, footer
- error : 에러 페이지
■ JSP
1. JSP와 Servlet
| Servlet | JSP | |
| 형태 | Java 코드에 HTML 코드 삽입 | HTML 코드에 JAVA 코드 삽입 |
| 특징 | 비즈니스 로직 처리에 적합 | 화면 로직 처리에 적합 |
| 예시 | out.println("<HTML>"); | <% int sum = 0; %> |
2. JSP 실행 과정
1) jsp 파일을 브라우저에 그대로 내려주는 것이 아니다.
(확장자가 .jsp이기 때문에, 웹페이지는 HTML만 해석할 수 있다.)
jsp 파일이 실행되면 서블릿으로 변환해서 서블릿으로 응답한다.
2) 실행 과정
.jsp 페이지에 해당하는 서블릿이 있는지 확인
-> 없으면 .jsp를 자바 파일로 만들고(.java 파일 생성) 자바 파일을 컴파일 한다. (.class 파일 생성)
-> 컴파일 한 클래스 파일을 서블릿으로 만들고 서블릿에서 클라이언트의 요청 및 응답을 처리할 수 있게 한다.
■ JSP 요소
1. 태그 및 표기법
| 태그 | 표기법 |
| 주석(Comment) 태그 | <%-- 주석 --%> |
| 지시자(Directive) 태그 | <%@ 지시자 %> |
| 선언문(Declaration) 태그 | <%! 선언문 %> |
| 스크립트릿(Scriptlet) 태그 | <% 코드 %> |
| 표현식(Expression) 태그 | <%= 표현식 %> |
1) 주석 태그
개발자 도구 요소로 주석 확인 시
<!-- HTML 주석 --> : 보임(주석도 out.write로 넘겨준다.)
<%-- JSP 주석 --%> : 안보임(서블릿으로 변환하는 과정에서 생략)
2) 지시자 태그
- JSP 페이지 전체에 영향을 미치는 정보 기술 시 사용
3) 선언문 태그
- 서블릿 클래스의 필드와 메소드 선언 시 사용
4) 스크립트릿 태그
- _jspService() 메소드의 로컬(지역) 변수와 자바 코드를 작성할 때 사용
* 따라서 private 사용 불가(지역변수는 접근제한자 못쓰니까)

5) 표현식 태그
- 서블릿 코드에서 out.print()의 역할 수행
- 끝에 세미콜론(;) 넣지 않는다
- page : 현재 JSP 페이지를 컨테이너에서 처리하는데 필요한 각종 속성을 기술한다.
- include : JSP 페이지에 다른 JSP 파일 또는 HTML 파일을 포함할 수 있도록 하는 지시자이다.
- taglib : JSP 기능을 확장할 수 있는 사용자 정의 태그를 가져와서 사용할 수 있도록 하는 지시자이다.
■ 실습
1. 프로젝트 생성 시 web.xml 파일 생성

2. JSP 스크립트 요소 (views\elements\index.jsp)
- 스크립트릿 태그로 반복문 작성 시 중간에 끊고 사이에 내용 적어주면 적은 내용 반복 출력된다.
- 표현식 태그에 세미콜론 붙이면 out.print(name;); 과 같이 서블릿에 작성된다.

3. 지시자 태그 (views\directive, common)
1) page 지시자
- language : 스트립트 언어 (생략 가능, 기본으로 자바이기 때문에)

2) inclued 지시자 (header, footer 만들기)
- include 지시자 통해서 헤더랑 푸터 따로 만들어서 다른 페이지에 동일하게 넣을 수 있다.
<%@ include file="/views/common/header.jsp" %>
* /view 의 /는 webapp 페이지임
- 기본 index.jsp 파일 있고 (본문에 해당하는 부분)
common으로 폴더 생성 후 header, footer 따로 빼줘서 공통부분 관리한다.
- 헤더랑 푸터 태그 확인! 헤더는 여는것만, 푸터는 닫는것만


4. 에러 페이지 처리 (views\error)
- 오류 화면 사용자에게 공개되면 안된다. → 보안 상 공격의 대상이 될 수 있고, 내용이 유츄될 수 있다.
1) 에러 페이지에 isErrorPage="true" 표시
-현재 페이지에서 에러 발생하면 errprPage 페이지에서 처리하겠다.

- isErrorPage="true” 생략해도 정상작동 하지만 이거 써야 넘어온 예외 객체를 받을 수 있다.

2) 에러페이지 구분
- error.jsp 는 그 페이지에서 오류가 발생했을 때 보이는 화면이다.
- WEB-INF\web.xml에 작성한 error-page는 그 웹 애플리케이션에서 해당하는 오류 처리 시 그 화면을 보여준다.
3) error404.jsp 페이지
- 이전페이지로 가기 : hestory.go(-1); 또는 hestory.back();
4. 기타
1) 워크스페이스 확인
해당 프로젝트 우클릭 → Properties → Resource → Location 우측 아이콘 선택

2) 톰켓 위에 올라가있는 애플리케이션 삭제하기
톰켓 → Modules → 삭제하고 싶은 애플리케이션 선택 후 Remove

3) 메모
- 실행환경은 was가 한다. (동적)
웹서버는 단순히 파일 찾아서 내려주는 역할만 한다.(정적)
톰켓은 웹서버 컨테이너 역할 두개 다 한다.
- 라이프사이클 : 객체가 생성되어서 소멸될때 까지의 과정
- 웹애플리케이션은 단독으로 실행 못하고 톰캣이 실행시킨다.
톰켓이 웹애플리케이션 정보 가져가서 실행한다.
웹컨테이너 = 톰켓
톰켓이 가져가서 서블릿 매핑, 설정 등 한다.
- web.xml은 설정파일이다
/WEB-INF/web.xml 으로 접근 불가능
WEB-INF 외부에서 접근할 수 없는 영역이다.(클래스파일도 다 들어가 있다.)
- http://localhost:8090/02_JSP/
context : 톰켓에서 실행되는 앱
context path: http://localhost:8090/
context root (톱켓에서 실행할 수 있는 애플리케이션을 찾아갈 수 있는 경로) : 02_JSP/
- jsp 파일이 .java, .class 파일로 변환된 폴더 E:\develop\backend\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\02_JSP\org\apache\jsp\views\directive
■ Git 웹프로젝트 인식 방법
- 다른 사람의 워크스페이스 가져다가 쓸 때 셋팅하는 방법
(다른사름의 워크스페이스 pull 받아서 내 워크스페이스에 mport 및 copy해서 포함시킬 때)
1. 프로젝트 이모티콘 확인
- 기본적으로 웹애플리케이션은 프로젝트 이모티콘에 지구본 모양과 J 있어야한다.
(지구본 : 웹 애플리케이션, J : 자바)
- 다른 사람의 워크스페이스 import 시 지구본 없고 J 모양만 있다.

2. 설정

프로젝트 우클릭 → Properties
→ Project Facets(자바EE 기반의 프로젝트가 어떤 환경에서 이루어질지 설정해주는 곳)
→ configration : Dynaic Web Project With 어쩌구 클릭
→ Dynamic Web Module : 4.0 로 설정
→ Java : 11 로 설정
→ Runtimes : 톰켓 9.0으로 설정
'국비과정 > Backend' 카테고리의 다른 글
| 국비 74일차 - [EL] 내장 객체, 연산자 (0) | 2022.07.12 |
|---|---|
| 국비 73일차 - [JSP] 내장 객체, 영역 객체 (0) | 2022.07.11 |
| 국비 71일차 - [Servlet] 서블릿, 서블릿 생명주기, HTTP 요청 처리 (0) | 2022.07.07 |
| 국비 70일차 - [평가] 요구사항 확인 (0) | 2022.07.06 |
| 국비 69일차 - Git, 웹 통신 개요, 톰켓 다운로드, 이클립스 초기 셋팅 (0) | 2022.07.05 |
댓글