[Servlet] 1. Servlet/JSP 개요

2022. 10. 7. 11:11·📗 self-study/📗 KH정보교육원 당산지원

 

더보기
Servlet/JSP의 개요

 

 

 

서버(Server)

 

네트워크 통신 개요

👉🏻 Server-client Model: 서버는 특정한 서비스를 제공하는 컴퓨터, 클라이언트는 서비스를 이용하는 사용자를 말함

웹 서비스를 제공받고 싶으면 웹 서버

이메일을 보내고 싶으면 메일 서버

파일 전송, 업로드, 다운로드 관련 일을 하고 싶으면 FTP(File Transfer Protocol) 서버

...

👉🏻 내가 원하는 기능에 대한 서버에 요청해야 함

 

 

 

웹 통신 개요

👉🏻 웹 서버는 웹 관련이기는 하지만 정적 데이터만 전송 가능하므로 웹 서버만으로는 우리가 원하는 페이지를 만들 수 없음

       ex) 네이버 홈페이지 로그인 시 유저마다 이름, 메일 수, 이메일 주소 등이 모두 다름 => 동적 데이터

  

 

Web Server

사용자에게 HTML 페이지나 jpg, png 같은 이미지를 HTTP 프로토콜을 통해 정적인 요소들을 화면에 보여 주는 역할

ex: Apache, Windows IIS, NGINS 등

 

 

Web Application Server(WAS)

사용자가 요청한 서비스 결과를 가공해서 동적인 페이지를 사용자에게 보여 주는 역할

ex: tomcat(우리가 쓸 것: 아파치 톰캣), wildfly, jeus 등

👉🏻 아파치 톰캣: 정적 요소는 아파치, 동적 요소는 톰캣이 2way로 처리함

 

 

구분 장점 단점
Web Server - 빠른 속도(요청에 대한 결과 페이지만 전송)
- 구현 쉬움(HTML 같은 단순 문서만으로 구성)
- 한정적 서비스(만들어진 정보만 보여 줌)
- 추가, 수정, 삭제 어려움(변경 시 직접 수정)
WAS - 서비스 다양성(여러 데이터 활용)
- 추가, 수정, 삭제가 쉬움(변경 시 자동 변경)
- 느린 속도(데이터 처리 후 결과 전송)
- 구현 어려움(서비스 소스를 직접 작성)

 

 

 

Apache tomcat 설치

👉🏻 Web Server와 WAS의 기능을 모두 가지고 있음

 

 

1. 공식 홈페이지 접속: https://tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the

tomcat.apache.org

 

 

2. Tomcat 8(8.5.82) - Core - zip 버전 다운로드

 

 

3. 압축 해제 후 경로 옮기기 (C드라이브 - dev 폴더)

 

 

4. C드라이브에 Web-worckspace 폴더 생성

 

 

5. workspace 폴더 지정해서 eclipse 열기

 

 

6. eclipse 기본 설정

 

6-1) Java EE

이제는 우측 상단 커피콩 모양 Java EE(웹사이트 제작)를 이용해 줘야 함

 

6-2) 탭 설정

이클립스의 기본 탭들을 필요한 것들로만 채워 줌

 

Servers: 아파치 톰캣 파일을 구동시켜 주는 탭

Project Explorer, Console, Problems, Nevigator(Project Explorer와 같지만 파일 구조 형태로 보여 줌)

=> 이 설정이 workspace .matadata 폴더에 들어가 있음

 

6-3) 인코딩 설정(UTF-8) 7가지

(JDBC 설정과 동일) Preferences - Gerenal - workspace - Text file encoding - Other : UTF-8

(JDBC 설정과 동일) Preferences - Gerenal - Editors - Text Editors - Spelling - Other : UTF-8

 

Preferences - Web -  Css Files - Encoding : ISO 10646/Unicode(UTF-8)

 

Preferences - Web -  HTML Files - Encoding : ISO 10646/Unicode(UTF-8)

 

Preferences - Web - JSP Files - Encoding : ISO 10646/Unicode(UTF-8)

 

Preferences - JSON - JSON Files - Encoding : ISO 10646/Unicode(UTF-8)

 

Preferences - XML - XML Files - Encoding : ISO 10646/Unicode(UTF-8)

 

6-4) 서버를 돌릴 수 있는 세팅 추가

 

  • 서버 실행 환경 잡기(구동하고자 하는 서버 환경 제공)Preferences - Server - Runtime Environments - Add - Apache Tomcat v8.5 - Next - 이름, 경로 지정 후 Finish - Apply and Close(Name은 마음대로 바꿔도 상관없음, 경로는 아파치 톰캣 폴더 옮겨 준 apache-tomcat-8.5.82 폴더 선택)

        👉🏻 서버 환경을 여러 개 추가해 놔도 상관은 없음~!

 

  • 서버 추가Server 탭에서 New - Server - Tomcat v8.5 Server - Server's host name 절대 수정 금지! - Next - Finish

나중에 내 프로젝트를 서버에 올리거나 지울 때 사용할 창
우왕 서버를 만들었땅

Navigator에도 생겼는데 서버의 환경설정이 담겨 있음

즉, 건드리지 마시오!

 

*서버 돌리다가 서버에 문제가 생긴 것 같으면 그냥 서버 지우고 새로 Add 하세요

 

  • 기타 설정 잡기
    • 등록한 서버 더블 클릭 하여 Overview 접속 - Ports - HTTP/1.1 Port Number이 8080 👉🏻 8888로 변경 (8080은 이미 오라클이 선점하고 있는 상태, 포트 번호 동일하면 오류남)
    • Overview 접속 - Server Options - Serve module without publishing 체크 박스 설정 (.jar 파일들 다 가지고 있을 거냐라는 뜻)

  • 저장!

 

이제 동적 페이지 프로젝트를 만들 수 있다 *^_____^*

 

 

 

동적 웹프로젝트 만들기

추가하고 프로젝트 이름 설정한 뒤 반드시 Next 버튼!

(바로 Finish 하면 큰일남)

 

*추후 배포 시에는 다음 페이지의 content directory(최상위 폴더)를 배포하므로 .class 파일을 이 경로에 넣어 줘야 함!*

 

java 코드는 src 폴더에 작성할 거고,

컴파일된 .class 파일은 Defalut output folder에 지정된 경로로 넣어 줄 거야~

 

 

context root: 프로젝트 1개 == 웹 사이트 1개 == 내가 제작한 웹사이트를 대변할 메인 이름

context directory(매우 중요): 내 웹사이트 구동에 필요한 모든 파일을 모두 담아 둔 최상위 폴더 

 

web.xml: 환경설정 해 주는 파일

*ㅇㅋ 만들게! 체크박스 설정 후 Finish*

 

 

 

web.xml 파일

👉🏻 배포 서술자(DD, Deployment Descriptor) 라고 해서 해당 웹 애플리케이션의 기본적인 설정을 위해 작성하는 파일
👉🏻 해당 웹 애플리케이션을 구동하는 서버가 start(구동) 시 제일 먼저 읽혀지는 파일이기 때문에 설정값을 지정하는 파일이 됨
👉🏻 개발자가 web.xml 파일을 수정하지 않고도 개발 및 운영이 가능하나
       프로젝트의 규모가 커지고 다양한 Filter, Servlet 등을 사용하게 되면 직접 수정해야 하는 경우가 생길 수도 있음

 

<?xml version="1.0" encoding="UTF-8"?> <!-- 안녕 나는 xml 파일 형식이야~! -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<!-- xml 문법에 맞는지 유효성 검사해 주는 태그 -->

  <display-name>1_Servlet</display-name> <!-- 내 프로젝트 이름 -->
  
  <welcome-file-list> <!-- 니가 메인 페이지 띄웠을 때, 메인 페이지 이름은 적어도 얘네들 중 하나로 설정해 줘야 돼! -->
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

 

welcome-file

👉🏻 처음에 url로 해당 이 웹 애플리케이션 루트(== 메인 == Context Root)로 요청 시 제일 먼저 보여지게 되는 메인 페이지를 지정해 놓은 것


✔️ http://localhost:8888/1_Servlet

👉🏻 각자 본인 컴퓨터에 구축해 놓은 서버의 IP 주소를 요청: localhost == 127.0.0.1
👉🏻 서버의 포트 번호 : 설정해 놓은 8888
👉🏻 서버 내의 구동 중인 Context Root: 1_Servlet
(한 서버에 여러 개의 프로젝트가 올라갈 수 있음 - 프로젝트 구분 용도)
단, 해당 파일은 WebContent / 폴더 안에 바로 위치해 있어야만 함!

 

 

 

HTML File 생성

👉🏻 WebContent에 HTML File 생성

 

 

 

실행됨!
url 주소로 접속 가능!

 

 

 

정리

더보기

👉🏻 1) 새로 워크스페이스 만들어서 이클립스로 열기
        
👉🏻 2) 워크스페이스 셋팅하기 (워크스페이스 : 작업환경)
           2_1) 웹 애플리케이션을 하기 위해 java EE 환경으로 설정
           
           2_2) 보여질 UI 탭들 셋팅하기 [Window] - [Show View]
                (탭 : Project Explorer, Navigator, Console, Problems, Servers)
           
           2_3) 인코딩 설정 및 서버 Runtime Environments 셋팅 [Window] - [Preferences]
                2_3_1) 인코딩 설정 : 영어, 숫자, 한글 등 모든 문자셋을 사용할 수 있도록 UTF-8 로 셋팅
                       (General - Workspace)
                       (General - Editors - Text Editors - Spelling)
                       (Web - CSS Files, HTML Files, JSP Files)
                       (XML - XML Files)
                       (JSON - JSON Files)
                
                2_3_2) 서버 Runtime 잡기 : 이클립스에서 서버를 실행할 수 있도록 연동하는 과정
                       (Server - Runtime Environments)
                       - Add 클릭 - 설치한 아파치 톰캣과 동일한 버전 선택 - Next
                       - Name 수정 가능 (안하면 기본값) - Browse 클릭 - 설치한 아파치 톰캣 폴더 선택 - Finish
        
👉🏻 3) 서버 생성하기
           3_1) [New] - [Server]
           
           3_2) 창에 기본적으로 2_3_2 번 과정에서 셋팅해놓은 Runtime 이 잡혀있을 것
                (Server name 변경 가능)
            
           3_3) Finish
           
           3_4) 생성된 서버 수정하기 (만들어진 서버 더블 클릭)
                3_4_1) 포트번호 재설정 (현재 기본값으로 잡혀진 8080 포트와 오라클 기본 포트가 동일하므로 충돌 발생)
                       8080 을 8888 로 바꿔준다
                3_4_2) 왼쪽 하단 Server Options 에 Server modules without publishing 체크
                       => 다음 단계에서 지정할 output folder 에 제대로 컴파일 된 파일들이 가게끔! 무조건 체크할것!
                       
👉🏻 4) Dynamic Web Project 만들기 (동적인 웹 애플리케이션)
           4_1) 프로젝트명 신중하게 작성할 것 - Next
           4_2) default output folder 경로 재설정 : WebContent\WEB-INF\classes - Next
                => output folder 로 지정된 classes 폴더에는 컴파일된 클래스 파일들이 들어가는 폴더이다.
                     실제로 프로젝트 배포 시 WebContent 폴더가 배포된다. (즉, 이 안에 컴파일된 클래스 파일들이 있어야 된다는 것)
                     기본 경로 (build\classes) 로 지정해 놓으면 해당 그 폴더가 WebContent 안에 만들어지지 않는다. 주의!
           4_3) Context root : 이 애플리케이션만의 고유한 이름으로 지어줄 것 (기본값으로 프로젝트명 / 보통은 재정의해서 지음)
                               => 하나의 서버로 여러개의 애플리케이션을 구동시킬 수 있음.
                                        고유한 이름을 따라서 해당 애플리케이션에 접근하는 경로로 사용 가능하고, 각 애플리케이션을 구분지을 수 있다.
                Content directory : 실제로 배포되는 폴더 (즉, 서버에 올라가는 폴더) 의 최상위 폴더명을 지정하는 것
                                    => default output folder 의 WebContent 폴더로 지정할것!
                Generate web.xml deployment descriptor 무조건 체크할것 (기본적으로 체크 안되어있음)
                => web.xml 문서에 기본적인 해당 애플리케이션에 대한 전체 설정 정보를 가지고 있는 파일 (서버 실행과 동시에 메인페이지를 지정해줌)
                     굳이 파일을 수정할 일이 없다면 안만들어도 되지만 (내부적으로 server 가 가지고 있는 web.xml 파일이 존재하긴 한다.)
                     그래도 혹시나 수정을 한다거나 작업할 일이 있을 경우를 대비하여 무조건 생성하자!
           4_4) Finish
           
👉🏻 5) 새로이 만들어진 Project 확인해보기
           5_1) [프로젝트] - [WebContent] - [WEB-INF] - classes 폴더 잘 만들어졌는지 확인하기
           5_2) [프로젝트] - [WebContent] - [WEB-INF] - web.xml 문서 잘 만들어졌는지 확인하기
           5_3) index.html 파일 만들기
           
👉🏻 6) 생성해놓은 서버에 애플리케이션 올리기
           => 서버 오른쪽 버튼 - Add and Remove - 올리고자 하는 애플리케이션 선택 후 오른쪽으로 옮기고 - Finish
         
👉🏻 7) 서버 Start 후 웹 애플리케이션 요청해서 index 잘 열리는지 확인해보기

저작자표시 비영리 변경금지 (새창열림)
'📗 self-study/📗 KH정보교육원 당산지원' 카테고리의 다른 글
  • [Servlet] POST 방식 테스트
  • [Servlet] Servlet의 정의와 GET 방식 테스트
  • [ERD, ER 다이어그램 그리는 법] DB 모델링
  • [유스케이스 다이어그램 그리는 법] UML과 모델링, 유스케이스 다이어그램
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[Servlet] 1. Servlet/JSP 개요
상단으로

티스토리툴바