contents
PART01 JSP 기초 지식
chapter01
01.웹(Web)과 JSP(Java Server Pages) 프로그래밍의 이해
1.인터넷과 웹의 개요
2.정적 웹페이지와 동적 웹 페이지
3.서블릿과 JSP
4.서블릿과 JSP의 동작 과정
5.서블릿과 JSP 생명 주기
02.JSP 개발환경구축
1.자바 설치하고 환경 설정하기
2.웹 서버와 통합 개발 환경 설치하기
----------------------------------------------------
PART01 JSP 기초 지식
chapter01
01.웹(Web)과 JSP(Java Server Pages) 프로그래밍의 이해
1.인터넷과 웹의 개요
1)인터넷과 웹
-인터넷(internet)과 웹(web)은 대개 동의어로 쓰이지만 엄밀히 말하면 서로 다른 개념임. 인터넷은 컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고받는 전 세계의 컴퓨터 네트워크임. 인터넷을 통해 광범위한 정보와 서비스를 제공할 수 있는데 그중 한 서비스가 웹임. 웹은 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보 공간으로, 월드 와이드 웹(world wide web)의 줄임말임. 서로 다른 개념이지만, 인터넷의 활용에서 웹의 비중이 절대적 위치를 차지하여 흔히 인터넷과 웹을 같은 의미로 사용함
2)웹의 동작 원리
-기본적으로 클라이언트/서버 방식으로 동작함. 클라이언트(웹 브라우저)가 특정 페이지를 웹 서버에 요청하면(request) 이를 처리한 후 그 결과를 클라이언트에게 보내어 응답하는(response) 것임
-웹 서버가 웹 브라우저를 통해 해당 웹페이지를 제공함(응답). 이때 요청하는 쪽이 클라이언트(사용자)이고 응답하는 쪽이 서버(제공자)임. 클라이언트가 서버에 HTML 페이지나 파일을 요청하면 서버가 이에 응답하여 HTML 페이지나 파일을 클라이언트에게 제공하는 장소가 바로 웹임
*웹 서버
1.Java -> oracle
2.Js -> nodeJS
3.C# -> MS
*설치
1.운영체제
↓ ↓
Linux window NT
unix
2.서버프로그램
↓ ↓
Apache IIS
3.언어팩
↓ ↓
JDK 닷넷
2.정적 웹페이지와 동적 웹 페이지
-웹 페이지는 크게 정적(static) 페이지와 동적(dynamic) 페이지로 나눌 수 있음. 정적 웹 페이지는 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것이고, 동적 웹 페이지는 저장된 내용을 다른 변수로 가공 처리하여 보는 것임. 정적 웹 페이지는 HTML(HyperText Markup Language)과 같은 웹 언어로 작성하고, 동적 웹 페이지는 PHP(Personal Home Page), ASP(Active Server Page), JSP와 같은 웹 언어로 작성함
cf)정적: 변수x / 동적: 변수o
*PHP: C/ ASP: C# / JSP: Java
-HTML은 가장 단순한 형태의 웹 언어임. 서버에 HTML, 이미지, 자바스크립트 등을 저장해두고, 클라이언트가 특정 HTML 문서를 요청하면 전송함
(1)사용자가 웹 브라우저에 URL을 입력하여 요청하면 (2)해당 URL의 웹 서버에서 수신된 파일을 검색하여 (3)이미 준비된 HTML 문서를 클라이언트에게 그대로 보내고 (4)웹 브라우저가 HTML 문서를 보여줌
-초기의 웹은 대부분 정적 웹 페이지를 서비스함. 정적 웹 페이지는 미리 만들어놓은 정보만 보여주기 때문에 고객의 취향이나 변화에 적응할 수 없고, 새로운 것을 추가, 수정, 삭제 하는 작업을 모두 수동으로 처리해야 하므로 관리하기가 어려움. 하지만 동적인 요소가 없기 때문에 데이터베이스도 필요 없고 구축하기 쉬우며, 단순 문서로만 이루어져 있어 서버 간 통신이 거의 없고 속도가 빠름. 또한 정적 문서로만 이루어져 있기 때문에 모든 호스팅 서버에서도 동작할 수 있다는 것이 장점임. 그러나 기술이 발전함에 따라 사용자의 기호에 맞게 능동적으로 변화하는 웹 페이지가 필요해져서 이를 위해 동적 웹 페이지를 제공하는 PHP, ASP, JSP와 같은 언어가 개발됨. 현재 우리가 보는 대부분의 웹 페이지는 동적 웹 페이지라고 할 수 있음
-동적 웹 페이지는 사용자가 웹 페이지에 글을 작성하거나 환경 설정 등을 바꾸면 그 내용이 서버에 있는 데이터베이스에 저장되고 결과가 웹 페이지에 반영되는 형태로 동작함
-즉 확장자가 ASP 또는 JSP인 웹 페이지를 요청하면 ASP는 DLL이나 OCX 같은 파일을 이용하고, JSP는 서블릿을 이용하여 처리함. 그런 다음 그 결과를 HTML 파일로 만들어 클라이언트에게 전송함
(1)사용자가 웹 브라우저에 URL을 입력하여 요청하면 (2)해당 URL의 웹 서버에서 요청을 분석하여 (3)데이터베이스 연동이 있다면 이를 처리한 후 (4)웹 서버는 그 결과를 전송받아 HTML 문서로 생성하여 (5)요청에 맞게 정제된 HTML 문서를 클라이언트에게 보내고 (6)웹 브라우저가 HTML 문서를 보여줌
-따라서 하나의 서버로부터 다른 결과를 응답받음으로써 사용자마다 요청에 따라 처리된 HTML문서를 볼 수 있음. 로그인하면 개인에 대한 정보와 개인만의 화면으로 구성되는 웹 사이트가 동적 웹 페이지의 대표적인 예임
3.서블릿과 JSP
-웹 프로그래밍 언어는 클라이언트 측 실행 언어와 서버 측 실행 언어로 구분되며, 자바를 기반으로 하는 서블릿과 JSP는 서버 측 웹 프로그래밍 언어임. 원래는 선마이크로시스템(오라클에 합병됨)가 자바를 기반으로 하는 서버 측 프로그래밍 방식인 서블릿을 먼저 새발했으나 서블릿 방식이 그리 쉽지 않아 HTML 코드에 직접 삽입할 수 있도록 개발된 기술이 JSP임. JSP는 서블릿과 동떨어진 기술이 아니며, 실제로 웹 어플리케이션 서버에서 클라이언트에게 서비스될 때는 서블릿으로 변경됨
-서블릿이 자바 코드 안에서 HTML 코드를 추가한다면 JSP는 HTML 코드 안에 자바 코드를 추가함
cf)클라이언트 측 실행 언어: HTML -> 브라우저가 해석(크롬)
서버 측 실행 언어: Java
*서블릿(Java 삽입 기술)
↓ 발전
JSP
↓
HTML (+ Java)
1)서블릿의 개념과 특징
-서블릿(Servlet)이란 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 웹 프로그래밍을 말하며 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종임. 서블릿은 JSP와 비슷한 점이 있지만, JSP가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있음
2)JSP의 개념과 특징
-JSP(Java Server Pages/Jakarta Server Pages)는 자바 언어를 기반으로 하는 스크립트 언어로 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 전달하는 서버측 스크립트 언어임. JSP는 실행 시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있음. 하지만 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리함. 또한 JSP 태그 라이브러리를 사용하는 경우 자바 코딩 없이 태그만으로 간략히 기술이 가능하므로 생산성을 높일 수 있음
-JSP는 서블릿 기술의 확장임. JSP에서는 서블릿의 모든 기능을 사용할 수 있음
◎Jakarta Server Pages
-Jakarta Server Pages는 JSP(Java Server Pages)의 새로운 이름임. JakartaEE(자카르타EE)에서는 자바 네임페이스가 Jakarta로, API 패키지명은 javax.*에서 Jakarta.*로 변경됨
◎서블릿과 JSP의 차이
서블릿 | JSP |
자바 코드 안에 HTML 태그를 삽입함 | HTML 코드 안에 자바 코드를 삽입함 |
HTML 태그를 문자열("")로 처리해야함 | 자바 코드를 <% %> 태그 안에 처리해야 함 |
자바 코드 수정 시 다시 컴파일하고 배포해야 함 | 키워드가 태그화 되어 서블릿에 비해 배우기 쉬움 |
4.서블릿과 JSP의 동작 과정
1)서블릿의 동작 과정
(1)클라이언트가 URL을 입력하면 해당 HTTP Request(요청)를 서버의 서블릿 컨테이너(Servlet Container)로 전송함. HTTP Request를 전송받은 서블릿 컨테이너는 HttpServletRequst, HttpServletRespinse 두 객체를 생성함
(2)배포 서술자 web.xml을 기반으로 사용자가 요청한 URL을 분석하여 어느 서블릿 객체에 대한 요청인지를 찾음
(3)해당 서블릿 객체에서 service 메소드를 호출하며, 클라이언트의 POST, GET 여부에 따라 doGet() 또는 doPost()를 호출함. doGet(), doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보냄
(4)웹 서버는 정적 웹 페이지처럼 *.class의 실행 결과를 웹 브라우저에 응답으로 전달하므로 웹 브라우저는 새로 가공된 HTML 페이지를 동적으로 처리한 결과를 보여주는 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸 시킴
2)JSP의 동작 과정
(1)웹 브라우저가 웹 서버에 JSP를 요청함. 웹 서버는 요청된 Hello.jsp에서 jsp 확장자를 발견하여 JSP 페이지임을 확인하고 웹 서버에 있는 JSP 컨테이너에 전달함
(2)JSP 컨테이너는 JSP 페이지를 서블릿 프로그램인 Hello_jsp.java로 변환함
(3)JSP 컨테이너가 서블릿 프로그램을 컴파일하여 Hello_jsp.class로 만들고 이를 웹 서버에 전달함
(4)웹 서버는 정적 웹 페이지처럼 *.class의 실행 결과를 웹 브라우저에 응답으로 전달하므로 웹 브라우저는 새로 가공된 HTML 페이지를 동적으로 처리한 결과를 보여줌
*JSP
<a> <- HTML + Java
↓ 1.추출
임시클래스 3.컴파일
2.삽입 -> 임시클래스.class -> 문자/숫자 출력(HTML로 이동)
◎웹 서버,웹 컨테이너, 웹 어플리케이션 서버의 차이
-웹 서버(Web Server): HTTP 프로토콜을 이용하여 클라이언트(웹 브라우저)의 요청을 받아 HTML이나 오브젝트를 전송함. 클라이언트의 요청 중 웹 서버 자체적으로 처리할 수 없는 것은 컨테이너처럼 처리할 수 있는 곳으로 넘겨 처리하기도 함. 웹 서버만으로 구축된 서버는 웹 페이지, 이미지 등 정적 페이지를 생성함. ex) 아파치, IIS 등
-웹 컨테이너(Web Container): 웹 컨테이너는 JSP와 서블릿을 실행할 수 있는 프로그램으로 서블릿 컨테이너 라고도 함. 웹 서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고, 서블릿의 수행 결과를 웹 서버에 전달함. 서블릿 컨테이너의 개념과 동일한 JSP 컨테이너가 탑재되어 있는 WAS(Web Appication Server)는 JSP 페이지를 컴파일하여 동적 페이지를 생성함 ex)톰캣
-웹 애플리케이션 서버(Web Application Server): 웹에서 사용하는 컴포넌트를 올려놓고 사용하는 서버를 웹 어플리케이션 서버라고함. 다시 말해 웹 서버와 웹 컨테이너를 결합한 서버임. 가장 많이 사용하는 WAS 서버는 톰캣, BEA의 웹 로직(WebLogic) 등임 ex)아파치 톰캣
5.서블릿과 JSP 생명 주기
1)서블릿의 생명 주기
(1)로딩 단계
-서블릿 객체가 처음 요청된 경우라면 서블릿 클래스를 메모리에서 로딩하여 객체를 생성해야 함. 생성된 객체는 메모리에 계속 존재하기 때문에 이후부터는 서블릿 객체가 새로 생성되지 않고, 메모리에 있는 서블릿 객체를 사용함
(2)초기화 단계: init() 메소드
-서블릿이 처음 요청될 댸 초기화 하는 메소드
(3)실행 단계: service() 메소드
-서블릿 컨테이너가 요청을 받고 응답을 줄 때 필요한 서블릿의 메소드
(4)소멸 단계: destroy() 메소드
-서블릿 클래스가 더 이상 사용되지 않으면 서블릿 컨테이너는 주기적으로 destroy() 메소드를 호출하여 제거함. 제거된 서블릿 클래스를 다시 사용하려면 init() 메소드를 다시 호출해야 함
2)JSP 생명 주기
(1)번역단계
(2)컴파일 단계
(3)로딩 및 초기화 단계: jspInit() 메소드
(4)실행 단계: _jspService() 메소드
(5)소멸 단계: jspDestroy() 메소드
02.JSP 개발환경구축
-JSP 웹 페이지를 만들려면 먼저 다음과 같은 개발 환경 도구를 설치해야 함
◎개발 환경 도구
요소 | 프로그램명 | 설명 |
자바 개발 환경 | JDK | JSP는 HTML 코드 내에 자바 코드를 작성하기 때문에 자바 개발 도구인 JDK가 반드시 설치되어 있어야 함 |
웹 서버 | 톰캣 | 웹 프로그래밍 언어로 작성된 웹 페이지가 실행되어 웹 브라우저에 나타나도록 하기 위해 웹 컨테이너를 설치해야 함. JSP 웹 컨테이너로 자주 사용되는 것 중에서 가장 중요한 것은 톰캣임. 톰캣은 오픈소스 프로젝트로서 누구나 사용할 수 있음 |
통합 개발 환경 | 이클립스 | JSP 코드를 작성한 후 이를 컴파일하여 오류를 검사하고 실행 결과를 확인 할 수 있는 통합 개발 환견(IDE)으로 개발자들에게 가장 인기 있는 이클립스를 선택하여 설치함 |
*도구
1.운영체제: Linux 생략
2.JDK 설치
3.톰캣 설치
4.이클립스 설치->코드 작성
1.자바 설치하고 환경 설정하기
1-1.JDK 설치하기
1)오라클 사이트에 접속하기
-오라클 사이트( http://www.oracle.com/kr/java)에 접속하여 [리소스]-[Java 다운로드]를 클릭
Java Software
비용 절감, 혁신 촉진, 애플리케이션 서비스 개선을 가능하게 해주는 Java Software. 세계 1위 개발자 플랫폼 Java에 대한 더 많은 정보를 확인해보세요.
www.oracle.com
2)JDK SE 개발 키트 선택하기
-Java downloads 화면의 Java 17 버전을 선택하고 [windows]-[x64 Installer] 파일을 클릭하고 다운로드
3)자바 설치하기
-다운로드한 설치 파일을 더블클릭하여 설치 시작 -> 각 설치 단계마다 기본 설정을 그대로 두고 [next] 또는 [다음] 클릭 -> 마지막 화면 [close] 클릭
4)자바 설치 위치 확인하기
-자바를 기본 설정으로 설치하면 C:\program File\Java 폴더에 설치됨. Java\jdk-17\bin 폴더에는 자바 컴파일러인 javac.exe와 JVM을 구동하는 파일인 java.exe가 있음
1-2.자바 환경 변수 설정하기
1)[환경 변수] 대화상자 열기
-윈도우 탐색기의 [내 PC]에서 마우스 오른쪽 버튼 -> [속성] -> [고급 시스템 설정] 메뉴 선택 -> [시스템 속성] 창의 [고급] 탭에서 [환경변수] 클릭
2)자바 환경 변수 설정하기
-'시스템 변수'의 [새로 만들기] 클릭 -> JAVA_HOME 환경 변수 값에 JDK가 설치된 C:\program File\Java\jdk-17를 지정 -> [확인] 클릭 -> '시스템 변수'의 path 변수를 선택 -> [편집] 클릭 -> [환경변수 편집] 창에서 [새로 만들기] 클릭 -> path 변수 값의 맨 끝에 앞의 변수 값과 구분하기 위한 세미콜론(;)을 입력하고 JDK가 설치된 위치를 설정한 환경 변수 %JAVA_HO ME%bin을 추가한 후 [확인] 클릭 하여 등록
-이렇게 path를 지정하면 C:\program File\Java\jdk-17\bin에 들어 있는 javac 컴파일러를 경로와 상관없이 아무 데서나 사용할 수 있음. 콘솔 화면에서 자주 사용하는 명령어는 이렇게 path를 지정하면 편리함
-환경 변수에는 사용자 변수와 시스템 변수가 있는데, 사용자 변수는 현재 로그인한 사용자에게만 적용되는 환경 변수이고 시스템 변수는 모든 사용자에게 적용되는 환경변수임
3)자바에서 설정한 환경 변수 확인하기
-윈도우의 시작 버튼에서 'cmd' 입력 -> [명령 프롬프트] -> 'javac -version'을 입력하여 JDK의 버전이 나오는기 확인
◎자바 환경 변수를 설정하는 이유
-보통 자바를 설치하면 컴퓨터의 어떤 경로에서든 자바 애플리케이션에 접근(bin 폴더) 할 수 있도록 환경 변수를 설정하는데 그 이유는 다음과 같음. 첫째, 어떤 위치에서든 소스코드를 만들고 작업할 때 일일이 전체 경로(절대 경로) h를 사용하지 않기 위함. 둘째, 클래스나 jar 파일 등을 참조하여 애플리케이션을 실행하기 위함. 셋째, 버전별로 파일 관리를 쉽게하기 위함
2.웹 서버와 통합 개발 환경 설치하기
1-3.톰캣 설치하기
1)아파치 사이트에 접속하여 다운로드하기-아파치 사이트( https://tomcat.apache.org/ )에 접속하여 [Download]-[Tomcat10]을 선택-> [Arechive]-[v10.0.26/]-[bin]-[apache-tomcat-v10.0.26-Windows-x64.zip]를 선택하여 다운로드
Apache Tomcat® - Welcome!
The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta
tomcat.apache.org
2)다운로드한 apache-tomcat-10.0.26 폴더를 C드라이브로 옮기기(C:\ 경로에 바로 압축 풀어도 됨)
1-4.이클립스 다운로드하고 설치하기
1)이클립트 사이트에 접속하기
-이클립스 사이트( http://www.eclipse.org/downloads/)에 접속하여 [Download Packages]를 클릭
Eclipse Downloads | The Eclipse Foundation
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.
www.eclipse.org
2)이클립스 설치 파일 다운로드하기
-JDK 설치 때와 마찬가지로 설치하려는 컴퓨터의 운영체제에 맞는 이클립스 설치 파일을 선택 -> 목록 중 'Eclips IDE for Enterprise Java and Web Developer'의 'Windows x86_64'를 클릭 -> eclipse-jee-2024-12-r-win32-x86_64.zip 파일의 <Download>를 클릭하여 다운로드
cf)패키지(*.zip)가 아닌 실행파일(*.exe)을 다운로드하면 JSP 애플리케이션을 개발하는 데 필요한 패키지를 별도로 다운로드해야 하므로 여러 패키지가 포함된 zip 파일을 다운로드하여 설치함
3)설치 완료하고 실행하기
-다운로드한 설치 파일의 압축을 풀고 하위에 있는 eclipse 폴더를 C 드라이브로 옮기기 -> C:\eclipse 폴더 안에 안의 eclipse.exe 파일을 더블클릭하여 이클립스 실행
4)이클립스 작업 공간 설정하기
-이클립스를 실행하면 처음에 [select a directoty as workspace] 대화상자가 나타나는데, workspace는 이클립스에서 생성한 프로젝트를 저장하는 공간임. 기본적으로 C:\User\사용자\workspace 폴더로 지정되며 변경도 가능함. 작업 공간을 변경하지 않는 경우 <Launch>를 클릭함
◎작업 공간(workspace) 확인
-이클립스의 작업 공간이 설정되면 그곳에서 스프링 프로젝트를 생성하여 코딩 및 실행 작업을 진행함. 이클립스에서 작업 공간을 처음 설정한 후 경로가 달라지면 기존에 작업한 내용이 보이지 않으므로, 이클립스를 실행할 때 나타나는 작업 공간을 꼭 확인해주어야 함. 만약 작업 공간을 여러 개 만들어놓았다면 [File]-[SwitchWorkspace] 메뉴에서 원하는 작업 공간을 선택하여 이동할 수 있음
5)이클립스 실행 화면
-[Wolcome] 창 오른쪽 상단의 [Hide]를 클릭하면 이클립스 창이 나타남
1-5.이클립스와 톰캣 서버 연동하기
1)Server 프로젝트 생성하기
-이클립스에서 [File]-[New]-[Other]를 선택
2)웹 서버 유형 설정하기
-[Select a wizard] 창에서 [Server]-[Server]를 선택하고 [Next]를 클릭 -> [Define a New Server] 창에서 [Apache]-[Tomcat v10.0 Server]를 선택하고 [Next]를 클릭
3)웹 서버 위치와 JRE 설정하기
-[Tomcat Server] 창에서 [Browse]를 클릭하여 톰캣을 설치한 경로를 설정한 후 [Finish]를 클릭
4)연동 확인하기
-이클립스의 프로젝트 탐색기에서 Servers 프로젝트가 생성된 것을 확인할 수 있으며, 이클립스 하단의 콘솔 창에서 [Servers] 탭 창을 보면 현재 추가된 서버 Tomcat v10.0 Server at localhost의 목록이 표시되어 있음. 또한 이클립스의 [Window]-[Preferences]를 선택하여 [Preferences] 창의 [Server]-[Runtime Environments]에서 Apache Tomcat v10.0 서버가 등록된 것을 확인할 수 있음
<webapp에 html 파일 생성하고 코드 작성하기>
<!DOCTYPE html>
<html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 안녕하세요 </body> </html> |
실행 결과
![]() |
'프로그래밍 > JSP' 카테고리의 다른 글
JSP 웹프로그래밍 59일차 (25/2/10) (1) | 2025.02.10 |
---|---|
JSP 웹프로그래밍 58일차 (25/2/7) (0) | 2025.02.07 |
JSP 웹프로그래밍 57일차 (25/2/6) (0) | 2025.02.06 |