시작하기 (3)

💻 Programming/JSP

[JSP] JSP 시작하기

오늘은 JSP를 만들고 실행해보는 시간을 가져보도록 하겠습니다. 

 

하지만 그 전에 앞서서 알려드릴 것이 하나 더 있습니다. 바로 Scriptlet입니다.

 

Scriptlet은 변수선언, 메소드 선언, 자바에서 사용되는 문법들, 또는 유효한 스크립트 페이지 표현등을 내부에 가질 수 있습니다.

Scriptlet의 문법은 다음과 같습니다.

<% code fragment %>

 

그리고 XML에서 사용할 때에는 아래와 같이 쓸 수 있습니다.  

<jsp:scriptlet> code fragment </jsp:scriptlet>

HTML 태그나 JSP 요소 등 모든 텍스트는 scriptlet의 내부에 써서는 안됩니다.  

아래는 JSP 사용 예제입니다.  

<html> <head><title>Hello World</title></head> <body> Hello World!<br/> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body> </html>

NOTE: Apache Tomcat 웹서버가 C:\apache-tomcat-7.0.2 에 설치되어 있다는 가정하에 위 HTML 코드를 hello.jsp 안에 작성하고 파일을  C:\apache-tomcat-7.0.2\webapps\ROOT 디렉토리에 넣습니다. 그리고 웹브라우저에서 http://localhost:8080/hello.jsp 에 접속해보세요. 물론 웹서버를 기동시키셔야겠죠?? 그럼 아래 그림처럼 결과가 나올 것입니다. 

 

 

 

 



와우~~ 해냈습니다~
우리의 첫 JSP로 만든 웹페이지에요~ ^__^ 

 

 

JSP 선언부:

선언부라는 것은 하나 이상의 변수나 메소드를 선언하는 것을 말합니다. JSP파일 내부에서 추후에 사용될 변수나 메소드를 미리 선언해두는 선언부죠.  

 

JSP 선언부 문법:

<%! declaration; [ declaration; ]+ ... %>

XML에서 사용하실 때는 아래처럼 사용하세요.

<jsp:declaration> code fragment </jsp:declaration>

아래는 JSP 선언부의 예제입니다.

<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>

JSP 표현부:

JSP 표현부는 결과가 하나의 String으로 반환됩니다. JSP 파일내에서 HTML태그로 감싸져 있는지와는 관계없이 사용될 수 있으며 자바문법에 맞는 모든 자바코딩을 하실 수 있습니다. 물론 결과는 String이라는 것만 유의하시면 될 것 같네요. 

 

JSP 표현식의 문법은 아래와 같습니다.

<%= expression %>

XML에서 사용하실 때는 아래처럼 사용하시면 됩니다.

<jsp:expression> expression </jsp:expression>

아래는 JSP 표현부 사용 예제입니다. 

<html> <head><title>A Comment Test</title></head> <body> <p> Today's date: <%= (new java.util.Date()).toLocaleString()%> </p> </body> </html>

웹브라우저에서 보면 아래처럼 나올 것입니다.

Today's date: 11-Sep-2010 21:24:25

 

JSP 주석:

JSP 주석을 달기위한 문법은 아래와 같습니다.

<%-- This is JSP comment --%>

다음은 JSP 주석 예제입니다. 

<html> <head><title>A Comment Test</title></head> <body> <h2>A Test of Comments</h2> <%-- This comment will not be visible in the page source --%> </body> </html>

웹브라우저에서 실행한 결과는 아래와 같습니다.

A Test of Comments

 

 

 

 

 

 

아래는 주석을 넣거나 특별한 경우 문자를 넣을 때 사용될 수 있는 문법입니다. 지금 당장은 그냥 이런게 있다라고 생각하시면 될 것 같네요. 

 

Syntax

Purpose

<%-- comment --%>

A JSP comment. Ignored by the JSP engine.

<!-- comment -->

An HTML comment. Ignored by the browser.

<\%

Represents static <% literal.

%\>

Represents static %> literal.

\'

A single quote in an attribute that uses single quotes.

\"

A double quote in an attribute that uses double quotes.

 

 

 

이상으로 JSP의 간단한 사용법을 공부해 보았습니다.

 

뭐 별거 없네요, 그죠? ^___^

 

 

 

Reference : http://www.tutorialspoint.com/jsp/jsp_quick_guide.htm 

'💻 Programming > JSP' 카테고리의 다른 글

[JSP] Custom Tags ( 커스텀, 사용자 정의 태그 )  (0) 2019.02.15
[JSP] Directives ( 디렉티브 )  (0) 2019.02.15
[JSP] JSP 생명 주기 ( life cycle )  (0) 2019.02.15
[JSP] 조건문, 반복문  (0) 2019.02.15
[JSP] JSP란?  (0) 2019.02.15

💻 Programming

[Redis] 레디스 시작하기 (설치하기)

Redis 는 오픈소스이며 메모리를 이용한 키-값 페어로 저장하는 데이터베이스입니다. 따라서 일반 디스크에 저장하는 데이터베이스보다 속도가 월등히 뛰어나며 웹어플리케이션에서 유용하게 사용될 수 있습니다.

Redis 는 다른 경쟁 데이터베이스와 비교했을 때 다음과 같은 차이점이 있습니다.

  • Redis 는 데이터베이스를 완전히 메모리에 저장하며 영속성을 위해서만 디스크를 사용합니다.

  • Redis 는 다른 키-값 저장형태를 사용하는 데이터베이스들과 비교했을 때 상대적으로 다양한 데이터 타입을 지원합니다.

  • Redis 는 무제한의 슬레이브 복제를 가능하게 합니다.

Redis Advantages (레디스의 장점)

  • Exceptionally Fast (매우 빠른 속도) : Redis 는 매우 빠른 속도를 자랑합니다. 초당 110000 건의 업데이트가 가능하며, 약 81000 건의 조회가 가능합니다.

  • Supports Rich data types (다양한 데이터 타입 지원) : Redis 는 기본적으로 개발자들이 알고있는 대부분의 데이터 타입을 지원합니다. 리스트(list), 집합(set), 정렬된 셋(sorted set), 해쉬(hashes) 등을 모두 지원합니다. 따라서 왠만한 문제를 해결하기 위해서 특별히 공을 들여 특정 데이터 타입에 맞도록 설계할 필요가 없어집니다.

  • Operations are atomic (동작의 원자성) : 모든 레디스 오퍼레이션은 원자성을 띄기 때문에, 두 명 이상의 사용자가 동시에 레디스 서버에 접속할 경우 업데이트된 값을 조회할 수 있습니다.

  • MultiUtility Tool () : Redis 는 멀티 유틸리티 툴이고 다양한 케이스에 사용될 수 있습니다. 예를들면 캐싱(caching), 메시지 큐(messaging-queues), 또는 세션 정보나 웹페이지 방문자수와 같은 짧은 기간동안에만 필요한 데이터들을 저장하기 위해 사용될 수 있죠.

레디스가 다른 키 - 값 저장 DB에 비해 다른 점?

  • Redis 는 더 복잡한 데이터 타입을 값으로 저장할 수 있다는 점과 그런 데이터 타입을 저장하거나 조회하는데 atomic 접근을 보장하기 때문에 여타의 키-값 저장 DB와는 다른 길로 진화를 했다고 볼 수 있습니다.

  • Redis 는 in-memory 기반이지만 디스크에 영속적인 데이터베이스이기 때문에 메모리에 저장될 수 없을만큼 많은 양의 데이터를 저장할 수는 없습니다. in-memory databases의 장점은 복잡한 데이터 구조를 다루는 것이 디스크에 저장된 동일한 데이터 구조를 다루는 것보다 쉽다는 것입니다. 이게 무슨 말인지는 아직 잘 이해가 되질 않네요.


Install Redis on Ubuntu (우분투에 레디스 설치하기)

우분투에 레디스를 설치하기 위해서는 터미널 창에서 아래와 같은 명령어를 입력하면 됩니다.

$sudo apt-get update
$sudo apt-get install redis-server


Start Redis (레디스 시작하기)

$redis-server

아주 간단하죠?

Check if redis is working? (레디스가 동작하는지 확인하기)

$redis-cli

이 명령어는 아래와 같은 레디스 프롬프트를 띄웁니다.

redis 127.0.0.1:6379>


이제 ping을 날려봅시다.

redis 127.0.0.1:6379> ping
PONG

그러면 위 처럼 PONG라는 단어가 출력이 되야 합니다. 여기까지 됐다면 레디스가 정상적으로 설치된 것입니다.



💻 Programming/웹프로그래밍

Ajax 란? - Ajax 시작하기

AJAX가 뭘까요? 


AJAX는 Asynchronous Javascript And Xml의 약자입니다.


이름에서 알 수 있듯이 비동기식 자바스크립트와 XML을 말합니다. 


이름에 XML이 나오기는 하지만 XML을 알 필요는 없습니다.  


AJAX를 사용하기 위해서는 기본적으로 HTML과 Javascript를 알고있어야 합니다.


그럼 가장먼저 AJAX가 어떻게 동작하는지에 대해서 알아보도록 할까요?


AJAX는 아래와 같은 순서를 거칩니다.


1. 클라이언트(IE 7+, 크롬, 사파리, 파이어폭스, etc. )에서 XMLHttpRequest객체를 생성하고 메시지를 담아 서버로 보낸다.

2. 서버에서 메시지를 받으면 메시지에 해당하는 정보를 읽어서 다시 브라우저한테 응답해준다.

3. 클라이언트 브라우저가 서버로부터 응답을 받으면 해당 정보를 특정 영역에 refresh해준다.


AJAX를 사용함에 있어서 가장 기본은 XMLHttpRequest 객체입니다. 이 객체는 서버로부터 데이터를 전송받을 때 사용이 됩니다. ( IE 5, 6 버전에서는 ActiveXObject 라는 객체가 사용됩니다. )


그럼 이 객체를 어떻게 만드는지 예제를 통해서 알아보겠습니다.

예제1 - XMLHttpRequest 객체 생성하기

var xhttp;
if (window.XMLHttpRequest) {
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6, IE5
    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
연습하기 »


자, 이제 객체를 생성했으니까 이 객체를 이용해서 메시지를 서버로 전송해야겠죠?


다음 포스팅에서 서버로 메시지를 전송해보도록 하겠습니다.