Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개발공부 일지

학원수업_37day [HTML,CSS,JSP,Servlet(4day) - web ] 본문

학원수업/Web(HMTL,CSS,JSP,Servlet)

학원수업_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 로 전송을 시켜야 하기에 왼쪽 클래스 에서 실행시켜야 함.

해당란에 value를 넣고 get요청방식 테스트를 누르면 나오는 결과값