JSP ( Java Server Page )
html에서 java를 사용하여 동적인 웹페이지를 만들 수 있게 해주는 도구이다. html페이지 내의 자바 코드는 자바 서블릿으로 변환되고, 실제 화면에 구현된 페이지의 소스코드를 확인해보면 자바코드는 제거되어 보여진다.
* 자바 서블릿 : 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 의미한다.
JSP는 html 내부에 자바 코드를 포함한 것이고, 반면에 서블릿은 자바 코드 안에 html 코드를 포함하고 있는 것이다.
* Dynamic web Project 생성하는 법
좌측 상단의 file.- other - dynamic 검색 - dynamic web project 선택 후 next - target runtime 선택 해줌 (none 밖에 없는 경우 헤당 글에서 2022.07.24 - [JAVA] - [ JAVA ] - 자바 개발환경 구축 (feat mac) - 02 이클립스와 톰캣 연동 부분 참고) - finish 클릭
- Web Server : html, css, javascript, image, video 등의 정적 파일 서비스를 제공하는 역할.
- Web Application Server : 정적 파일 서비스 제공 및 프로세스 처리의 역할까지 담당, 동적인 기능을 제공한다.
톰캣을 설치한 위치에서 즉 나의 경우에는 /opt/homebrew/Cellar/tomcat@9/9.0.65/libexec/webapps/ROOT의 ROOT 폴더 안의 index.jsp 파일이 tomcat을 실행 후 localhost:8080으로 들어갔을때 기본으로 나오는 화면을 구현하는 파일이다. index.jsp 파일을 수정 후 tomcat을 다시 실행해서 localhost:8080으로 들어가면 화면이 변화된 것을 확인할 수 있다. 아래는 내가 index.jsp 파일을 변경 후 tomcat 실행하여 들어가본 모습이다.
jsp 프로젝트를 위한 기본 환경 구성
좌측 상단의 eclipse - preferences
- general - workspace 아래쪽에 Text file encoding 이 UTF-8로 되어있는지 확인한다. UTF-8로 되어있지 않은 경우 Other에서 UTF-8을 선택 후 Apply를 클릭한다.
- web - CSS Files 을 선택후 encoding이 UTF-8로 되어있는 것으로 선택되어있는지 확인한다. 동일하게 JSP Files도 UTF-8로 설정하여 준다.
* UTF-8은 문자를 인코딩하는 방식의 하나이다. 2022.06.16 - [이론] - 문자 인코딩(character encoding)과 charset
Dynamic Web Project 생성
* web.xml : 톰캣이 동작할 때 기반이 되는 설정파일을 의미한다. dynamic web project 생성시 Generate web.xml deployment descriptor을 체크하여 생성될 수 있도록 해준다. 프로젝트가 생성되면 src - main - webapp - WEB-INF 폴더 하위에서 해당 파일을 확일 할 수 있다. 체크하는 걸 잊은 경우 해당 프로젝트 선택 후 우클릭 Java EE Tools - Generate Deployment descriptor stub 클릭하면 web.xml파일이 생성된다.
Dynamic Web Project 생성시 아래와 같은 폴더 구조를 갖게 된다.
- Java Resource의 src 폴더에는 java관련 코드가 위치하게 되며, src/main/webapp 폴더에는 주로 html, css 등의 파일이 위치하게 된다. META-INF와 WEB-INF 폴더는 그대로 둔체 webapp 폴더안에 basic 폴더를 추가적으로 생성한다. (WEB_INF폴더는 외부 라이브러리 연동시 활용된다.) basic 폴더 생성 후 해당 폴더에 Ex01.jsp 파일을 생성한다. (마우스 우클릭 new - jsp file 클릭)
* 파일 생성후 맨 위에 빨간 줄이 뜬다면 이는 tomcat이 프로젝트와 제대로 연결되지 않아서 발생한 것이다. 해당 프로젝트 선택 후 우클릭 - properties - Java Build Path - Libraries - Add Library - Server Runtime - apache tomcat 선택 후 finish 한 후 apply까지 클릭한다.
파일 생성 후 해당 프로젝트 선택 후 우클릭한 뒤 Run as - Run on Server를 클릭한다. 그러면 아래와 같이 이클립스창 아래에 Server 실행 상태를 확인할 수 있는 창이 나오게 된다.
** Server 가 보이지 않는 경우 상단의 window - show view - Servers를 클릭하여 준다.
기본적으로 웹사이트 창은 404를 띄운다. 이는 해당 프로젝트는 webapp폴더를 기준으로 하여 경로를 설정하는데 webapp 폴더의 바로 하위에 생성해준 jsp파일이 없기 때문이다.
반면에 아까 webapp폴더 하위에 basic폴더 생성 후 그 안에 Ex01파일을 생성하였기 때문에 localhost:8080/JSProject1/basic/Ex01 경로로 들어갔을때는 창이 뜨게 된다. 서버 실행시 바로 창이 뜨게 하기 위해서는 webapp폴더 하위에 index.jsp 파일을 생성하여 주면 된다. index라는 파일명을 가진 파일의 경우에는 기본값으로 설정되어 있어 JSProject1/index 라는 경로로 들어가지 않고 JSProject1로만 들어가도 해당 창을 확인할 수 있다.
- Context path : 웹에서 서비스시 최상위에 해당하는 경로를 의미한다. 위 프로젝트의 경우 webapp이 해당한다.
출처
https://www.youtube.com/playlist?list=PLpzDq-W37heSMxWj0XEVfM1rUcHBDjhm3
'JAVA' 카테고리의 다른 글
[ Java ] - Object 클래스 (0) | 2022.09.28 |
---|---|
[ Java ] - jsp 기본 문법 / jsp 라이프사이클 (0) | 2022.09.15 |
[ Java ] - 인터페이스 (0) | 2022.09.06 |
[ Java ] - 추상클래스 / 템플릿 메서드 (0) | 2022.09.05 |
[ Java ] - Static과 final 키워드 (0) | 2022.09.05 |