-- Index --
1. JSP | 2. 스크립틀릿 | 3. 스크립틀릿 활용 |
Java Server Page | 자바코드로 처리 | 스크립틀릿/지시자/표현식/선언부 |
1. JSP - Java Server Page
1-1 jsp란?
서블릿을 이용하여 - 데이터 받아오고 / 데이터 처리하고 하는 건 자바 코드여서 괜찮았지만
화면을 보여주는 방식(웹문서를 만드는방식)에서 번거롭고 out.println() 에 한 줄 한 줄 쳐야 됐었다.
이 부분만 좀 개선되면 좋을 텐데 해서 나온 것이 JSP!
Java Server Page
화면 보여주는데 편리하게 해 주기 위해서 모든 내용 한 줄 한 줄 읽어와서 out.println() 이용해서 보여준다.
1-2 jsp 파일의 특징
#1. 한 줄 한 줄이 out.println() 에 있는 것처럼 실행된다!
#2. JSP가 사실은 Servlet 이다!
#3. java코드로 바뀌어서 실행이 된다.
보는 형식이 웹 문서랑 똑같네? - 사실 java 코드다.
#4 jsp파일 안에서 java코드도 편하게 사용 가능하다.
<% %> 스크립틀릿을 활용하여 java코드와 HTML 코드를 동시에 작업 가능
HTML 언어를 사용하기 편하고, java코드까지 활용 가능한 - JSP
2. 스크립틀릿
2-1 스크립틀릿의 기능
- jasper라는 애가 jsp파일을 java파일로 바꿔주는데
- 일반 문자들은 println()에 넣어서 java파일로 바꿔주고
- 특별하게 표시된 애들 = 스크립틀릿으로 표시된 애들
- <% %> <%= %> <%@ %> 이런 애들은 규칙에 맞춰서 바꿔준다.
- 내가 특별하게 표시해준 것들은 println()으로 처리되지 않고 java코드로 처리해주는 것이
- JSP - 스크립틀릿
2-2 JSP파일 - jasper로 변환된 - java파일 살펴보기
#경로 확인
- 우리가 만든 프로젝트를 tomcat에 올리니까 tomcat에 있는데 경로가 조금 다르다.
내가 만든 jsp 파일이 변환되어있다.
사람은 java파일로 확인
컴퓨터는 컴파일된 class 파일로 실행
java파일 살펴보면 우리가 만든 jsp파일의 내용들이 잘 들어가 있다.
_jspService() 메서드 안쪽에 내가 입력한 내용 다 들어가 있다.
3. 스크립틀릿 활용해보기
- _jspService() 메서드 안쪽에 내가 입력한 내용 다 들어가 있다.
3-1 <% %>
- 스크립틀릿
- 다른 것들은 다 out.write() 로 처리되었는데,
- <% %> 사이에 입력해준 것들은 – 그냥 그대로 java코드 그대로 유지되는 것 확인
3-2 <%= %>
- 표현식
- out.print() 로 처리되길 원할 때 사용
- 변수에 담겨있는 거 그대로 화면에 출력되길 원할 때 사용
3-3 <%! %>
- 선언부
- 메서드나 멤버 함수 등을 선언할 때 사용
- service() 메서드의 바깥쪽에 작성된다.
- 그냥 <% %> 해주었으면 service 메서드 안에 있을 텐데
- 메서드 안에서 메서드 선언하는 것은 안된다.
- 따라서 service 메서드 바깥쪽에 만들면 좋겠다는 의미로 <%! %> 느낌표를 붙여준다.
- 바깥쪽에서 할 수 있는 작업 [ 멤버변수 만들어주거나 함수 선언 등의 작업 ] 도 가능하다.
3-4 <%@ %>
- 지시자
- @page - 페이지의 속성을 정의할 때 사용
- @include - 페이지에 파일을 첨부할 때 사용
#
<%@ page %> --- language / contentType / pageEncoding / errorPage 지정 가능
#
<%@ inlcude %> -- file
- 헤더와 푸터 파일 만들어놓고<%@ include file=" " %> 활용하여 페이지에 보이게 해 주기
- 다만 불필요한 정보까지 다 들어오게 되므로 이런 정보는 삭제해주기 ( <meta>, <title> 등 )
- inclue는 경로에 있는 애를 컨트롤 C 컨트롤 v 하는 느낌
+@ tip --- jasper가 파일을 변경해주는 타이밍은 클라이언트로부터 요청이 들어왔을 때
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 7월' 카테고리의 다른 글
22.07.21 - [ WAS ] doPost(), doGet(), forward(), setAttribute() (0) | 2022.07.29 |
---|---|
22.07.20 - [ 8차 시험! - 요구사항 확인 ] (0) | 2022.07.28 |
22.07.18 - [ WAS ] 절대경로, @WebServlet, req-resp (0) | 2022.07.28 |
22.07.15 - [ WAS ] Servlet { 개요, 만들기, 흐름파악, data 얻기/표현하기 } (0) | 2022.07.22 |
22.07.14 - [ WAS ] WS vs WAS, tomcat 사용해보기 (0) | 2022.07.21 |