<수업내용>
@@Servlet, JSP
@ Sever 와 Client
-> Server : 특정한 서비스를 제공하는 컴퓨터
-> Client : 서비스를 이용하는 사용자
EX) KTX 표 예매
-> 코레일 홈페이지에 접속해서 예매를 진행
-> 코레일 홈페이지는 서버, 이용하는 사람은 사용자
-> 코레일 홈페이지는 사용자에게 웹 서비스를 제공
-> 사용자는 웹 서비스를 이용
-> 사용자가 요청하는 정보를 Request
-> 서버가 요청에 응답하는 정보를 Response
@ Service의 종류
-> Web, Mail, FTP, DataBase
@ Web 통신구조
Client - WebServer - WAS Server - DB
(HTML/CSS/JS) (JSP/Servlet)
(Front - End) (Back - End)
@ WebServer 종류
-> 사용자에게 HTML 페이지나 jpg, png 같은 이미지를 HTTP 프로토콜을 통해
웹 브라우저에게 제공하는 서버로, 이미 만들어져 있는 정적인 요소들을
화면에 보여줌
# Apache : Apache Software Foundation 에서 만든 서버로 HTTP 통신에 대한 여러
라이브러리 제공
# Windows IIS : MS에서 만든 웹서버, 높은수준의 보안성과 성능을 제공(유료)
# NGINX : 무료오픈소스로 가벼움과 높은성능을 위해 사용
@ WAS ?
-> Web Application Sever 의 약자, 사용자가 요청한 서비스의 결과를
스크립트언어등으로 가공하여 동적인 페이지를 사용자에게 보여줌
-> DB와의 연결고리를 맡고 있는 서버
# Tomcat : 전 세계적으로 가장 많이 사용되고 있으며, 중소기업이나 관공서에서
많이 사용
# Jeus : 티맥스 소프트가 만든 국산 서버, 관리가 쉽고 대용량데이터를 고성능 처리
# WildFly(JBoss) : 레드햇사가 만든 was로 폭넓은 다양한 서비스를 제공
## WAS에서 사용하는 언어 ##
-> JSP(Java Server pages)
-> SUN사의 JAVA를 기반으로 웹 환경에 맞게 개발된 동적 웹 프로그래밍 언어
-> PHP(Professional HYpertext Preprocessor)
-> C, C++, Perl, Java 등의 언어를 기반으로 하여 만들었고, C언어 문법과 유사
-> ASP(Active Server Pages)
-> MS사에서 개발한 동적 웹 페이지 생성 스크립트 언어
#정적 페이지
-> 클라이언트가 URL을 입력하여 요청하면 해당 URL 웹서버에서 이미
저장되어있는 HTML 문서를 사용자에게 보내줌
#동적 페이지
-> 클라이언트가 URL을 입력하고 요청하면(검색, 로그인 ... )을 하면 웹서버에서
요청 정보를 처리한 후 처리결과에 따라 다른페이지를 생성하여 HTML문서를 사용자에게
보내줌
@ 서블릿(Servlet)
-> Server + Applet의 합성어
※ Applet : Java 언어로 구성되어 웹 브라우저에서 실행되는 간단한 기능의 소규모 프로그램
-> 서버에서 실행되는 작은 Applet이란 의미로 자바를 이용하여 웹에서 실행되는
프로그램을 작성하는 기술
-> 서버측에서 사용 될 수 있도록 확장시킨 자바프로그램
-> 서블릿 실행환경을 웹 컨테이너, 서블릿 컨테이너로 불림
@ JSP
-> Java Server Page 의 약어로써 HTML태그에 자바로 프로그래밍하여 브라우저에
보여주는 페이지
out.println("<h1> 테스트페이지 </h1>")
@ 웹 서버와 웹 컨테이너
-> 웹 서버는 웹 페이지를 가지고 있는 서버
-> 웹 컨테이너는 웹 페이지를 가지고 있는 서버
-> 웹 서버가 가지고 있는 웹페이지는(HTML , JS) 등의 페이지만 가능
-> 웹 컨테이너는 HTML, JS, 서블릿, JSP도 가능
-> 웹 컨테이너에 속한 것이 서블릿 컨테이너, JSP 컨테이너
@ 서블릿 컨테이너
-> 서블릿의 생명주기를 관리(생성, 초기화, 소멸)
-> 서블릿 객체 생성(HttpServletRequest, HttpResponse 객체)
-> 통신 커뮤니케이션 지원
-서블릿과 웹이 서로 통신할 수 있도록 도와줌
-서블릿컨테이너가 없으면, 포트열고, 연결요청드러오면 스트림생성해서 스트림만들고, 스트림 반환....
작업을 자동으로 처리
-> 멀티스레딩 지원
-사용자 요청이 들어오면 새로운 자바 스레드를 만드러서 처리
-요청을 처리하면 스레드 정리
-여러명의 클라이언트가 동시요청을 하더라도 문제가 없음
-> 정적로딩처리(서버가 시작 될때 페이지를 로딩 후 작동)
@ JSP 컨테이너
-> JSP파일을 Java 코드로 변환(서블릿화)하고 클래스파일로 전환하여 메모리 공간에 로드
-> 처리결과를 HTML 파일로 만들어주는 작업
-> 동적로딩처리(서버가 시작되고 난 후 처리결과에 따라 페이지를 생성)
(JSP 수정시 새로고침 / Java 코드 수정시 재시작)
고전웹 -> 동적인 정보를 보기위해서는 Applet을 client가 설치 했어야함(날씨, 환율 등등)
-> 설치에 대한 불편함이 생김 -> Servlet이 탄생 -> Servlet을 통해서 동적인 페이지를 표시하기 시작
-> Java언어 + HTML코드를 작성 -> Web publisher들이 Java를 공부해야되는 문제점 발생
-> JSP탄생 -> JSP만으로 웹개발(MVC1) -> JSP페이지 코드양이 많아짐
-> MVC2패턴(Java 코드, HTML 코드를 분리), 데이터처리는 Servlet, 화면구현은 JSP로 진행
-> Web publisher는 약간의 Java 공부가 필요한 문제점이 발생 -> EL, JSTL, 액션태그
1. Servlet을 가지고 페이지 제작
2. MVC1으로 페이지 제작
3. MVC2로 페이지 제작 -> EL, JSTL, 액션태그로 변경
#서블릿에서 데이터를 처리하는 4단계
1. 전송값에 한글이 있을 경우를 처리하기위한 인코딩
2. 웹에서 보내준 데이터를 꺼내서 변수에 저장
3. 비지니스 로직 처리(DB작업)
4. 처리결과 내보내기
************************
사용자 화면에서 -> Servlet 요청 -> Servlet에서 HTML 페이지 작성
사용자 화면에서 -> JSP요청-> DAO호출 -> 결과 받아서 처리
************************
@JSP
-> 동적인 웹페이지를 java언어를 이용하여 html, xml 기반으로 작성 할 수 있는 기술
-> 수정 시 재시작 할 필요없음
-> WebContent : HTML, CSS - Front 파일 -> JSP
-> src : 자바소스 -> servlet
Servlet
out.println("<h1>"+m.getMemberName()+"</h1>")
JSP
<h1><%=m.getMemberName()%><h1>
@JSP Element
<%-- --%> : jsp 주석
<%@ 내용 %> : 지시자 태그 - 페이지에 대한 설정
<%! 내용 %> : 변수 선언, 클래스 import 등..
<% 내용 %> : 스크립트릿 - 자바 코드 작성
<%= 값 %> : 표현식 변수의 값 표현
지시자 태그(<%@%>)
-> JSP 페이지 전체에 영향을 미치는 정보를 기술 할 때 사용
@@page
<%@page import = "java.util.Scanner"%>
-> import를 제외하고는 한페이지당 한개만 선언 가능
<%@ include %>
-> 페이지 내부에 다른 jsp페이지를 불러오는 지시자
'이공계전문기술연수 > Servlet | JSP' 카테고리의 다른 글
<이공계기술전문연수> 6. Servlet / JSP Servlet Filter (0) | 2019.10.08 |
---|---|
<이공계기술전문연수> 5. Servlet / JSP MVC1 실습 (0) | 2019.10.07 |
<이공계기술전문연수> 3. Servlet / JSP MVC1 , MVC2 (0) | 2019.10.01 |
<이공계기술전문연수> 3. Servlet / JSP (0) | 2019.09.29 |
<이공계기술전문연수> 1. Servlet / JSP Tomcat 셋팅 (0) | 2019.09.26 |