🔆지시자 문서 전반에 적용되는 설정 import, 인코딩, taglib등 페이지 전반에 걸치는 설정 적용 page지시자, include 지시자, taglib 지시자 3종류가 있다. 아래 사진처럼 자바에서 쓰이는 클래스를 import하고 톰캣에서 변환한 java파일을 함께 보겠습니다. 만약 아래 텍스트 파일을 왜 보는지 모르신다면 이 글부터 꼭 읽고 오세요!
>><<
위의 사진에처럼 페이지 전반에 영향을 미치는 영역이 지시자입니다.
🔆선언부 필드변수 및 메서드를 선언하는 부분입니다. 선언부에서 정의되는 변수와 메서드는 새로 컴파일될때까지 값이 유지됩니다. 새로 컴파일된다는 기준은 servlet이 해당 요청에대해 기존 파일의 변화가 있을 경우 새로 작업을 수행하여 response할때 입니다.
아래의 사진은 지시부에서 import한 클래스를 사용하여 새로운 객체를 생성하는 부분입니다. 해당 객체와 메서드들은 이 페이지가 유지되는 동안에 값과 기능을 유지합니다. 이는 스크립틀릿과 반대되는 특성입니다! 참고로 선언부에서는 request라는 내장객체로 파라미터를 가져올 수 없습니다.파라미터는 매번 값이 바뀌기 때문이죠. 🔆스크립틀릿 service 함수 내부의 내용을 작성합니다. 이 구역에서 생성하는 변수는 지역변수의 특징을 갖습니다. 또한 Main클래스 내부 함수라고 생각하면 편합니다. 새로고침을하거나 새로 페이지를 불러올때 스크립틀릿은 매번 새로 내부에 있는 값들을 불러옵니다. 왜 스크립틀릿은 항상 새롭게 값을 가져올까요? 같은 페이지에서 요청이 들어와도 다수의 사람들이 각기 다른 값을 입력하여 다른 처리를 받아야하기 때문입니다. request는 scriptlet에서 참조할 수 있고, 선언부에서는 참조할 수 없다. 물론 표현식에서도 가능합니다. 아까 말했던 선언부와의 차이점이 이것입니다. 📌선언부와의 차이점 : 새로 불러올때마다 값이 초기화된다. request 내장객체를 사용할 수 있다.
위 사진은 jsp에서 스크립틀릿과 자바파일로 변환된 파일의 내용입니다. 서비스에서 이러한 내용을 처리합니다.
🔆표현식 자바 변수의 값을 화면에 출력합니다. .out.print()와 동일한 기능입니다.