CSS2 Box Model


enter image description here


출처 : https://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively

블로그 이미지

grooveCode

개발자의 메모장

,

Struts의 ActionForm은 정말 편리하게 데이타를 주고 받을 수 있다.

 

Struts를 처음 이용하다 보면 

redirect를 하지 않고 Forward만을 이용하게 되면서 몇가지 문제가 발생한다.

 

예를들어 꼬리말을 입력한 다음에... 

웹페이지를 리로드 시키면 꼬리말이 한개더 추가 되는 문제이다.

 

문제가 발생하는 이유를 정리하면

 

1. forward를 시키면 주소창이 변하지 않는다.

 

2. (꼬리말의 예의 경우) 출력할 문서 정보를 가져가기 위해 View단으로 갈떄 forward를 한다.

 

3. forward되는 actionForm속에 추가시킨 꼬리말 정보가 같이 들어 있다.


 

===================================================================

 

이에 대한 문제 해결 방법은 두가지 가 있다.

 - forward가 아닌 redirect를 이용하도록 코딩하는 방법과

 - saveToken()을 이용하는 것이다.

 

==================================================================

 일단 먼저 첫번째 방법....

 

struts에서 action의 retrun type은 ActionForward이다

 

보통 mapping을 이용해서 mapping.findForward("key값")을 이용하여 기존에 매핑된 정보를 리턴하는데,

 

위의 경우 새로운 정보를 추가할 수 값 없다. 예를 들어 no=11이라는 쿼리스트링을 추가하고 싶어도 매핑을 이용한 방법은 새로운 쿼리스트링을 추가 할수 없음으로 리턴값으로 ActionForward를 새로 만들어 주는 것이다.

 

return new ActionForward("path", true);

 

위에서 path에 String 타입으로 원한는 경로(아마 액션이 되겠지)랑 쿼리 스트링을 붙이고 , 뒤에 boolean 값은 redirect유무니 true로 하여 redirect를 시키자....

 

return new ActionForward("/test/view.do?no=11", true);

 

모양으로 되겠지.... path은 contextRelation임으로 /로 시작함을 잊지 말자.

 

* 하지만 위의 경우 로딩된후 리로드에 대해서는 보호 되지만... 로딩되는 과정에서 다시 리로딩을 눌리는 경우에는 안전성을 보장하지 않는다....

 

======================================================================

 

그럼 볼론인 saveToken()에 대해 알아보자

 

원리..... 

일단 모델이   beforeAction => JSP =>afterAction

형태로 사용된다.

 

beforeAction에서 saveToken메서드를 실행시키면 requestScope과 sessionScope에 랜덤으로  ID 를 만들어 각각 저장한다.

 

sessionScope에 장장된 ID는 당연히 보장 될 것이고....

 

requestScope에 저장된 ID는 JSP페이지에 Hidden 형식의 태그를 생성하여 atterAction까지 이어진다.

 

******** hidden타입이 생긱기 위해서 <form>을 사용하면 안돼고 struts-html의  사용자 정의 태크인 <html:form>을 반듯이 이용해야 한다.

 

afterAction에서 두 스콥의 ID를 비교하여 일치하면 true를 아니면 false를 반환한다...

 

-----------------------

간단 코드로 살펴보면

 

 

*** beforeAction

 

 saveToken(request);

코드를 삽입  토근생성한다.

 

****JSP

<html:form>

을 작성...

<input type="hidden" name="org.apache.struts.taglib.html.TOKEN"
  value="랜덤함 키값">

위와 같은 hidden이 자동 생성된다.

 

*** afterAction


if (!isTokenValid(request)) {  
     //일치 여부 검증 틀렸을 경우 여기 실행... 조건문 앞에 ! 있다는 사실....



resetToken(request);  //일치할 경우 토근을 지운다.

 

// 일치할 경우 실행된 액션


블로그 이미지

grooveCode

개발자의 메모장

,

# 메모

  - XML과 같은 다른 마크업 언어에서도 사용 할 수 있는 것으로 보임




<특수문자 코드표>

 

표현문자

숫자표현

문자표현

설명

-

&#00;-&#08;

-

사용하지 않음

space

&#09;

-

수평탭

space

&#10;

-

줄 삽입

-

&#11;-&#31;

-

사용하지 않음

space

&#32;

-

여백

!

&#33;

-

느낌표

"

&#34;

&quot;

따옴표

#

&#35;

-

숫자기호

$

&#36;

-

달러

%

&#37;

-

백분율 기호

&

&#38;

&amp;

Ampersand

'

&#39;

-

작은 따옴표

(

&#40;

-

왼쪽 괄호

)

&#41;

-

오른쪽 괄호

*

&#42;

-

아스트릭

+

&#43;

-

더하기 기호

,

&#44;

-

쉼표

-

&#45;

-

Hyphen

.

&#46;

-

마침표

/

&#47;

-

Solidus (slash)

0 - 9

&#48;-&#57;

-

0부터 9까지

:

&#58;

-

콜론

;

&#59;

-

세미콜론

<

&#60;

&lt;

보다 작은

=

&#61;

-

등호

>

&#62;

&gt;

보다 큰

?

&#63;

-

물음표

@

&#64;

-

Commercial at

A - Z

&#65;-&#90;

-

A부터 Z까지

[

&#91;

-

왼쪽 대괄호

\

&#92;

-

역슬래쉬

]

&#93;

-

오른쪽 대괄호

^

&#94;

-

탈자부호

_

&#95;

-

수평선

`

&#96;

-

Acute accent

a - z

&#97;-&#122;

-

a부터 z까지

{

&#123;

-

왼쪽 중괄호

|

&#124;

-

수직선

}

&#125;

-

오른쪽 중괄호

~

&#126;

-

꼬리표

-

&#127;-&#159;

-

사용하지 않음

&#160;

&nbsp;

Non-breaking space

¡

&#161;

&iexcl;

거꾸로된 느낌표

&#162;

&cent;

센트 기호

&#163;

&pound;

파운드

¤

&#164;

&curren;

현재 환율

&#165;

&yen;

|

&#166;

&brvbar;

끊어진 수직선

§

&#167;

&sect;

섹션 기호

¨

&#168;

&uml;

움라우트

&#169;

&copy;

저작권

ª

&#170;

&ordf;

Feminine ordinal

&#171;

&laquo;

왼쪽 꺾인 괄호

&#172;

&not;

부정

&#173;

&shy;

Soft hyphen

?

&#174;

&reg;

등록상표

&hibar;

&#175;

&macr;

Macron accent

°

&#176;

&deg;

Degree sign

±

&#177;

&plusmn;

Plus or minus

²

&#178;

&sup2;

Superscript two

³

&#179;

&sup3;

Superscript three

´

&#180;

&acute;

Acute accent

μ

&#181;

&micro;

Micro sign (Mu)

&#182;

&para;

문단기호

·

&#183;

&middot;

Middle dot

¸

&#184;

&cedil;

Cedilla

¹

&#185;

&sup1;

Superscript one

º

&#186;

&ordm;

Masculine ordinal

&#187;

&raquo;

오른쪽 꺾인 괄호

¼

&#188;

&frac14;

4분의 1

½

&#189;

&frac12;

2분의 1

¾

&#190;

&frac34;

4분의 3

¿

&#191;

&iquest;

거꾸로된 물음표

A

&#192;

&Agrave;

Capital A, grave accent

A

&#193;

&Aacute;

Capital A, acute accent

A

&#194;

&Acirc;

Capital A, circumflex accent

A

&#195;

&Atilde;

Capital A, tilde

A

&#196;

&Auml;

Capital A, dieresis or umlaut mark

A

&#197;

&Aring;

Capital A, ring (Angstrom)

Æ

&#198;

&AElig;

Capital AE diphthong (ligature)

C

&#199;

&Ccedil;

Capital C, cedilla

E

&#200;

&Egrave;

Capital E, grave accent

E

&#201;

&Eacute;

Capital E, acute accent

E

&#202;

&Ecirc;

Capital E, circumflex accent

E

&#203;

&Euml;

Capital E, dieresis or umlaut mark

I

&#204;

&Igrave;

Capital I, grave accent

I

&#205;

&Iacute;

Capital I, acute accent

I

&#206;

&Icirc;

Capital I, circumflex accent

I

&#207;

&Iuml;

Capital I, dieresis or umlaut mark

Ð

&#208;

&ETH;

Capital Eth, Icelandic

N

&#209;

&Ntilde;

Capital N, tilde

O

&#210;

&Ograve;

Capital O, grave accent

O

&#211;

&Oacute;

Capital O, acute accent

O

&#212;

&Ocirc;

Capital O, circumflex accent

O

&#213;

&Otilde;

Capital O, tilde

O

&#214;

&Ouml;

Capital O, dieresis or umlaut mark

×

&#215;

&times;

Multiply sign

Ø

&#216;

&Oslash;

width="130"Capital O, slash

U

&#217;

&Ugrave;

Capital U, grave accent

U

&#218;

&Uacute;

Capital U, acute accent

U

&#219;

&Ucirc;

Capital U, circumflex accent

U

&#220;

&Uuml;

Capital U, dieresis or umlaut mark

Y

&#221;

&Yacute;

Capital Y, acute accent

Þ

&#222;

&THORN;

Capital Thorn, Icelandic

ß

&#223;

&szlig;

Small sharp s, German (sz ligature)

a

&#224;

&agrave;

Small a, grave accent

a

&#225;

&aacute;

Small a, acute accent

a

&#226;

&acirc;

Small a, circumflex accent

a

&#227;

&atilde;

Small a, tilde

a

&#228;

&auml;

Small a, dieresis or umlaut mark

a

&#229;

&aring;

Small a, ring

æ

&#230;

&aelig;

Small ae diphthong (ligature)

c

&#231;

&ccedil;

Small c, cedilla

e

&#232;

&egrave;

Small e, grave accent

e

&#233;

&eacute;

Small e, acute accent

e

&#234;

&ecirc;

Small e, circumflex accent

e

&#235;

&euml;

Small e, dieresis or umlaut mark

i

&#236;

&igrave;

Small i, grave accent

i

&#237;

&iacute;

Small i, acute accent

i

&#238;

&icirc;

Small i, circumflex accent

i

&#239;

&iuml;

Small i, dieresis or umlaut mark

ð

&#240;

&eth;

Small eth, Icelandic

n

&#241;

&ntilde;

Small n, tilde

o

&#242;

&ograve;

Small o, grave accent

o

&#243;

&oacute;

Small o, acute accent

o

&#244;

&ocirc;

Small o, circumflex accent

o

&#245;

&otilde;

Small o, tilde

o

&#246;

&ouml;

Small o, dieresis or umlaut mark

÷

&#247;

&divide;

Division sign

ø

&#248;

&oslash;

Small o, slash

u

&#249;

&ugrave;

Small u, grave accent

u

&#250;

&uacute;

Small u, acute accent

u

&#251;

&ucirc;

Small u, circumflex accent

u

&#252;

&uuml;

Small u, dieresis or umlaut mark

y

&#253;

&yacute;

Small y, acute accent

þ

&#254;

&thorn;

Small thorn, Icelandic

y

&#255;

&yuml;

Small y, dieresis or umlaut mark


출처 : http://egloos.zum.com/keep/v/1030642


블로그 이미지

grooveCode

개발자의 메모장

,