본문 바로가기
국비과정/Backend

국비 72일차 - [JSP] JSP 요소(지시자, 선언문, 스크립트릿, 표현식 태그), Git 웹프로젝트 인식 방법

by Jeong.dev 2022. 7. 8.

■ 수업 파일

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으로 설정

댓글