Ajax 통신 정의


Ajax 통신은 비동기적인 웹 어플리케이션의 제작을 위한 웹 개발 기법이다.

*여기서 비동기적인이란 서버에 웹페이지를 요청할 때 정식루트로 데이터가 오가든 말든 서버에 요청을 따로 요구할 수 있다는 것이다.

쉽게 얘기하면 한 페이지에서 어느 부분에 대한 변화를 요청한다면( 예시: 네이버 메인에서 웹툰, 푸드 카테고리 변화) 그 부분에 대해서만 통신하여 결과를 변화로 반영하는 형식이다.

Ajax 통신의 필요성

단적으로 말해서 Ajax 통신이 없다면 페이지의 한 부분만 변화시키고 싶어도 항상 서버와 클라이언트사이에는 전체 페이지의 데이터를 주고받아야한다. 이는 중복되는 데이터를 계속주고 받음으로써 대역폭낭비를 야기하고 대역폭 낭비는 곧 금전적 손실과 속도 하향 등 많은 문제를 야기한다.

따라서 Ajax 통신을 사용하여 필요한 부분만 데이터를 주고 받게 함으로써 중복성을 피할 수 있다.

Ajax 통신의 예제



위 사진에서 카테고리를 선택하면 아래의 화면이 부분적으로 빠르게 변화하는 것을 볼 수 있을 것이다. 여기서 Ajax 통신을 사용하고있다. 단순한 카테고리 변화이기 때문에 각 카테고리의 해당 부분만 서버에서 가져오면 되는 것이다.

예시 코드



예시는 많지만 HTTP예제중 하나인  XMLHTTPRequest를 사용해서 작성해보도록 한다.
Ajax의 예시는 다양하게 있으니 검색해서 알아보는게 좋은 것이다.

function ajax(data) {
 var oReq = new XMLHttpRequest();
 oReq.addEventListener("load", function() {
   console.log(this.responseText);
 });    
 oReq.open("GET", "http://www.example.org/getData?data=data");//parameter를 붙여서 보낼수있음. 
 oReq.send();
}

1.open을 하면 해당 URL에 데이터를 요청을 준비한다.
2.send를 통해서 해당 서버에 데이터를 요청합니다.
3.addEventListener에 load이벤트 리스너를 추가하여 데이터가 load되면 해당 함수를 실행합니다.

Ajax통신에는 XML뿐만 아니라 다양한 데이터형식들을 주고받을 수 있습니다.


출처:https://www.edwith.org/boostcourse-web/lecture/16701/




'Web' 카테고리의 다른 글

Servlet - Hellow World 출력하기(intellij)  (0) 2020.01.18
Web - Event & EventListener  (0) 2020.01.18
JSP(Java Server Page) - 정의, 문법  (0) 2020.01.18
Scope (유효변수)에 대하여  (0) 2020.01.18
Page scope  (0) 2020.01.18

JSP란?

JSP(자바 서버페이지)는 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다.  - 위키백과

 

위의 정의를 쉽게 설명해보겠습니다. 서버에서 요청에 따라 동적으로 처리하는 건 PHP와 매우 유사합니다. 사실상 자바로 동적 웹을 제어하기 위해서 만들어진것이 JSP입니다. 대부분 서블릿과 JSP를 비교하는데 차이점을 알아두시는게 좋을 것같습니다.

 

서블릿: 자바를 기반으로 하여 웹페이지를 동적으로 제작함 -> 자바문법을 따라야 하며 HTML태그및 코드들을 일일이 다 출력해줘야함 -> 페이지를 디자인하고 작성하는데 불편함
JSP: HTML 표준에 따라서 작성하고 PHP처럼 중간에 삽입이 가능함 -> 디자인에 효율적

 

JSP의 실행 구조

 

JSP는 Tomcat과 같은 내장 서버 프로그램이 빌드하여 실행을 합니다. 이 때 서버는 JSP를 서블릿으로 바꾸고 그 서블릿을 다시 실행하여 웹페이지를 제작합니다.  JSP를 자체를 빌드하기 보다는 변환하여 빌드를 진행합니다.

 

JSP - 문법

 

그럼 본격적으로 JSP의 문법을 코드를 통해서 알아보습니다.

코드와 주석을 보면서 파악하는게 가장 효율적입니다.

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<%--
JSP Description:
jsp는 서블릿의 한계를 극복하기 위한 언어이다.
기존의 html형식에 자바스크립트처럼 끼워넣어 사용하지만 명백히 서버사이드 언어이다. 따라서 JS보다 해킹에 안정적이다.
jsp는 jsp를 바로 실행하는 모듈(서버, 톰캣 등등)이 있는 것이 아니라 서블릿으로 변화하여 실행이 된다.
 --%>
<%-- JSP의 기본문법:
0. 기본적인 지시자: <%@ %>
1. 전역변수 및 함수 선언문: <%! 내용 %>
2. 스크립트릿(프로그래밍 코드를 기술): <% 내용 %>
3. 표현식(화면에 출력할 내용을 기술): <%= 내용 %>
4. JSP의 주석: <%-- 내용 --%>
<%-- 훑어 보시고 직접 예시를 보시는걸 추천해드립니다.  --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%--
@:지시자이다.
page: 페이지에 대해서 지시한다는 뜻이다.
language: 언어의 타입을 설정 다른 언어도 이론적으로 사용가능하지만 안씀
contentType: 말그대로 내용이다 text/html은 데이터의 형식 charset은 데이터표기 방식이다.
pageEncoding: 코드를 해석하여 페이지를 표현할때의 데이터 표기방식을 정한다. --%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>sum10</title>
  </head>
    <body>
      <%-- 예제 1번: 반복문을 사용해서 합을구하고 표현하기 --%>
      <%-- 스크립트릿을 사용해서 html안에서 바로 자바코딩이 가능합니다. --%>
      <%
      int total = 0;
      // 여기에서 선언되는 변수는 지역변수가 됩니다.
      for(int i = 1; i <= 10; i++){
          total = total + i;
        }
        %>
        1부터 10까지의 합 : <%=total %>
        <%-- <%=total %>의 의미는 .out.println(total)과 같은 의미이다. --%>
        <br>
          <%-- 예제 2번: 함수및 전역변수 선언하기 + 표현하기--%>
          <%!
          public static int id=12321;
          public static int getId(){
          return id;
        }
        %>
        id는 <%=getId()%> , <%=id%>입니다.
      </body>
</html>
cs

'Web' 카테고리의 다른 글

Web - Event & EventListener  (0) 2020.01.18
Ajax 통신 정의, 필요성, 예제  (0) 2020.01.18
Scope (유효변수)에 대하여  (0) 2020.01.18
Page scope  (0) 2020.01.18
Request Scope  (0) 2020.01.18

서문

 

웹 프로그래밍에서 데이터를 다루는 부분은 아주 다양합니다.

예를 들어 페이지 안에서만 하는 경우, 브라우저가 처리하는 경우, 서버가 다루는 경우 등 여러 범위에 퍼져있기 때문에 웹 프로그래밍 전체에서 데이터의 범위를 표현하기위해서 Scope라는 개념을 사용합니다.


Scope란?

변수의 유효범위(접근성)과 생존기간을 뜻합니다.

 

범위의 종류는?

기본적으로  4가지 scope를 사용하여 표현합니다.

page Scope < request Scope < Session Scope < Application Scope

순서대로 점차 넓은 범위를 가지게 됩니다.

 

 

4가지 Scope는?

Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용

Session : 웹 브라우저 별로 변수가 관리되는 경우 사용

Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용

Page : 페이지 내에서 지역변수처럼 사용

 

 

 

자료 출처: https://www.edwith.org/boostcourse-web/lecture/16708/

'Web' 카테고리의 다른 글

Ajax 통신 정의, 필요성, 예제  (0) 2020.01.18
JSP(Java Server Page) - 정의, 문법  (0) 2020.01.18
Page scope  (0) 2020.01.18
Request Scope  (0) 2020.01.18
Session Scope에 대해  (0) 2020.01.18

Page_scope

:한 페이지가 실행되는 동안만 사용되는 변수 범위

 

특정 서블릿이나 JSP가 실행되는 동안에만 정보를 유지 하고 싶은 경우가 있습니다.

 

이 경우에 사용되는 것이 page scope입니다.

 

이번 시간에는 page scope에 대해서 알아보도록 하겠습니다.

 

*사용방법

setAttribute, getAttribute로 사용

 

지역변수처럼 사용한다.

 

EL이나 JSTL에서 편하게 사용할수 있다.


*자세한 내용

 

  1. PageContext 추상 클래스를 사용한다.
  2. JSP 페이지에서 pageContext라는 내장 객체로 사용 가능 하다.
  3. forward가 될 경우 해당 Page scope에 지정된 변수는 사용할 수 없다.
  4. 사용방법은 Application scope나 Session scope, request scope와 같다.
  5. 마치 지역변수처럼 사용된다는 것이 다른 Scope들과 다릅니다.
  6. jsp에서 pageScope에 값을 저장한 후 해당 값을 EL표기법 등에서 사용할 때 사용됩니다.
  7. 지역 변수처럼 해당 jsp나 서블릿이 실행되는 동안에만 정보를 유지하고자 할 때 사용됩니다.

출처: https://www.edwith.org/boostcourse-web/lecture

'Web' 카테고리의 다른 글

Ajax 통신 정의, 필요성, 예제  (0) 2020.01.18
JSP(Java Server Page) - 정의, 문법  (0) 2020.01.18
Scope (유효변수)에 대하여  (0) 2020.01.18
Request Scope  (0) 2020.01.18
Session Scope에 대해  (0) 2020.01.18

+ Recent posts