Daily coding

Servlet : Server와 Client, Sevlet의 개념 본문

Front-end/비동기통신

Servlet : Server와 Client, Sevlet의 개념

sunnnkim 2020. 1. 16. 18:32

 

 Web <== 통신 ==> Java <== 통신 ==> DB 

 

 


server :

: 클라이언트의 요청에 따라 웹 페이지를 가져오거나 데이터를 가져오는 등의 응답을 보내는 역할 수행

 

- WAS : Web Application Syetem - 웹 서버 안에 들어가있음

 

*server + container

- Server는 크게 server와 container로 구성되어 있다.

- container는 session과 folder를 가지고 있음(파일 저장용)

- server 는 Client의 요청을 받아(request) 필요한 데이터를 전송(response)하는 역할을 수행한다

- server에는 JSPServlet 이 있다 ( 같은 기능을 수행하며, 돌아가는 프로그램 및 언어가 다르다)

 ( Servlet : java / JSP : javaScript )

 

 

* Servlet &  JSP

: Servlet과 JSP는 같은 역할을 수행하지만 (클라이언트의 요청사항을 받아 데이터 가공 및 처리),

  구현 방식에 차이가 있다.

Servlet JSP
Java -> HTML HTML -> java
Business Logic을 짜거나 DB와 통신할 때 좋다 화면 구성이 용이하다
Controller(MVC) 로 사용하기 좋음 (data processing) View(MVC)로 사용하기 좋음

Servlet이 수정된 경우, Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트 및 재컴파일한 후 재배포 작업이 필요 (개발 생산성 저하)

JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리 (쉬운 배포)
웹 개발을 위한 표준이 존재함 Servlet를 보완하고 기술을 확장한 스크립트 방식 표준
(Servlet의 모든 기능 + 추가적인 기능)

참고 사이트 : https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html

 

* Servlet : 클라이언트와 서버의 요청과 응답의 순서 알아보기


- client에서 request(요청)이 들어옴
- 요청이 들어오면 서버에서 container 에 들어있는 html코드를 찾는다
- 찾은 코드를 다시 client에게 보내줌 (response)
- server안에 servlet, jsp 내장되어있음
servlet / JSP 은 client의 요청을 해석하는 역할 
- sever는 2가지 방식으로 나뉘어져 있음 (접근영역이 달라짐) 

  ( GET / POST )
- client에서 server로 요청은 url 또는 링크로 전송한다 
- 현재 프로젝트를 확인하는 방식 : (주소창) localhost (또는) IPv4 :portnum/project

 

 

 

 

* Servlet

 : Server + Applet

 ( ※ Node.js : Web <==통신==> DB, 자바없이 바로 웹에서 디비와 통신하는 방식 )

 

< 방식 >

 

          Web Browser(client)            web Application Server(=System) = WAS

                                                       (Servlet: *.html, *.jsp, *.php)

        client <---- request(요청)------ > Web (Server + Container)  <-(MyBatis)->  DB

    

 

* request :  http://x.x.x.x:8090/project명/index.html 

     - url예시, 일반적으로 도메인네임 사용

     - index라는 이름으로 자동적으로 접속이 됨  ( web.xml 에서 자동 설정된 경우)

 

* web.xml

     -  web.xml : server(WAS)가 동작했을 때 자동 초기화되고 세팅되는 데이터

     -  link (<a>태그 등으로 설정)로 만들 수 있음

 

* get /post방식

     - get : 넘어가는 데이터가 링크에 보이도록 하는 방식, 가벼움 (255바이트까지만 가능)

     - post : 넘어가는 데이터가 보안이 적용되어 감추어지는 방식 (로그인 화면 등에서 사용)

     - client 쪽에서 method 방식을 설정한다 ( form태그의 method 프로퍼티를 설정 )

 

 

    < Client.html 코드 >

 <h1>Servlet Basic</h1>

    <form method="GET" action="location">   
    <!-- method의 default는 GET, link를 만들어서 서버쪽으로 데이터를 가지고 가야함 -->
            <input type="submit" value="get 방식">
    </form>
    

    <form method="POST" action="location">   
    <!-- method의 default는 GET, link를 만들어서 서버쪽으로 데이터를 가지고 가야함 -->
            <input type="submit" value="post 방식">
    </form>