Servlet&JSP

241217 Servlet & JSP 04 - 내장 객체, Action Tag, EL, JSTL

suerte10 2024. 12. 17. 18:07

1. 내장 객체



 

2. Action Tag

1) 액션 태그는 jsp: 라는 접두사가 붙는다.

2) 액션 태그는 반드시 종료하는 태그(혹은 /)가 있어야 한다.

  * include 액션 태그와 지시어 include는 동작 방식에 차이가 있다! 그 외에는 비슷한 기능을 가진다.

브라우저에서 출력되는 화면

 

 

 

3. EL(Expression Language)

1) 자바에서 getter, setter 메서드를 사용해야하는 경우 EL로 표현하는 것이 더 간편하다.

 

 

 

 

4. JSTL(Java Standard Tag Library) 사용하기

*** Maven 프로젝트를 사용하기에 가능한 방법! ***

1) Maven Central 웹페이지 (https://search.maven.org/) 에서 필요한 라이브러리 검색

jakarta.servlet.jsp.jstl 검색

 

2) 라이브러리를 클릭하면 나오는 화면에서 Snippets을 복사한다.

Copy to clipboard 버튼 사용하면 간편하다

 

3) pom.xml 파일에 dependencies 태그를 추가하고, 태그 안에 복사한 dependency 태그 내용을 붙여넣기한다.

 

4) 변경된 pom.xml 파일을 저장한 뒤에 프로젝트를 업데이트 시켜준다.

프로젝트 우클릭 --> Maven --> Update Project 클릭(단축키 Alt+F5)

 

5) Java Resources 아이콘을 클릭하고 Libraries를 클릭해보면 새로 추가된 라이브러리들을 확인할 수 있다.

 

6) Maven 로컬 저장소(C드라이브\사용하는 user 폴더\.m2\repository\...)에서도 파일을 확인할 수 있다.

dependencies 태그에 추가한 라이브러리를 메이븐에서 자동으로 다운로드 받아서 로컬 저장소에 추가해놓은 것을 확인할 수 있다.

 

7) 라이브러리를 사용할 jsp 파일에 directive로 taglib을 추가한다.

  * uri 속성값 : jakarta.tags.core

  * prefix 속성값 : 자유롭게 설정하면 되나, 보통 c를 많이 쓴다.(core를 줄여 쓴 것)

자동완성(ctrl + enter) 기능을 사용했을 때 이렇게 목록이 나와야 제대로 빌드패스가 추가된 것이다.

 

 

 

5. JSTL 활용

1) 태그 안에 taglib에서 설정한 prefix 값을 입력하고 옆에 콜론을 입력

JSTL이 제대로 추가됐다면 사용할 수 있는 태그들의 자동완성 목록을 확인할 수 있다.

 

2) EL과 함께 활용하기

브라우저에서 출력되는 화면

 

* [m] EL을 사용해서 프로퍼티를 호출할 때 getter의 메서드명이 자바의 표준 관습과 다르면  500 오류가 발생한다.

 


※ bean : 자바의 객체를 부르는 다른 이름

  (먹는 콩 맞음, 콩깍지 안에 여러개 알맹이가 들어있는 모습이 연관됨)

 

※ 속성의 값을 설정할 때로 EL을 사용할 수 있다!

 

※ Eclipse에서 jsp 작성할 때 오류 경고 에러 뜨는거 수정하는방법

 

--------------------------------

JSP 동작 원리: WAS 안에서 클래스로 변환이 되고 클래스 안에 있는 jspService 메서드 안에서 JSP에서 작성한 코드들이 자바 코드로 자동으로 변환됨.

 

이클립스는 run on server 명령이 들어왔을 때 아파치 톰캣 폴더에 있는 서버를 실행시킬 수 있는 파일들을 워크스페이스 안에 .metadata --> .plugins --> org.eclipse.wst.server.core 로 복사해서 가져온다.

 

서블릿을 만들면 WAS에는 컴파일된 class 파일이 올라감(바로 객체를 생성할 수 있음)
jsp는 우선 java 파일로 저장한 후 컴파일됨(요청이 오면 객체를 생성)

jsp(java/jakarta server page) : 서블릿을 자동으로 만들어주는 문법(WAS에서 만들어 줌)

 

jspService는 WAS에서 호출함.

 

클라이언트의 요청은 제일 먼저 WAS가 받고 WAS에서 판단해서 적절한 방법으로 실행(JSP, 서블릿 등)

 

scriptlet에 입력한 부분만 자바 코드로 삽입되기 때문에 scriptlet들 사이에 html을 입력해도 상관 없음

(태그 안에 입력하는 것은 안됨(자바 코드 중간에 html이 들어갔으니 에러 발생))