jnk1m
Foliage IT
jnk1m
전체 방문자
오늘
어제
  • 분류 전체보기 (209)
    • Today I Learned (34)
    • Java (47)
    • Database (15)
    • [NHN Academy] (27)
    • Spring (47)
    • HTML + CSS + JavaScript (11)
    • JSP (3)
    • Node.js (10)
    • React Native (2)
    • 기타 (8)
    • 스크랩 (5)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
jnk1m

Foliage IT

[JSP] Day01 (Note): 톰캣, 이클립스 기본 세팅, 웹과 JSP
JSP

[JSP] Day01 (Note): 톰캣, 이클립스 기본 세팅, 웹과 JSP

2022. 3. 14. 21:40

2022/03/11

 

세팅:

준비물: (JSP로 웹을 개발하겠다면) JDK(8,11 환경 변수 세팅 완), 이클립스, 톰캣 9(서버), DBMS, SQL developer, 크롬

톰캣 사이트 > 톰캣 9 > zip  다운 > 다운로드한 파일

[이클립스 세팅]

Jsp 폴더 안에 압축 해제 > JAVA EE 모드로 사용 > 인코딩 UTF-8
한글 지원 인코딩: ISO-8859-1, KSC5607, MS949/ CP949: MS사, EUC-KR: ANSI 확장

 

웹과 JSP

1.  웹 동작 원리
클라이언트 / 서버 방식으로 동작.
클라이언트: 사용자(요청자), 웹 브라우저
서버: 서비스 제공자 (웹서버: 가장 많이 쓰는 건 아파치. 톰캣, IIS, 제우스)
동작 방식: 클라이언트 ---> 웹페이지 요청 ------->  웹서버
           (브라우저)<---결과물로 응답response---(ex.톰캣)

 

2.  정적 웹페이지 / 동적 웹페이지
정적 웹페이지: 저장된 텍스트 파일 그대로 보는 것. Html 같은 웹 언어로 작성. 사용자랑 소통하는 게 없고 만들어진 것 그대로 보여준다.
동적 웹페이지: 저장된 내용을 가공 처리해서 보는 것. PHP, ASP, JSP 같은 웹 언어로 작성. 사용자가 url 요청을 하면 서버가 그 요청된 부분을 분석하고 처리하고 요청한 거에 맞게 가공해서 결과물을 보여준다. 로그인, 게시판
현재 우리가 보고 있는 웹사이트들은 거의 다 동적 웹사이트. DB는 다 가지고 있다.

3.  웹 주소
URL: http://ip : port/ file경로
https:// 보안이 강화된 요즘 프로토콜
http://tomcat.apache.org/download-90.cgi
       포트가 생략된 도메인/
URI: jsp/main.jsp. 포트 뒤에부터.

톰캣을 이용하여 우리 각자의 컴퓨터가 서버 피씨가 된다. 서버 ip에 내 피씨를 가리키는 ip 주소를 쓰면 된다. 포트 번호 충돌이 나기 때문에 서버는 한 개만 올려야 된다! 톰캣 기본 포트 번호 8080

4.  웹 프로그래밍과 JSP
웹 프로그래밍: 웹 서버가 웹 브라우저에 응답으로 전송할 데이터를 생성해주는 프로그램을 작성하는 것.
웹 프로그래밍: 클라이언트 측 실행 언어와 서버 측 실행 언어로 구분.
JSP(Java Server Pages): 자바를 기반으로 하는 서버 측 웹 프로그래밍 언어
처리과정: JSP 페이지는 서블릿 프로그램으로 변환되어 실행됨.

1.   브라우저에서 hello.jsp 요청하면, 웹 서버는 jsp 확장자를 발견, 확인하여 웹 서버에 있는 JSP컨테이너(jsp엔진)에 전달. 
2.   jsp 컨테이너는 jsp페이지를 서블릿 프로그램인 hello_jsp.java로 변환 

3.   Jsp 컨테이너가 서블릿 프로그램을 컴파일하여 hello_jsp.class로 만들어 웹 서버에 전달

4.   웹 서버는. class 실행 결과를 웹 브라우저에 응답으로 전달, 웹 브라우저는 새로 가공 된 HTML 페이지를 동적 처리한 결과 보여줌.

5.  웹 서버, 웹 컨테이너, 웹 애플리케이션 서버


#웹 서버: 요청받아 응답, 자체적으로 처리 못하는 것은 컨테이너처럼 처리할 수 있는 곳으로 넘겨준다. 정적 페이지 서비스. 아파치, IIS
#웹 컨테이너: (JSP 기준으로 설명) JSP와 서블릿을 실행할 수 있는 프로그램으로 서블릿 컨테이너라고도 함
#웹 애플리케이션 서버: Web application server: WAS. 웹 서버와 웹 컨테이너를 결합한 서버. JSP 페이지가 탑재된 WAS는 동적 페이지로 처리를 해준다. 톰캣, BEA의 웹로직 등
사용자 요청(브라우저) -> 웹 서버 -> 컨테이너 연산 -> 웹서버 -> 사용자 응답 (브라우저)

 

6.  JSP 생명 주기
jsp ->. class에는 jspInit(), _jspService(), jsDestroy() 메서드 등 존재함. Hello.jsp – 번역 --> hello_jsp.java – 컴파일 --> hello_jsp.class -> jspInit() 호출 -> _jsSerivce() 호출(두 번째 요청부터는 페이지 요청 시 이것만 실행 요청 -> 응답) -> jsDestroy

 

웹 프로젝트 생성

1.   톰캣 서버 세팅
프로젝트 만들기 전에 서버를 먼저 세팅하기.
server 탭 > 빈 공간에 마우스 우클릭 > new> server (팝업 뜸) > apache 폴더 안에 톰캣 9 선택 > next > browse > 톰캣 압축 해제한 곳 (bin 폴더 등 여러 폴더가 보이는 곳까지 들어가기) > next > finish!
확인: 서버 스타트해서 콘솔 탭에 에러 없는지 확인!

 

2.   프로젝트 생성
File > new > dynamic web project > name : 프로젝트 이름. Tomcat 버전 같은 거 다 잡혀 있는지 확인하고 next > next> xml 체크박스 선택하고 finish!

3.  * 프로젝트 안에 JRE System Libray [JavaSE-17]로 되어있을 경우
버전 11로 변경 하기. 
프로젝트 폴더(web) 선택, 마우스 우클릭 > properties 
> 1) 왼쪽에 Java Build Path 선택 > 오른쪽 상단에 Libraries 탭 선택 
> JRE System Libray [JavaSE-17] 선택하고 오른쪽 Edit 클릭 
> 팝업에 Execution Environment : JavaSE-11(jre)로 선택하고 하단에 Apply클릭
> 2) 왼쪽 메뉴에 Project Facets 선택 
> 오른쪽 [v] Java     17에서 17 부분 클릭하여 11로 변경
> Apply and Close!! 

 

웹 프로젝트 구조

웹 서버가 준비된 상태에서 아래와 같은 폴더 구조를 갖춰야 한다.
[폴더 명]   : 프로젝트명(context path, root context) 우리는 web이라는 폴더가 될 거다. 아까 이클립스에서 폴더 이름 web으로 하나 만들었지.

 

프로젝트 서버에 올리고 페이지 요청해보기
파일 위치: webapp 폴더 바로 안에 (web-inf 안에 넣지 않기)
http://localhost:8080/web/WEB-INF/jsp01.jsp 이렇게 중간에 웹 inf가 끼면 경로를 절대 못 찾음.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%> 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h2>hello jsp!</h2>
	http://localhost:8080/web/jsp01.jsp
	
</body>
</html>
    'JSP' 카테고리의 다른 글
    • [JSP] Day 03 (Note + Code): JDBC, 자바 빈즈, 커넥션 풀
    • [JSP] Day02 (Note + Code): JSP 구성 요소 (디렉티브 태그, 스크립트, 내장 객체, 에러 페이지 처리)

    티스토리툴바