Tomcat 설치
jsp를 실행하기 위해 Tomcat을 설치해보자.
리눅스 기준으로 설명하지만 Tomcat자체는 install파일이 아니라
압축파일을 풀기만 하는거라
어떤 운영체제에서든 크게 다를 건 없을것입니다.
구글에 '톰캣' 검색 후 왼쪽에 Download에서 Tomcat9를 다운받자.
Tomcat9는 jdk 1.8이상의 버전이상에서 작동한다.
현재 운영체제에 맞는 파일을 선택해서 다운받으면 된다.
다운받은 파일을 원하는 위치에다 풀어줍시다.
리눅스 기준 home/tools 밑에다 풀어주겠습니다.
톰캣을 깔았으면 apache-tomcat-9.x.xx.폴더에 bin 파일로 이동해서 터미널창을 켜겠습니다.
netstat -tlnp를 치고 현재 사용중인 port를 확인합니다.
./startup.sh로 tomcat서버를 실행하고 다시
netstat -tlnp를 쳐 사용중인 port를 확인합니다.
(설치 시 기본은 8080 , 난 다른곳에서 8080 포트를 사용하고
있었기 때문에 7001을 임시로 사용 여러분들은 8080포트가 보일 것입니다.)
아까는 없었던 7001포트가 보입니다. 오른쪽의 4809는 processId입니다.
포트는 apache-tomcat-x.x.xx/conf 폴더의 server.xml에서 변경할 수 있습니다.
여기까지 했으면 톰캣이 잘 설치된거라 할 수 있습니다.
이제 메모장을 켜고 다음과 같이 작성해줍시다.
<body>태그 안의 내용은 자유롭게 작성해주세요.
<%@page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title> hello world</title>
</head>
<body>
자기소개 맘대로
<%=new java.util.Date()%>부터 jsp,Spring 수업을 함께 합니다.
jsp를 열심히해서 멋진 웹사이트 만들고 좋은곳에 취업할 수 있도록 합시다
화이팅!
</body>
</html>
다 작성한 메모장을 저장후 확장자를 jsp로 바꿔줍시다.
저는 파일이름을 hello.jsp로했습니다.
이제 apache-tomcat-x.x.xx의 webapps폴더에 01폴더를 만들고 거기에 아까만든 hello.jsp를 넣어줍시다.
파일을 넣어줬으면 브라우저 url입력 창에
localhost:포트번호/01/hello.jsp를 입력합시다.
(아까 확인한 7001을 입력하겠습니다. 기본은 8080입니다)
이렇게 기본적인 tomcat설치 및 jsp실행이 끝났습니다.
다 끝났는데 앞으로 jsp를 만들 때마다 메모장으로 만들고
서버에 직접 파일을 갖다놔야 한다면 상당히 불편할 겁니다.
이런 불편한 점을 해결해주는 tool을 이용해서 개발을 하는게 일반적입니다.
저희는 eclipse를 이용해서 jsp를 실행해보겠습니다.
서버는 서버를 1개씩 킬 때마다 port를 점유합니다. 이클립스를 이용해서 서버를 킬 때
8080port를 사용하려 하기 때문에 현재 bin폴더에서 직접 킨 서버는 꺼주도록 하겠습니다.
cmd에서 ./shutdown.sh를 입력해 서버를 꺼주겠습니다.
이클립스를 이용한 jsp 개발하기 (Dynamic Web project 만들기)
우선 jsp수업만을 위한 workspace를 만들어줍시다. 이름은 jsp-workspace로 하겠습니다.
혹시 jsp workspace 설정이 안 뜨시는 분은 eclipse를 다시 깔지....는 말고
이클립스에서 window-preference-general -startup and shutdown- workspace
- prompt for workspace on start up 설정 체크해줍니다.
workspace를 새로 만들었으므로 설정을 다시 해줘야됩니다.
window-preference-genreal-keys 에서 content assist의 binding을 Ctrl+Space로 바꿔줍시다.
window-preference-java-installed jres에서 설치한jdk로 바꿔줍니다. (jdk설치는 참고)
끝났으면 설치했던 apache-tomcat을 이클립스에서 사용하도록 설정해줍시다.
밑의 Servers에서 마우스 오른쪽을 눌러 new를 누릅니다.
(Servers탭이 안 보인다면 window-show view-other에서 Servers를 검색해서 추가해줍니다)
저희가 설치한 서버는 apache tomcat 9버전이니까 해당 버전을 클릭합니다.
선택하고나서는 실제 저희가 설치한 apache-tomcat의 경로를 묻습니다.
Browse를 클릭 후 /home/ssam/tools/apache-tomcat-9.0.46 까지 선택해준 후 finish를 누릅니다.
JRE는 아까 설정한 jre로 선택해줍니다. (java 1.8이상으로 설정합시다)
그러면 Servers탭에 다음과 같이 서버가 생성됩니다.
File-new -Dynamic Web project로 프로젝트를 만들어줍시다
(dynamic web project가 안 보인다면 file-new-other에서 검색해보세요)
project 이름은 sutdy, Dynamic web moudle version은 3.0을 선택해 준 후 next를 누릅니다.
이름이 설정되어있지않다면 edit을 누르고 src로 이름을 짓습니다.
밑의 Defualt output folder이름도 src로 지어줍시다.
마지막 Contenxt root 는 sutdy (기본은 프로젝트 이름이랑 동일)
Content directory는 WebContent로 지어주면 프로젝트가 생성됩니다.
프로젝트를 만든 후에 Context root를 수정하고싶다면
이클립스에서 프로젝트 선택 마우스 우클릭 properties 를 선택하고
web Project Settings에서 Context root를 바꿔주면 됩니다.
http://localhost:포트번호/Context root/
port번호까지는 내 컴퓨터에서 서버를 구별하는데 쓰이고,
한 서버에 프로젝트를 여러개 올릴 수 있습니다.
Context root는 이 프로젝트를 구별하는 용도로 사용합니다.
jsp에서 이 Context root의 값을 얻을때는 getContextPath()메소드를 사용합니다.
이 Web Project Settings 에서 설정한 Context root값은 해당
프로젝트가 서버에 올라갈 때의 Context root 기본값이 됩니다.
이미 서버에 올라간 프로젝트의 Context root값을 직접 바꿀 수도 있습니다.
프로젝트가 생성됐으면 해당 프로젝트 우클릭 properties-project Facets에서
Dynamic Web Module 선택 후 오른쪽의 details/runtimes탭에서 runtimes 선택 후
Apache Tomcat을 체크해줍니다.
서버와 프로젝트를 생성했다면 왼쪽에 Project exploer에
다음과 같이 Servers,study가 보일 것입니다.
(그 외것들은 제가 따로 만든 프로젝트들이라 신경쓰지말아주십쇼.
지금은 Servers,study만 보이면 됩니다.)
그러면 이제 서버에 프로젝트를 올립니다.
서버에 오른쪽마우스 클릭 후 Add and Remove 클릭
그 후 해당 프로젝트(여기선 study)를 Add 한 다음 finish를 눌러주면 됩니다
프로젝트에서 WebContent밑에서 01basic폴더를 만듭니다.
그리고 해당 폴더에서 오른쪽마우스 클릭 new- jsp File을 클릭해 jsp파일을 만들어줍시다.
jsp파일이름은 hello.jsp 안의 내용은 아까랑 똑같이 작성해줍시다.
<%@page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title> hello world</title>
</head>
<body>
자기소개 맘대로
<%=new java.util.Date()%>부터 jsp,Spring 수업을 함께 합니다.
jsp를 열심히해서 멋진 웹사이트 만들고 좋은곳에 취업할 수 있도록 합시다
화이팅!
</body>
</html>
톰캣을 더블클릭해줍니다.
tomcat을 더블클릭한 후 톰캣서버 Overview화면에서
오른쪽에 이름, Port Number가 있습니다.
이클립스로 톰캣을 실행하고 나서 브라우저에 입력할 URL주소의
포트번호는 여기에 나오는 포트번호를 입력합니다.
밑의 module탭을 누르고 path를 확인해줍시다.
프로젝트 만들 때 Context root를 study로 선택했기 때문에 기본 path는 study일 것입니다.
servers탭에서 server 실행 해줍니다.
이제 브라우저에 localhost:포트번호(8080)/study/01basic/hello.jsp를 실행해줍시다.
인텔리제이에서 설치
프로젝트생성
Project Structure 모듈에 web모듈 추가
실행환경 톰캣으로 설정
configure 후 방금 다운받은 톰캣 경로까지 선택해줍니다.
(사진에서는 톰캣이 10버전이지만, 원하는 버전으로 다운 받으면 됩니다.)
나머지 설정들도 그림과같이 설정합니다.
After launch의 크롬은 서버가 다 켜진 후 자동으로 크롬에서
localhost:8080 주소의 화면이 나오는 기능입니다.
이 기능이 필요없다면 체크 해제해줍니다.
deployment탭에서 artifact study web exploded 선택 후
설정 후 OK버튼을 눌러 운영 환경을 세팅완료합니다.
서버를 실행합니다
결과화면
톰캣 언어 설정
톰캣을 처음에 실행해보면 다음과 같이 한글 로그가 깨지는 것을 볼 수 있습니다.
이를 해결할 방법으로 톰캣 언어설정을 변경해줍니다.
톰캣 언어를 영어로 하거나 UTF-8 인코딩을 적용해줍니다.
영어로 변경
Run-edit configurations에서 VM options에 다음의 내용을 추가합니다.
-Duser.language=en -Duser.region=us
한글로 변경
Ctrl+Shift+N 입력후 Actions에서 edit custom vm 을 검색합니다.
그럼 다음과같이 파일이 열리는데 여기에 다음의 내용을 추가합니다.
-Dfile.encoding=UTF-8
Run-edit configurations에서 VM options를 지운다.
그리고 인텔리제이를 재시작한 후 톰캣을 실행하면 다음과 같이 한글이 로그에 찍힌다.
JSP 메소드 컴파일 문제
다음과 같이 컴파일 에러가 나는 경우가 있다.
Project Structure - Modules에서 Dependencies 탭에서 + 버튼을 누른다
그리고 JARs or Directories 를 클릭합니다.
설치한 톰캣의 lib 폴더를 선택합니다.
체크하고 OK버튼을 누릅니다.
만약 적용이 안됐다면 인텔리제이를 재시작해봅시다.