개발공부 일지
학원수업_37day [HTML,CSS,JSP,Servlet(4day) - web ] 본문
학원수업_37day [HTML,CSS,JSP,Servlet(4day) - web ]
짜몽- 2022. 9. 23. 08:48**Servlet 기본 개념**
HTTP : Hyper Text Transfer Protocol 웹 통신 규약
HTTPS : HTTP Secure -> 보안 http protocol 의 보안 , 암호화된 버전
Web Server : HTTP 에 의거해 HTML(html,css,javascript) 문서를 서비스 하는 서버
웹 브라우저 클라이언트에 정적인 컨텐트를 서비스하는 서버
Web Application Server ( WAS ) : Web Server + Web Container
데이터베이스 서버 및 타 서버와 연동
다양한 비즈니스 로직을 처리하여
동적인 컨텐트를 클라이언트에게 제공하는 웹 어플리케이션 서버
Web Container : java web 기술인 Servlet 과 JSP 가 실행되는 환경 제공



우리는 현재 WAS 제품군 중에서 Apache Tomcat 9 버전을 이용한다
- 자바 웹 어플리케이션 개발 환경 설정
0. WAS 인 Apache Tomcat 9 버전 다운로드 후 압축해제
1. Apache Tomcat\conf\server.xml 에서 port 를 8080 에서 8888 로 변경 -> oracle web port와 중복되므로
URIEncoding="utf-8" 설정 추가 -> http get 방식 요청 데이터의 한글 처리를 위해
2. Apache Tomcat\conf\context.xml 에서 reloadable="true" , 서버 프로그램 변경시 서버 restart 없이 자동 리로드
- Client Side Script
HTML : web document 의 컨텐트를 담당
CSS : web document 디자인 스타일 담당
JavaScript : web document 행위 담당
ECMAScript 표준을 준수하는 스크립트 언어
ECMA 인터내셔널 : 정보 통신 표준을 제정하는 표준화 기구
ES5 (ECMA5, 2009) : 변수 선언 var -> 중복 선언 가능 , Function-level scope
ES6 (ECMA6, 2015) : 변수 선언 let -> 중복 선언 불가 , Block-level scope
const 상수 , arrow function ( 화살표 함수 ) 등이 새롭게 추가
DOM ( Document Object Model ) : javascript 에서 Html(web) 문서(document) 의 요소(element)를
제어하기 위한 프로그래밍 인터페이스(제어 방법)를 제공한다
웹브라우저에서 지원
HTML 문서 요소를 계층적으로 지원 ( Dom Tree )
각 요소들을 자바스크립트에서 제어하고 조작하기 위한
함수를 제공
- Server Side : Servlet & JSP
- Servlet : Java Web Programming의 기반 기술
Model 2 MVC ( Web MVC ) 의 Controller 역할을 담당
java class 개발 방식
- JSP : Java Server Page , 서버 사이드에서 동적인 웹문서를 생성하는 템플릿 엔진 역할을 담당
html 내에 java code 삽입하는 개발 방식 -> 웹문서 구현에 장점
jsp 는 WAS ( Web Container ) 에 의해 Servlet class 로 생성됨
Model 2 MVC ( Web MVC ) 의 View 역할을 담당
- Web MVC or Model2 MVC => 이후 공부예정
Model : 비즈니스 로직과 / 데이터 액세스 로직을 담당
java component(or java beans) 가 담당 : DAO, Service , VO 등
View : 클라이언트에게 동적인 화면을 제공
-> jsp가 담당
Controller : 제어자의 역할 , 클라이언트 요청 분석 후 모델과 연동 , 적절한 view를 선택
Servlet 이 담당
- Java Web Application 설정 방식
1) xml 설정 방식 : WEB-INF\web.xml => DD ( Deployment Descriptor : 배포기술서 )
소스 코드와 설정이 분리
2) Annotation 설정 방식 : 의미있는 주석 => 설정 정보의 역할
소스 코드 상에서 설정 정보를 기술
web.xml 의 예 : client 가 hello url 로 요청하면 step1.HelloServlet가 실행된다
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>step1.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- Http Request Method ( 요청 방식 )
- get 요청방식 : 정보 조회용 , url 상에 전달하는 정보가 노출 , 전송 데이터 용량에 제한
- post 요청방식 : 정보 전송용 , url 상에 정보가 노출되지 않음 , 전송 데이터 용량에 제한이 없음
별도의 한글처리가 필요
(ex - 로그인시 , 파일 업로드시에는 post 방식을 이용해야 함 )
미들웨어 : WAS (Web server + Web container)
html 에 도달하는건 servlet 밖에 없다.
WAS 안에 일이 어떻게 돌아가는지 한번 생각해보기
서버소켓이랑 한번 비교해서 뭐가다른지 보기
!!!workspace 가 실행되는건 webapps 이다!!
WAS 라는 웹 컨테이너에서 이클립스 JSP 실행한 내용이 실행된다.
JSP는 내부적으로 컨테이너에서 자바로 이루어지고 서블릿으로 실행이된다.
(JSP는 Servlet의 하위이다.)
서블릿은 자바클래스.
jsp is a Servlet
사람 동물이다.

웹컨테이너 역할 : html 을 동적으로 만들수 있도록 환경을 지원하는것
(서블릿과 jsp 를 동작할수있게 환경을 만들어준다)
View 코드를 보면 Hmtl에 자바를 넣고있다.
자바스크립트 동적인 행동을 담당한다
다이나믹한 웹페이지를 공장처럼 찍어내기위한 역할 -> jsp
model -> java compouent (beans) 자바빈
모델쪽에 컴포넌트를 만드는 작업이 여태 우리가 한것 ( EX) DAO..,,)
화면을 보여주는 용도는 별도의 기술이 하기때문에
JSP 로
Servlet
-> java class
-> java object
servlet 이라는건 자바 웹 기술을 위한 자바클래스 (extends http servlet)
익셉션 -> 자바클래스의 일종
스레드 는 익셉션의 특정한 자바클래스
서블릿은 일반자바클래스오브젝트 인데
자바웹어플리케이션의 특화된 기술이다.
http 을 이해하는 클래스가 servlet
JSP : WAS 에 의해서 자바클래스로 변경이된다. 컴파일까지 됨.
사람은 동물이다. 개는 동물이다.
컨테이너에서 만들어진 JSP 는 java class HTTP Servlet의 자식이다.
jsp는 서블릿이다. -> 사람은 동물이다.
jsp 와 Servlet 은 동일한 부모이다. -> jsp와 Servlet은 특화된 자바클래스이다.
Hello Servlet
(java class)
서버상에서 실행되는 자바프로그램
Servlet <- http Servlet <-JSP
* 우리가 자주 보게 될 에러 들 *






html 로 전송을 시켜야 하기에 왼쪽 클래스 에서 실행시켜야 함.





'학원수업 > Web(HMTL,CSS,JSP,Servlet)' 카테고리의 다른 글
| 학원수업_39day [HTML,CSS,JSP,Servlet(6day) - ServletConfig, Servletcontext] (0) | 2022.09.26 |
|---|---|
| 학원수업_38day [HTML,CSS,JSP,Servlet(5day) - web ] (0) | 2022.09.23 |
| 학원수업_36day [HTML,CSS,Javascript (3day) - web 구동원리 ] (0) | 2022.09.22 |
| 학원수업_35day [HTML,CSS,Javascript (2day) - div,span ] (0) | 2022.09.21 |
| 학원수업_34day [HTML,CSS,Javascript (1day) - Web] (0) | 2022.09.20 |