본문 바로가기
자바과정/JSP

JSP 시작하기 전 환경설정

by Parkej 2021. 3. 6.

* 학원에서 배운 내용을 토대로 작성

 

JSP는 (Java Server Page) HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성해 웹 브라우저에 돌려주는 언어로 백엔드 개발에 속한다고 합니다.

- JSP 코드를 해석하고 서블릿(Servlet) 으로 변환하는 등의 작업을 수행하기 위한 서블릿(JSP) 컨테이너도 필요합니다.


먼저 JSP 개발 환경 구성을 위해 필요한 것들이 있습니다. 

(2021년 3월 기준 - 최신버전들..)

1. JDK

2. 이클립스

3. 아파치 톰캣

 

자바를 하시려고 이클립스를 설치하신 분들이라면 1, 2번을 건너뛰고 3번부터 시작하시기 바랍니다.

 

1. JDK 설치 (Java SE Development Kit 15.0.2) - OS에 맞게 설치

 - www.oracle.com/kr/java/technologies/javase-jdk15-downloads.html


 

2. 이클립스 설치

 - www.eclipse.org/downloads/packages/

OS에 맞게 설치
zip 파일 다운

 

* 우선 여기까지 설치 후 환경설정을 해줘야 합니다. (윈도우 시스템 환경변수 등록)

 - 바탕화면의 내 PC(오른쪽 마우스 클릭) -> 속성 -> 왼쪽 메뉴 목록에 고급 시스템 설정 -> 환경 변수 -> 시스템 변수창에서 새로 만들기 -> 변수 이름과 변수 값 등록

 - 윈도우 화면에서 좌측 하단에 있는 시작메뉴 버튼 마우스 오른쪽 클릭 -> 시스템 클릭 -> 정보 : 관련 설정 : 시스템 정보 클릭 -> 고급 시스템 설정 -> 여기는 위와 같음

 

///// JDK 환경 변수 등록

* 변수 이름 : JAVA_HOME

* 변수 값 : C:\Program Files\Java\jdk-15.0.2

 - JDK 설치 경로(기본 경로에 설치했으면 사진에 보이는 경로와 같을겁니다.)

* 변수 이름 : CLASSPATH

* 변수 값 : .;

 - 나중에 JSP 사용을 위한 변수입니다.

* Path 등록 

 - Path 클릭 -> 편집 클릭

 - 새로만들기 > %JAVA_HOME% 입력

  - 3번의 위로 이동을 계속 눌러 맨 위로 올려주고 아래 사진과 같이 확인을 눌러줍시다.

 - 나머지 창도 다 확인을 눌러주시면 환경변수 등록은 끝이 납니다. 자 이제 확인을 해야겠죠

 

* 윈도우 키와 R키를 눌러 'cmd'를 켜줍시다.

 - 'java -version' 을 입력후 아래와 같이 뜬다면 이상없이 마무리 된겁니다.

 

* JDK 설치와 환경변수 등록 완료

 

마무리 : 다운 받았던 이클립스 알집파일을 열어 압출 풀기!!

 - 폴더안에 있는 'eclipse.exe' 실행

 - Workspace 경로는 찾기 편한곳에다가 지정해두어도 괜찮습니다. 

 - Launch 클릭 하면 완료 ~ (자바 프로젝트 생성법은 다음에 쓸테니... 다른 블로그를 찾아보시죠 )

 


3. 아파치 톰캣

 - 사이트 : tomcat.apache.org/

 

* 저는 9 버전으로 하겠습니다.

(높은 버전을 사용하지 않는 이유는 아직 확실한 검증이 되지 않았기 때문에 잘 사용하지 않는다고 합니다.)

파란거 눌러요

 

* 아래 사진에 파란색 눌러주세요 Installer 입니다. 자동 설치파일이라고 생각하시면 편해요

눌렀어요 ?

* 실행합니다. (직접 캡쳐한겁니다.)

 

 - 첫화면 부터 그냥 Next -> I Agree -> Next 여기까지만 진행해 주시면 아래와 같이 나옵니다.


- Server Shutdown Port 가 처음에 -1로 되어있는데 80으로 바꿔줍시다 (기본값이라고 생각하시면 됩니다.)

 - 처음에 '-1'로 되어있어서 그냥 다음 눌렀다가 이클립스 내에서 톰캣 서버가 작동하지 않는 문제가 발생하더군요 이 부분은 따로 알아보려 합니다. (내가 잘못한거 일수도...)

 - Server Shutdown Port란.... (itgala.xyz/what-is-tomcat-shutdown-port/)

* 원격으로 종료할 수 있는 포트를 지정하는거 같네요 


- 여튼 80으로 입력하고 넥스트를 누릅니다. 아래의 사진과 같은 화면이 나와요

 * JDK 경로가 맞는지 다시 확인해 주시고요

넥스트 합니다.

 

- 톰캣의 기본 설치 경로입니다. 이것도 기본으로 하고 Install을 합니다.

 

- Show Readme 체크는 풀고 바로 톰캣을 실행시키게 위에만 체크해 줍시다.

 

* 여기까지가 설치 마무리 입니다. 


* 작동확인과 JSP 환경설정하기 

 

이제 톰캣이 제대로 작동하는지 또는 이상이 없는지 확인을 해봐야겠죠 ? 

 


* 먼저 환경 변수를 등록하겠습니다.

2번에 등록했던 CLASSPATH를 수정하겠습니다

 

 - 초기 

변수 이름 : CLASSPATH

변수 값 : .;

 

- 수정

변수 이름 : CLASSPATH

변수 값 : .;%JAVA_HOME%\lib\tools.jar

 

* 모조리 확인을 눌러주시고요 


 

- 우측 하단에 보이는 저것을 더블클릭합니다.

 

- 보시는 바와 같이 Started로 되어 있으면 작동중인겁니다. 

 

- 새로운 환경 변수를 입력했으니 혹시 모르니까 Stop을 했다가 다시 Start를 눌러 줍니다.

- 실행 상태를 확인 후 인터넷 창 url에 ' localhost:8080 ' 을 입력해 줍시다. 

* 처음 톰캣을 설치할때 기본포트를 8080으로 지정해서 저렇게 입력한겁니다.

자 입력하면 ~~

 

???

잠시만요

 

 

 

 

짜잔 작동하게 했습니다 

... 사실

 - 처음 지정해두었던 '8080' 포트가 충돌이 일어나 발생한 문제였고 포트번호를 '8090'으로 변경해주니 정상적으로 돌아가는것을 확인했습니다.

(톰캣 포트 변경법 : geundung.dev/79)

 

여튼 되는것을 확인했고 그 다음으로 넘어가겠습니다. 

 

 * 지금까지 JDK, 이클립스, 톰캣을 설치했고 톰캣이 정상작동하는지까지 봤는데요 이제부터가 중요합니다. 

바로 서블릿 구현 환경을 설정해줄건데 잘 따라해주세요.


 1. Apache가 설치된 경로 아래의 lib 폴더로 들어갑니다. (기본 설치경로 기준)

   - C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

 

 2. servlet-api.jar 을 복사해줍니다. (복사입니다 꺼내오기 아니에요)

 3. 복사한 파일을 JDK 설치폴더인 lib 안에 붙여넣기 해줍니다.

   - C:\Program Files\Java\jdk-15.0.2\lib

 4. 환경 변수인 CLASSPATH를 또 수정해 줍니다.

   - " ;%JAVA_HOME%\lib\servlet-api.jar "


* 이클립스에서 서블릿 동작을 확인하기 전 톰캣에서 먼저 확인해볼텐데요 봅시다.

1. 톰캣 기본 경로 에서 'webapps'라는 폴더에 들어갑니다.

 - C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps

 

2. Webapps 폴더안에 ServletTest 폴더를 생성해줍니다.

 

3. ServletTest 폴더안에 WEB-INF 폴더를 생성해줍니다.

 

4. WEB-INF 안에 3개의 폴더를 생성해줍니다

 - src : 서블릿 클래스로 컴파일 하기 위한 소스 파일들을 넣어 놓은 폴더

 - classes : 실제로 서비스 될 서블릿 클래스가 들어가는 곳

 - lib : 서블릿 클래스들이 구동되는데 필요한 추가 라이브러리 파일들을 넣는곳

 

5. 서블릿 소스를 구현해 봅니다. (예제 코드입니다.)

 - 메모장으로 작성

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Calendar;

public class ServletTest extends HttpServlet{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
	response.setContentType("text/html");
	response.setCharacterEncoding("euc-kr");
	Calendar c = Calendar.getInstance();
	int hour = c.get(Calendar.HOUR_OF_DAY);
	int minute = c.get(Calendar.MINUTE);
	int second = c.get(Calendar.SECOND);
	PrintWriter out = response.getWriter();
	out.write("<HTML><HEAD><TITLE>ServletTest</TITLE></HEAD>");
	out.write("<BODY><H1>");
	out.write("what time");
	out.write(Integer.toString(hour));
	out.write("hour ");
	out.write(Integer.toString(minute));
	out.write("minute ");
	out.write(Integer.toString(second));
	out.write("second");
	out.write("</H1></BODY></HTML>");
	out.close();
	}
}

 

6. WEB-INF 안에 있는 3개의 생성 폴더 중 src안에 ServletTest.java로 저장해줍니다. (메모장 저장 시 확장자명을 꼭 .java 붙여서 저장해주세요)

7. 윈도우 + R키를 눌러 cmd를 실행해 줍니다.

* 첫 입력줄에 cd를 입력후 띄어쓰기 그 다음 복사한 경로를 붙여줍니다 (마우스 오른쪽 클릭으로 복붙)

 입력 : ' cd C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ServletTest\WEB-INF\src '

 - 그러면 해당 루트로 이동하게 됩니다.'

 

8. " javac -d ../classes *.java " 입력

 

9. 에러가 안나는지 확인하기

* 이렇게 아무줄 없이 아래처럼 뜬다면 정상 작동한겁니다.

* symbol 에러가 날시 (환경변수 오타 및 경로 필히 확인과 servlet-api.jar 파일이 jdk에 옮겨졌는지 확인하세요!)

 

10. 이제 web.xml 을 넣어줍시다. 

* 웹 컨테이너에게 사용자가 지금 접근한 주소가 어떤 서블릿이고 그 서블릿 클래스의 위치는 어떠한지 알려주기 위해 필요한 정보들이 적혀있는 파일

* 웹 애플리케이션을 구동시키는데 있어 가장 중요한 설정파일

* 경로 : (원래 있던 톰캣의 루트 디렉토리)

 - C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT\WEB-INF

 - 안에 있는 web.xml 파일을 복사해줍니다.

 

* 경로 이동 : 우리가 만든 서블릿 디렉토리

 - C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ServletTest\WEB-INF

 - 복사한 web.xml을 붙여넣어줍니다. 

* 붙여넣은 web.xml 파일을 수정하겠습니다. 

* 마우스 오른쪽 클릭 -> 연결 프로그램 -> 메모장

 

* 텍스트 파일로 열리게 되면 소스를 넣어줄건데요 

* 저 공간에다가 이 소스를 넣어줍시다. 

  <servlet>
	<servlet-name>ServletTest</servlet-name>
	<servlet-class>ServletTest</servlet-class>
  </servlet>

  <servlet-mapping>
	<servlet-name>ServletTest</servlet-name>
	<url-pattern>/test</url-pattern>
  </servlet-mapping>

 

web.xml

 

* 자고로 web.xml을 수정할 시 톰캣을 재시작 해줘야 합니다 (필수)

 

실행

 - http://도메인명/프로젝트명( 폴더명 )/서블릿

 - http://localhost:8090/ServletTest/test

 - 새로고침으로 매번 시간이 바뀌는것을 확인해봅니다.

 

 

----- 최종 단계 JSP 코드 넣어서 실행시키기

 

 

구조

  • 서블릿 소스를 살펴보면 <html>,<body>  html 태그를 사용자의 브라우저에 전송하기 위해 response.getWrite() 를 사용해 printWriter 객체를 얻어와서 일일이 write 메소드를 사용해서 보내야 합니다.
  • 사용자에게 보여주기 위한 페이지의 HTML 코드 길이가 짧다면 큰 지장은 없지만, 몇백이 넘어가는 라인의 HTML 코드로 되어있는 페이지를 이러한 방식으로 만들려고 한다면 정말 힘들고 유지보수에도 심각한 문제가 생깁니다.
  • 이러한 단점을 보완해주기 위해 만들어진것이 바로 JSP 입니다.

(학원 강의 내용 퍼옴)

 

 - JSP 파일을 생성하겠습니다. 

* 코드 작성 (메모장으로)

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="java.util.Calendar"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%
Calendar c=Calendar.getInstance();
int hour=c.get(Calendar.HOUR_OF_DAY);
int minute=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
%>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Servlet Test</title>
</head>
<body>
<h1>what time<%=hour %>hour<%=minute %>minute<%=second %>second.</h1>
</body>
</html>

 

 

 

* 작성한 다음 저장 후 WEB-INF 폴더가 아닌 상위 디렉토리인 ServletTest에 저장합니다.

* http://localhost:8090/ServletTest/ServletTest.jsp

(8090은 톰캣 설치시 자기가 지정한 포트번호 입니다. 8080으로 했는데 8090으로 접속하시면 안됩니다.)


* 접속 성공 화면...... (저거는 나중에 수정토록 ...)

 

** 여기까지가 톰캣으로 하기 성공입니다. 너무 길어서 이클립스로 하는 것은 다음 포스팅에 올리도록 하겠습니다. 

 

나머지 궁금한 부분은 구글에 찾아보세요 ㅋ

반응형

'자바과정 > JSP' 카테고리의 다른 글

JSP 예습겸 Scope  (0) 2021.03.08
JSP 오늘의 강의내용 끄적...  (0) 2021.03.08
JSP 구구단 (자바코드)  (0) 2021.03.08
이클립스에서의 JSP  (0) 2021.03.06
JSP 기초 1일차  (0) 2021.03.05

댓글