한글 번역 사이트 바로가기(새창)


번역된 각 문서들을 보고 다운받을수 있는 TTA사이트 바로가기(새창)


영문 다운로드 사이트 바로가기(새창)

'Web > HTML,CSS' 카테고리의 다른 글

[CSS] 텍스트 말줄임표  (0) 2015.03.11
[CSS] div 둥근 테두리 만들기  (0) 2013.08.30
[HTML] 한글 번역문 HTML 4.01  (0) 2013.08.20
[CSS] Opacity 투명도 조절하기  (0) 2013.08.09

HTML 4.01 한글 번역문

http://www.trio.co.kr/webrefer/html/cover.html

'Web > HTML,CSS' 카테고리의 다른 글

[CSS] div 둥근 테두리 만들기  (0) 2013.08.30
[HTML] html RFC 한글 번역  (0) 2013.08.20
[CSS] Opacity 투명도 조절하기  (0) 2013.08.09
[HTML] DOM이란?(수정)  (0) 2013.07.19

이전 포스팅한 로딩바 구현은 어떤 클릭 이벤트가 일어났을 때, 넘어가기전까지 레이어를 보여주는 방식이었더라면

이번 로딩바는 페이지를 로드하는 처음 시점에서 레이어를 보여주고 리소스가 모두 로드되었을 때 레이어를 가려주는 방법이다. 이전 포스팅 내용은 맨 아래 링크로 남겨두었다.


실행되는 페이지에 아래 코드를 넣어준다.

<script type="text/javascript" src="../includes/jquery.js"/>
<script type="text/javascript">
    (function() { loading_ta(1); })();
    $(window).load(function(){ loading_ta(0); });
</script>


아래 코드는 각 페이지에 넣어도되고 js파일로 만들어 포함시켜도 된다.

function loading_ta(view) {
    if(view) {
        var loading_left = '50%', loading_top = '50%'; // 적용이 안되는 상황을 고려해 기본 값 설정 
        if (typeof (window.innerWidth) == 'number') { //Chrome
            loading_left = window.innerWidth / 2;
            loading_top = window.innerHeight / 2;
        } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            loading_left = document.documentElement.clientWidth / 2;
            loading_top = document.documentElement.clientHeight / 2;
        } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE9
            loading_left = document.body.clientWidth / 2;
            loading_top = document.body.clientHeight / 2;
        }
        var lo_div = "<div name='lo_div' id='lo_div' style='position:absolute; height:100%; width:100%; top:0; left:0; background:#000000; opacity:0.0; filter:alpha(opacity=00); z-index:9995;'></div><div name='lo_div' id='lo_div' style='position:absolute; height:70; width:200; top:"+loading_top+"; left:"+loading_left+"; margin-left:-100px; margin-top:-35px;  background:#ffffff; opacity:0.8; filter:alpha(opacity=80); z-index:9996;'></div><div name='lo_div' id='lo_div' style='position:absolute; height:70; width:200; top:"+loading_top+"; left:"+loading_left+"; margin-left:-100px; margin-top:-35px; text-align:center; z-index:9998;'><p style='height:30; width:200; margin:15px 0px 15px 0px; font-weight:bold;'>데이터 처리 중입니다.<br>잠시 기다려주십시오.</p></div>";
        document.write(lo_div);
    } else if(!view) {
        var lo_ta = document.getElementsByName("lo_div");
        lo_ta[0].style.display="none";
        lo_ta[1].style.display="none";
        lo_ta[2].style.display="none";
    }
}

 2013/08/02 - [대학 정리노트/JavaScript] - [Javascript] 로딩중 레이어 만들고 띄우기



문제점 : 여러개의 Element를 다룰 때 getElementsByName을 사용한다. 하지만 이때, 크롬이나 파이어폭스에선 사용이 가능하지만 IE(Internet Explorer) 버전에서는 불가능 했다.

해결방안:

<div name='getname' id='getname'></div>

<div name='getname' id='getname'></div>

<div name='getname' id='getname'></div>

ID도 같이 줄 경우 해결되었다. 하지만 ID는 고유성을 가져야 하므로 불안한 느낌이 있다.




'Web > JavaScript' 카테고리의 다른 글

[Javascript] IE에서 addEventListener 사용  (0) 2013.08.21
[Javascript] 로딩바 구현  (0) 2013.08.20
[javascript] delay하고 처리하기  (0) 2013.08.17
[javascript] onload 시점 정리  (0) 2013.08.16

어느 정도 시간을 준 뒤에 자바스크립트를 처리하려 할때 사용할 수 있다.


setTimeout( function, mile second );

ex) setTimeout("helloworld()", 1000);    // 1000 mile second == 1 second


일정시간 딜레이만 주려면 아래와 같은 함수를 만들어 사용하면 된다.


function delay(gap){ /* gap is in millisecs */ 

  var then,now; 

  then=new Date().getTime(); 

  now=then; 

  while((now-then)<gap){ 

    now=new Date().getTime();  // 현재시간을 읽어 함수를 불러들인 시간과의 차를 이용하여 처리 

  } 




'Web > JavaScript' 카테고리의 다른 글

[Javascript] 로딩바 구현  (0) 2013.08.20
[Javascript] IE getElementsByName bug  (0) 2013.08.19
[javascript] onload 시점 정리  (0) 2013.08.16
[Javascript] IE setattribute 사용  (0) 2013.08.13


잘못 사용하면 많은 문제점이 따른다. 

먼저 onload는 DOM이 완성된 시점에서 실행된다.


<body onload = ""> 사용 시

<script> window.onload(){ 내용 } </script> 실행되지 않는다.

이에 대한 방안으로 window::onload() { 내용 } 을 사용할 수 있다.

실행순서 : body -> window::onload()


jQuery 활용하기

$(document).ready() 

DOM 데이터만 로드되면 바로 실행된다. 그러므로 window.onload 보다 빨리 실행된다.


jQuery를 이용한 실행 시점 순서이다.

$(window).load(function() { 모두 로드된 후에 처리 });

$(document).ready(function() { DOM객체 로드시 처리 });

$(function() { 로딩 될 때 });




문제 : IE의 9이하로는 javascript에서 setattribute가 실행되지 않는다. 


해결

var div1 = document.createElement("div");

var div2 = document.createElement("div");

div1.onclick = function() { alert("처리중 입니다. 잠시만 기다려주세요.") }

div2.onclick = function() { alert("처리중 입니다. 잠시만 기다려주세요.") }



코딩중에 도저히 내 머리로는 원인을 찾아볼 수 없는 버그가 있었다.

IE10에서는 실행이 되고 IE9에서는 실행이 안되는, 또한 내 컴퓨터에서는 되고 다른 컴퓨터에서는 안되는 문제.

도대체 어느 부분에서 문제가 되는지 머리를 쥐어잡고 찾아보았다.

평소에 console.log로 확인을 하면서 코딩을 하는데 다른 브라우저는 되고, IE9이하에서만 F12로 콘솔창을 띄우면 되고, 안띄운 상태에선 실행이 안되는 문제가 있었다.

콘솔창을 안띄우면 console객체가 정의되지 않은 상태여서 참조 할 수가 없어 console.log() 다음 코드는 실행되지 않는 것 같다.


  해결 방법으로, console.log() 전에 아래 코드를 넣어주면 된다. 조건문을 사용하여 console 객체가 없을 때, 생성하는 것이다.


if (!window.console) console = {log: function() {}};  


이번 경험을 통해 console.log 의 사용을 자제해야겠다... alert()으로 테스트해야지

브라우저별로 width, height 구할 때 다른 경우가 많아서 동일하게 적용할 수가 없다.

잘 정리된 코드가 있어서 어느때든 유용하게 사용할 수 있을 것 같다.


var w = 0, h = 0;

if (typeof (window.innerWidth) == 'number') { //Chrome

w = window.innerWidth / 2;

h = window.innerHeight / 2;

} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {

w = document.documentElement.clientWidth / 2;

h = document.documentElement.clientHeight / 2;

} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE9

w = document.body.clientWidth / 2;

h = document.body.clientHeight / 2;

}


출처 : http://ssamkj.tistory.com/3




수직정렬을 위하여 body 높이를 구할때 유용하게 사용할 수 있다.

body 높이 : document.body.scrollHeight


아래 코드로 브라우저의 높이와 폭도 간단하게 구할수 있다.

브라우저의 높이 : document.documentElement.clientHeight

브라우저의 폭 : document.documentElement.clientWidth

반투명 로딩 레이어를 만드려다가 많은 난관에 부딫히게 되었다.

이 중 크로스 브라우저(어떤 브라우저든지 상관없는?)로 사용하기 위하여 opacity 속성이 여러가지 있었다.


filter: alpha(opacity=50);

  IE 10 이하

-khtml-opacity:0.5;

  khtml, old safari

-moz-opacity:0.5;

  mozilla, netscape

opacity:0.5

  IE 10, fx, safari, opera


'Web > HTML,CSS' 카테고리의 다른 글

[HTML] html RFC 한글 번역  (0) 2013.08.20
[HTML] 한글 번역문 HTML 4.01  (0) 2013.08.20
[HTML] DOM이란?(수정)  (0) 2013.07.19
[HTML] 특징, 구성요소, 기본구조  (0) 2013.06.26


Java Script 연산자 우선순위


 1

 () []

 괄호 / 대괄호 

 2

 ! ~ + - ++ --

 증감 연산자

 3, 4

 * / % , + -

 산술 연산자

 5

 << >> >>>

 시프트 연산자

 6

 > < >= <= == !=

 비교(관계) 연산자

 7, 8, 9

 &, ^, |

 비트 연산자

 10, 11

 &&, ||

 논리 연산자

 12

 조건항 ? 항1 : 항2

 조건(삼항) 연산자

 13

 = += -= *= /= %=

 할당(대입) 연산자


연산을 할 때 여러 종류의 연산자가 섞여 있는 경우에 어떤 것을 먼저 처리할지의 우선순위를 말한다.



Java Script 예약어(reserved word)


abstract    boolean    break    byte    case    catch    char    class    const    continue    default    do    double    else    extend    false    finally    float    for    function    goto    if    implements    import    in    instanceof    int    interface    long    native    new    null    package    private    protected    public    return    short    static    super    switch    synchronized    this    throw    throws    transient    true    try    var    void    while    with


예약어란 이미 정의해 놓은 변수로써 사용자가 임의로 생성하는 변수명으로 사용할 수 없는 것이며,

모두 소문자로 이루어져 있으므로 대문자로 사용하면 예약어로 해석되지 않는다.



로딩 중 레이어(div) 띄우기, 만들기


저장이나 등록, 전송 버튼을 클릭 후 업로드 되는 동안 사용자가 버튼을 또 클릭하지 못하도록 버튼 클릭 시 레이어를 띄워서 클릭을 못하도록 가려둔다.

사용하는 방법은 버튼 클릭할 때 일어나는 ‘onclick’ 이벤트에서 일어나는 자바스크립트에 loading(1); 을 실행한다.

img_lo에 이미지를 미리 만들어주고, 미리 생성된 이미지를 화면에 포함시켜준다. 멈추는 경우가 발생할 수 있어 reloading_img()를 통해 실행하고 다시 이미지를 넣어준다.


수정사항

2013.08.09 z-index를 javascript에서 zIndex로 사용.

2013.08.12 console.log 버그를 찾고 수정하고 코드 정리함.

2013.08.27 멈추는 경우도 고려해 다시 수정.

var img_lo = document.createElement("span");
img_lo.innerHTML = "<img id="img_lo" src="./loading.gif" width="40" height="40">"

function loading(d) {	//변수 -> 이름,포지션 -> 높이,넓이 -> 마진,패딩 -> 위치 -> 기타
	if(d == 1) {
		var div_full = document.createElement("div");			// 화면 덮는 div
		var div_center = document.createElement("div");			// 센터 텍스트 담는 div
		var div_center2 = document.createElement("div");		// 센터 반투명 div
		var loading_text = document.createElement("p");			// 텍스트 p

		div_full.onclick = function() { alert("처리중 입니다. 잠시만 기다려주세요.") }
		div_center.onclick = function() { alert("처리중 입니다. 잠시만 기다려주세요.") }
	
		//var w = 0, h = 0;					// 크로스브라우징 높이,넓이 조절
		var w = '50%', h = '50%';				
	/*
			if (typeof (window.innerWidth) == 'number') { //Chrome
				 w = window.innerWidth / 2;
				 h = window.innerHeight / 2;
			} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
				 w = document.documentElement.clientWidth / 2;
				 h = document.documentElement.clientHeight / 2;
			} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE9
				 w = document.body.clientWidth / 2;
				 h = document.body.clientHeight / 2;
			}
	*/
		// 텍스트 태그 생성
		loading_text.style.height = "30";
		loading_text.style.width = "200";
		//loading_text.style.margin = "20px 0px 20px 0px";
		loading_text.style.margin = "15px 0px 15px 0px";
		loading_text.style.fontWeight = "bold";
		loading_text.innerHTML = "데이터 처리 중입니다.
잠시 기다려주십시오."; //전체 투명레이어 div_full.style.position = "absolute"; div_full.style.height = "100%"; div_full.style.width = "100%"; div_full.style.top = "0"; div_full.style.left = "0"; div_full.style.background = "#000000"; div_full.style.opacity = "0.0"; div_full.style.filter = "alpha(opacity=00)"; div_full.style.zIndex = "9995"; //이미지 중앙에 배치할 레이어 div_center.style.position = "absolute"; div_center.style.height = "100"; div_center.style.width = "200"; div_center.style.top = h; div_center.style.left = w; div_center.style.marginLeft = "-100px"; div_center.style.marginTop = "-50px"; div_center.style.textAlign = "center"; div_center.style.zIndex = "9998"; div_center2.style.position = "absolute"; div_center2.style.height = "100"; div_center2.style.width = "200"; div_center2.style.top = h; div_center2.style.left = w; div_center2.style.marginLeft = "-100px"; div_center2.style.marginTop = "-50px"; div_center2.style.background = "#ffffff"; div_center2.style.opacity = "0.8"; div_center2.style.filter = "alpha(opacity=80)"; div_center2.style.zIndex = "9996"; //포함시키기 div_center.appendChild(img_lo); div_center.appendChild(loading_text); document.body.appendChild(div_full); document.body.appendChild(div_center2); // 이미지는 투명도를 없애기 위해 다른 레이어를 바디에 포함. document.body.appendChild(div_center); // 이미지는 투명도를 없애기 위해 다른 레이어를 바디에 포함. } else if(d == 0) { div_full.parentNode.removeChild(div_full); div_center2.parentNode.removeChild(div_center2); div_center.parentNode.removeChild(div_center); } }

※ 자바스크립트에서는 CSS의 ‘z-index’를 사용할 때, ‘zIndex’로 사용해야 한다.


결론 :  나름 완성시킨 코드이지만 사용하면서 아직 문제점이 많을 것으로 보인다. 차근차근 코드를 수정해 나가야겠다.



'Web > JavaScript' 카테고리의 다른 글

[JS] 연산자 우선순위  (0) 2013.08.03
[JS] javascript 예약어  (0) 2013.08.02
[jQuery] Attribute Equals Selector [name="value"]  (0) 2013.07.16
[JS] 문자열 바꾸기 replace, 정규식  (0) 2013.07.05

DOM(document object model) ?

  • 객체 지향 모델로써 구조화된 문서를 표현하는 형식이다. 
  • HTML문서의 요소들에 접근 가능하도록 되어있다.
  • DOM을 사용하면 데이터를 동적으로 화면에 접근하고 변경할 수 있어 접근성과 조작성을 부여할 수 있다.



HTML의 기본적인 구조를 다음과 같은 트리형태로 나타낼 수 있다.


(P는 저렇게 되는게 맞는건지...)


이런 구조를 가진 속성(노드)들에 접근하기 위하여 DOM API를 사용한다.

괄호안에 노드라고 적어놓았는데 노드는 COM 트리를 이루고 있는 가장 기초적인 단위로 최상위 노드를 시작으로 부모 노드와 자식 노드를 가질 수 있다.


DOM API 예제

<html> <head> </head> <body> <h1 id="id1">test</h1> </body> </html>

document.getElementById("id1").setAttribute("color", "#e2e2e2");

document = 현재 문서

getElementById() = 인자로 넣어준 값이 id인 객체를 반환한다.

setAttribute() = 속성을 변경한다.


참고자료


'Web > HTML,CSS' 카테고리의 다른 글

[HTML] html RFC 한글 번역  (0) 2013.08.20
[HTML] 한글 번역문 HTML 4.01  (0) 2013.08.20
[CSS] Opacity 투명도 조절하기  (0) 2013.08.09
[HTML] 특징, 구성요소, 기본구조  (0) 2013.06.26

원문 링크 : http://api.jquery.com/attribute-equals-selector/


 attributeEquals selector


Description: Selects elements that have the specified attribute with a value exactly equal to a certain value.

명시된 속성(attribute)이 정확히 어떤 값(value)과 동일한 요소(element)를 찾아 준다.


 jQuery("[attribute='value']") 

 attribute: 태그의 속성.

 value: 속성의 값. 


추후 소스코드 추가

'Web > JavaScript' 카테고리의 다른 글

[JS] javascript 예약어  (0) 2013.08.02
[Javascript] 로딩중 레이어 만들고 띄우기  (2) 2013.08.02
[JS] 문자열 바꾸기 replace, 정규식  (0) 2013.07.05
[Java Script] location 객체  (0) 2013.07.05


▣ NumberFormat 클래스의 getNumberInstance() 사용


메서드를 만들고 오버로딩을 통해 편하게 사용할 수 있도록 한다.


<%@ page import='java.text.NumberFormat' %>

<%!

// 입력값에 컴마 찍어주기 long, int, String, double, float

// double은 소수점 3자리까지만.

// overloading

public String comma(long str1) {

NumberFormat nf = NumberFormat.getNumberInstance();

return nf.format(str1);

}

public String comma(String str1) {

if(str1 ==null || str1.equals(""))

str1="0"; 

int val = Integer.parseInt(str1);

NumberFormat nf = NumberFormat.getNumberInstance();

return nf.format(val);

}

public String comma(double str1) {

NumberFormat nf = NumberFormat.getNumberInstance();

return nf.format(str1);

}

%>


NumberFormat 클래스의 또 다른 메서드

NumberFormat.getPercentInstance() : 값을 %단위로 표시해준다.

ex) NumberFormat nf = NumberFormat.getPercentInstance();

nf.format(값);



var str = 'abc1';

str.replace(/A/gi, 'b');

//결과값 : str = bbc1


▣ replace(바꿀 문자, 바꾸어질 문자) 

바꿀문자에 정규식 사용이 가능하다.


▣ 자바스크립트에서의 정규식 

var test = /패턴/flage;

→ flage 부분

g(Global) : 패턴에 맞는 모든 문자 검색

i(Ignorecase) =  대/소문자 구분하지 않는다.

m(Multilinem) : 여러줄을 검색한다.


 

 parameter로 한글을 입력 받을 때, utf-8로 변환시켜 깨지지 않게하는 함수

      // 한글을 변환하는 방법

String UStoKR(String str) throws Exception{
    String result = "";
    if (str == null || str.trim().equals("")) 

        result = null;
    else

        result = new String(str.getBytes("ISO-8859-1"), "utf-8");
    return result;

 

window - location 객체

브라우저나 주소 표시줄과 관련되어 있어, 현재 문서에 대한 정보를 가지고 있다.

 

 프로퍼티

설명

location

객체의 프로퍼티

hash

책갈피 이름

host

URL과 호스트 이름, 포트 번호

hostname

URL과 호스트 이름

href

URL

pathname

링크의 경로

port

포트 번호

protocol

프로토콜

search

검색 엔진 노출

 

 

 

 메소드

설명

reload()

문서를 다시 읽어온다.(새로고침)

replace()

현재 문서를 다른 URL로 바꾼다.

 

 

 

 

 

입출력 관련 기본 객체

객체

클래스 또는 인터페이스 

설 명 

request 

javax.servlet.ServletRequest 

파라미터를 포함한 요청 데이터 

 주로 파라미터와 쿠키를 처리할 때 많이 사용한다.

response 

javax.servlet.ServletResponse 

응답데이터 

헤더, 쿠키, 응답과 관련된 정보를 설정할 수 있는 방법을 제공한다.

out 

javax.servlet.jsp.JspWriter 

출력 스크림에 출력하는 객체 

결과를 클라이언트에 전송해주는 출력 스트림을 나타낸다. 

 

서블릿 관련 기본 객체

객체 

클래스 또는 인터페이스 

설명 

page 

java.lang.Object

현재 요청을 처리하는 객체 

 JSP 페이지 그 자체를 나타낸다.

config 

javx.servlet.ServletConfig

JSP 페이지의 ServletConfig 객체

 페이지의 초기화 부분에서 주로 사용된다.

 

콘텍스트 관련 기본 객체 

객체

클래스 또는 인터페이스 

설명 

session 

javax.servlet.http.HttpSession 

세션 객체 

 각 클라이언트의 현재 세션을 나타내며, 세션과 관련된 정보를 저장한다.

application 

javax.servlet.ServetContext 

서블릿의 config 객체로부터 구할 수 있는 서블릿 콘텍스트 

일반적으로 JSP 콘테이너는 URL에 있는 첫 번째 디렉토리 이름을 어플리케이션으로 사용한다. 

pageContext 

javax.servlet.jsp.PageContext 

이 JSP 페이지의 페이지 콘텍스트 

 모든 다른 기본 객체에 접근할 수 있다.

 

예외 처리 관련 기본 객체

 객체

클래스 또는 인터페이스 

설명 

 exception

java.lang.Throwable 

에러 페이지에서 사용되는 예외 객체 

page 디렉티브의 isErrorPage 속성의 값을 true로 지정한 경우에만 접근 가능하다.

 

 

JSP 태그

1. 디렉티브(Directive)

2. 스크립트 요소(Scripting elements)

3. 주석

4. 액션(Action)

 

1. 디렉티브(Directive)

 문서를 어떻게 처리할 것인지 나타내는 태그.

 페이지와 관련된 정보를 JSP 콘테이너에 보내는 일종의 메세지.

 

<%@ 디렉티브 속성1= "값1" 속성2="값2" ... %>

 

 디렉티브에는 page 디렉티브, include 디렉티브, taglib 디렉티브가 있다.

 page 디렉티브 : 페이지와 관련된 다양한 속성, 기능을 지정.

속성

값 

기본값 

language

스크립트 언어 이름

"java"

contentType

MIME 타입, 문자셋 

"text/html;

charset=ISO-8859-1" 

info 

문자열 

 

import 

클래스 또는 패키지 이름 

 

session

boolean 값 

"true" 

buffer 

버퍼의 크기 or false 

"8kb" 

autoFlush 

boolean 값 

"true" 

isThreadSafe 

boolean 값 

"true" 

errorPage 

로컬 URL 

 

isErrorPage 

boolean 값 

"false" 

extends 

클래스 이름 

 

 하나의 JSP 페이지에 여러 개의 page 디렉티브를 사용할 수 있지만, import 속성을 제외한 나머지 속성들을 같은 페이지에서 여러번 지정할 수 없다. => 중복 X

 

* contentType 속성

JSP 페이지가 생성하는 문서의 MIME(Multipurpose Internet Mail Extensions) 타입을 나타내는 데 사용.

JSP 페이지에서 사용하는 문자셋을 지정하는 데 사용.

 

* info 속성

페이지를 설명해주는 문자열, 일반적으로 제작자, 버전, 저작권 정보등을 포함시키는 것이 좋다.

 

* import 속성

자바를 스크립트 언어로 사용할 경우 자동적으로 java.lang, javax.servlet, javax.setvlet.http, java,setvlet.jsp 패키지를 import 한다.

 

* autoFlush 속성

버퍼가 다 찰 경우 어떻게 처리할 지를 지정한다. true이면, 출력 버퍼는 자동적으로 비워지고, 버퍼에 있던 내용을 요청한 웹 브라우저에 전송하기 위해서 HTTP 서버에 보내진다.

-> 만약 buffer 속성의 값이 "none"일 경우에는 "false"로 지정할 수 없다.

 

* errorPage 속성

catch하지 않은 에외가 발생할 경우, 보여줄 페이지 설정.

속성 값이 '/'로 시작하면 절대  URL, '/'로 시작하지 않으면 상대 URL을 나타낸다.

 

2. 스크립트 요소(Scripting elements)

선언부(declarations), 스크립트릿(scriptlet), 표현식(expressions)로 구성되어 있다.

 선언부(declarations)

 JSP 페이지에서 사용할 메소드와 변수를 정의. 같은 페이지 다른 스크립트 요소에서 참조 가능.

 

<%! 선언부 부분 %>

 

1) 변수의 선언

선언부에서 정의한 변수는 서블릿으로 변환할 때, 서블릿 클래스의 인스턴스 변수로 변환된다.

 <%!

    private int x = 0;

    private int x = 0;

    private String str = "opid";

    private static int sum = 0;  //인스턴스들이 공유하는 클래스 변수로 선언 가능.

%>

 

2) 메소드의 선언

변수와 메소드를 함께 선언할 수도 있다.

 <%!

    int cul(int x, int y){

        int sum = 0;

        sum = x + y;

        return sum;

    }

%>

 

3) JSP 페이지의 라이프사이클(Life-cycle)

초기화 이벤트나 소멸 이벤트가 발생할 경우 사용되는 메서드.

 <%!

    public void jspInit() {

        // 초기화 이벤트와 관련된 처리.

    }

 

    public void jspDestory() {

        // 소멸 이벤트와 관련된 처리.

    }

%>

 

 표현식 

선언부와는 달리 표현식의 결과를 문자열로 변경되어 출력 스트림에 추가한다. 

<%= expression %>

 스크립트릿

일반적인 목적으로 스크립트 언어를 사용할 수 있도록 해 주는 부분이다.

<% 스크립트릿 부분 %>

 

3. 주석

1) 내용주석    <!-- 주석 내용 -->

브라우저 화면에선 보이지 않지만 소스 보기를 통해서 확인할 수 있다.

내용 주석 안에 JSP 표현식을 포함할 수 있으며, 표현식의 값마다 다르게 생성되기 때문에 동적인 주석 내용을 만들수 있다.

 

2) JSP 주석    <%-- 주석 --%>

페이지가 생산하는 내용과는 상관없으며, 오직 JSP파일에서만 보여진다.

 

3) 스크립트 언어 주석    <% ... /* 주석 */ ... %>

자바의 '/*' 와 '*/', '//'를 사용하여 주석 처리를 할 수 있으며,

 스크립트릿이나 선언부 뿐만 아니라 JSP표현식에서도 주석처리 한다. JSP 콘테이너에 의해 완전히 무시되지 않으며, 변환된 서블릿 코드에 나타난다.

 

'Web > JSP(Java Server Page)' 카테고리의 다른 글

[JSP] 정수,실수,문자열에 콤마찍기 NumberFormat  (0) 2013.07.10
[JSP] 한글변환 메서드  (0) 2013.07.05
[JSP] 기본 객체  (0) 2013.06.28
[JSP] 기초, 개념  (0) 2013.06.27

JSP란

"Java Server Pages"로 자바 프로그래밍 언어를 기반으로 하는 웹 기본의 서버측 동적 문서 생성을 위한 템플릿 시스템이다.

 

태그 규약

스크립트 태그

XML 기반 태그 

선언부

표현식

디렉티브

스크립트릿

액션 태그

자바 빈 태그

커스텀 태그

스크립트 태그

JSP 스크립트 요소들을 표현하기 위해 사용.

'<%'로 시작하며 '%>'로 종료.

스크립트 태그 안에 기술되는 JSP 스크립트 요소들은 !, =, @ 등의 시작 기호에 따사 구분.

XML 기반 태그

XML의 구문과 규약을 따르는 태그를 사용한다는 의미.

 

* XML의 구문과 HTML 구문의 차이점.

1. XML은 대소문자를 구분.

2. 속성값은 반드시 따옴표로 묶어줌.

3. 몸체가 없는 태그는 '<'시작과 '/>'종료로 표현.

4. 각 요소를 표현하는 식별자를 사용(namespace) 

 

* JSP와 자바 스크립트의 차이점

1. 동적인 요소들이 실행되는 장소가 다름.

    JSP는 서버컴퓨터에서 실행되므로 예를들어 현재시간출력을 할때 서버컴퓨터의 시간이 출력된다.

2. 브라우저로 보내지는 웹페이지의 내용이 다르다.

    동적인 소스로 작성하더라도 웹에서 '소스보기'로 본다면 정적인 html과 같은 소스로 보여진다.

 

서블릿?

웹 서버에서 동적인 문서 생성을 위해 서블릿 콘테이너에 의해 실행될 수 있는 자바 프로그램.

 

세션?
클라이언트와 서버간에 연결의 지속성을 인정하고 유지하는 상태.

-> JSP는 일정 시간동안 하나의 웹 서버에 대한 한 명의 사용자로부터의 모든 요청을 일련의 연속 과정으로 간주하며 이것을 세션이라 함.

 

HTML(HyperText Markup Language)

→  world wide web에서 사용하는 Markup 언어.

 

1. 특징 : 웹문서의 표준, 마크업 언어, ASCII로 구성된 일반적인 텍스트 파일, 시스템이나 운영체제에 독립적

     대소문자 구분 X, 2칸이상 공백은 의미 없음(모두 1칸)

2. 구성요소

요소(Elements) : 시작과 종료를 나타내는 태그로 이루어진 모든 명령어

<title> 제목 </title>

태그(Tag) : '<'와 '>'로 둘러싸인 요소의 일부

<title> 제목 </title>

속성(Attributes) : 요소의 시작태그 내에 사용하며, 명령어를 구체화 시키는 역할

<img src = "주소">

변수(Arguments) : 속성과 관련된 값

<font size = "3">

 

3. 기본구조

<HTML>                    <!-- HTML 문서의 시작 -->

<HEAD>                    <!-- HTML 문서의 설명(title, meta, link, script 등) -->

<TITLE> 기본구조 </TITLE>

</HEAD>

<BODY>                    <!-- HTML 문서의 본문 -->

본문내용

</BODY>

</HTML>                   <!-- HTML 문서의 끝 -->

 

 

'Web > HTML,CSS' 카테고리의 다른 글

[HTML] html RFC 한글 번역  (0) 2013.08.20
[HTML] 한글 번역문 HTML 4.01  (0) 2013.08.20
[CSS] Opacity 투명도 조절하기  (0) 2013.08.09
[HTML] DOM이란?(수정)  (0) 2013.07.19

+ Recent posts