basic/jsp

JSP[01] - 웹과 JSP

못지(Motji) 2021. 6. 1. 17:28

인터넷과 웹

인터넷 : 컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고 받는 전세계의 컴퓨터 네트워크

웹 (World Wide Web) : 인터넷의 서비스 중 하나로 인터넷에 연결된 컴퓨터들을 통해 정보 공유하는 공간

웹 동작 원리

클라이언트/서버 방식으로 동작

  • 클라이언트 : 사용자(요청자), 웹브라우저
  • 웹서버 : 서비스 제공자
    아파치, 톰캣, IIS, 제우스(공공기관) ...

동작방식

클라이언트 --- 웹페이지 요청(request) ▸ 웹서버

(브라우저) ◂ 결과물로 응답(response) --- ex. 아파치톰캣

정적 웹페이지 / 동적 웹페이지

  • 정적 웹페이지 : static
    ∙ 저장된 텍스트 파일 그대로 보는 것
    ∙ html 같은 웹 언어로 작성
    ∙ 사용자가 web브라우저에 url 입력 요청 ▸ 이미 준비된 문서 그대로 보내줌
    ∙ 초기 웹페이지, db 필요없음
  • 동적 웹페이지 : dynamic
    ∙ 저장된 내용을 가공처리해서 보는것
    ∙ php, asp, jsp 같은 웹 언어로 작성
    ∙ 사용자가 web브라우저에 url 입력 요청 ▸ 분석, 처리 ▸ html파일 생성 보내줌

웹주소

url : http:// IP : port / File 경로

cmd : ipconfig 검색하면 ip주소 나옴

http//192.168.0.250:8080/jsp/main.jsp ▸ main.jsp 이 페이지 좀 보여줘

http//localhost:8080/(jsp/main.jsp) ▸localhost 자기자신을 가리키는 것

이것이 (jsp/main.jsp) url

웹프로그래밍과 JSP

웹 프로그래밍 : 웹 서버가 웹 브라우저에 응답으로 전송할 데이터를 생성해주는 프로그램을 작성하는 것

웹 프로그래밍 언어 : 클라이언트 측 실행 언어와 서버측 실행 언어로 구분

JSP(Java Server pages) : 자바를 기반으로 하는 서버측 웹 프로그래밍 언어 (서버사이트 스크립트 언어)

 

서블릿 servlet : 자바 코드안에 HTML 코드 추가

JSP : HTML 코드안에 자바 코드 추가

  1. JSP는 서블릿 기술의 확장
  2. JSP는 유지 관리 용이
  3. 빠른 개발 가능
  4. 코드 길이가 줄어듬

처리 과정 : JSP 페이지는 서블릿 프로그램으로 변환되어 실행됨

  1. 웹 브라우저기 hello.jsp 요청. 웹 서버는 jsp 확장자를 발견 확인하여 웹 서버에 있는 jsp 컨테이너(jsp 엔진)에 전달함
  2. jsp컨테이너는 jsp 페이지를 서블릿 프로그램인 hello_jsp.java로 변환
  3. jsp컨테이너가 서블릿 프로그램을 컴파일하여 hello_jsp.class로 만들고 웹서버에 전달
  4. 웹서버는 .class 실행 결과를 웹 브라우저에 응답으로 전달, 웹 브라우저는 새로 가공된 html 페이지를 동적 처리한 결과 보여줌

웹 서버, 웹 컨테이너, 웹 어플리케이션 서버

웹 서버 (출입구, 클럽가드)

  • http 프로토콜을 이용하여 클라이언트 요청을 받아 html이나 오브젝트를 전송
  • 웹 서버 자체적으로는 처리 못하는 것은 컨테이너처럼 처리할 수 있는 곳으로 넘겨 처리
  • 웹 서버만 구축된 서버는 웹페이지, 이미지 등 "정적 페이지" 생성
  • 아파치, IIS 등

웹 컨테이너

  • jsp와 서블릿을 실행할 수 있는 프로그램으로 서블릿 컨테이너라고도 함
  • 웹 서버에서 jsp를 요청하면 톰캣에서는 jsp 파일을 서블릿으로 변환하여 컴파일을 수행
  • 서블릿 수행결과를 웹서버에 전달

웹 어플리케이션 서버(web application server : WAS)

  • 웹서버와 웹컨테이너를 결합한 서버
  • jsp 컨테이너가 탑재된 was는 jsp 페이지를 컴파일하여 "동적페이지" 생성함
  • 톰캣, BEA의 웹로직 등


jsp 생명주기

jsp 페이지를 컴파일한 .class 에는 jspInit(), _jspService(), jspDestroy() 메소드 존재함

 

개발 [Hello.jsp] —①번역—> [Hello_jsp.java] 서블릿 — ②컴파일—> [Hello_jsp.class] — ③로딩 및 초기화 jspInit() —>

④실행 _jspService() —>⑤ 소멸 jspDestroy()

요청 -> 응답

한번 실행이 되었으면 요청이오면 실행만 된다.

db연결 해제 스트림 끊기 다썼ㄷㅏ.

인코딩 관련

UTF-8 : 유니코드, UTF-16, UTF-8

 

한국어 지원

# ISO--8859-1

# KSC5607 : 국내

# MS949 / CP949 : MS사

# EUC-KR : ANSI를 확장한 버전

# ANSI : =ASCII

웹프로젝트 구조

웹 서버가 준비된 상태에서 아래와 같은 폴더 구조를 갖춰야 한다.

  • [폴더명] : 프로젝트명 : context root, Context Path (web)
    - [WEB-INF]
        - [lib] : 추가할 자바 라이브러리 배치
        - [classes] : 자바의 컴파일된 클래스 파일 ( 이클립스상에서는 안보임. 숨겨져 있음)
        - web.xml : 필요한 설정 작성하는 파일
    - jsp/html/css/이미지....
    - [META-INF] : 자바 패키지 기술인 jar의 일부, 자바에서 설정관련 파일을 저장하는 폴더

 

더보기
Java Resources, WebContent는 이클립스에서 만든 가상의 폴더 실제 없는 것, 이클립스의 서어비스
url 경로변경

페이지 에러

404 : jsp파일 못찾는다 ▸파일이 존재하는지 확인, url 경로가 맞는지 확인

500 : 대부분 자바 에러