JSP
- JSP는 HTML 페이지를 만들기 위한 방법 중 하나
- JSP는 사용자가 코드를 작성한 다음 컴파일 과정을 거치지 않고 서버에서 실행시킬 수 있다
- JSP는 웹 서버에 의해 서블릿으로 변환된 다음 실행된다
Java Servlets (자바 서블릿)
- 서블릿은 서버에서 실행되는 자바 프로그램이다
- 서블릿이 사용자에 의해 요청되면 서버에서는 HTTP request에 응답하기 위해 웹 서버에서 서블릿 객체를 생성하고 이를 통해 사용자의 요청을 처리한다
웹 프로그래밍을 하기 위해 필요한 학습
- JAVA : JAVA 웹 어플리케이션을 구현하기 위한 선행학습
- HTML : 웹 어플리케이션을 구현하기 위한 툴
- CSS : 웹 어플리케이션의 레이아웃 및 스타일을 지정하는 언어
- JavaScript : 클라이언트의 기능/동작을 구현하기 위한 언어
환경 설정하기
이클립스 설정
- Eclipse 구동
- 상단의 Window 드롭다운 메뉴에서 Preference 선택
- 검색 부분에 enc를 입력하여 encoding이 포함된 세뷰 메뉴들 찾기
- Workspace의 Text File Encoding을 UTF-8로 설정
- 그 외의 메뉴들에 대해서 Encoding을 전부 UTF-8로 설정
아파치 톰캣 설치
- https://tomcat.apache.org/download-90.cgi 해당 링크로 이동
- 9.0.62 버전의 zip파일을 선택하여 다운로드
- 압축 해제해두고 적절한 위치로 옮기기
이클립스에 아파치 톰캣 지정하기
- 이클립스에서 JAVA EE 레이아웃 지정
- 하단이나 좌측 하단의 Servers 창에서 새 서버를 만들고, 적절한 위치에 가져다 놓은 Apache 폴더를 열고 Tomcat v9.0 Server 지정
- Finish 눌러 완료
- Servers 창에 뜬 톰캣 이름을 더블클릭하여 서버 설정 창을 열고, Server Locations 부분에서 두 번째 옵션을 선택. (Use Tomcat Installation)
- Server Options 부분에는 Publish module contexts... 선택
- 우측 부분의 Ports 부분의 HTTP/1.1 포트가 8080으로 되어있는데, 이대로면 포트 충돌로 인해 실행이 안 되므로 (이미 8080포트로 동작하는 프로그램이 있음) 따라서 겹치지만 않게 변경하면 되는데, 여기서는 8181로 변경했다.
- 좌측 하단의 Servers 창에서 재생 버튼을 눌러 서버가 구동되면 설정 완료.
JSP 특징
- 동적 웹 어플리케이션 컴포넌트 (자바 코드 사용 가능)
- .jsp 확장자
- 클라이언트의 요청에 동적으로 작동하고, 응답은 HTML을 이용한다
- JSP는 웹서버와 통신시에 자동으로 Servlet으로 변환된다
- MVC 패턴에서 View로 이용된다
JSP 태그
JSP 태그의 개념 이해
- Servlet은 Java 언어를 이용하여 문서를 작성하고, 출력 객체(PrintWriter)를 이용하여 html 코드를 삽입한다
- jsp는 서블릿과 반대로 html 코드에 java언어를 삽입하여 동적 문서를 만들 수 있다
- html 코드 안에 java코드를 삽입하기 위해서는 jsp 태그를 이용해야 하며, 이러한 태그를 학습해야 한다.
웹 브라우저는 java코드를 분별할 능력이 없으므로 우리가 직접 JSP의 태그를 이용해서 이것이 java 코드라는 것을 알려주어야 한다.
JSP 태그의 종류
JSP 태그 종류 |
생김새 |
특징 |
---|
스크립트릿(scriptlet) |
<% %> |
모든 자바 코드 기술 가능 |
지시자(directive) |
<%@ %> |
페이지 속성을 지정 |
선언자(declaration) |
<%! %> |
변수나 메서드 선언 시 사용 |
표현식(expression) |
<%= %> |
결과 값을 출력할 때 사용 |
주석(comments) |
<%-- --%> |
코드 주석처리 시에 사용 |
실습
프로젝트 생성
- 좌측 상단의 File - New - Dynamic Web Project 선택
프로젝트 이름은 JspBasic으로 생성
- Target Runtime은 Apache Tomcat v9.0
- 프로젝트 생성 후 WebContent 폴더에 JspTag라는 폴더 새로 생성
- 해당 폴더에 .jsp파일 생성하고 이름은 scriptlet으로 설정
스크립트릿 (scriptlet)
<% for (int i = 0; i < 5; i++) { %>
<h2>이클립스 내부에서 jsp 문서 작성하기!</h2>
<p>안녕하세용?</p>
<% } %>

<hr>
<h2>구구단 4단</h2>
<% for (int i = 1; i < 10; i++) {
out.print("4 x " + i + " = " + (4 * i) + "<br>");
} %>
<% for (int i = 2; i < 10; i++) {
if (i % 2 != 0) {
out.print("<h2>구구단 " + i + " 단</h2> <br>");
for (int j = 1; j < 10; j++) {
out.print(i + " x " + j + " = " + i * j + "<br>");
}
}
}%>
구구단을 출력하는데, out.print()
함수를 사용하여 html 태그는 ""
안에 전달하여 태그를 표시하고, 그 외 동적인 값 등의 java 부분은 일반적인 형식으로 작성한다.
