반응형

일반적으로 Action 클래스에서는 다음과 같은 로직을 통해 중복 Form Submit 여부를 체크할 수 있다.

  • Action Class

    boolean valid = isTokenValid(request, true);
    if (valid) {
        // TODO: submit 할 때 수행할 로직을 넣을 것
        System.out.println("status: performed");
    } else {
        // TODO: init / reload 할 때 수행할 로직을 넣을 것
        System.out.println("status: initialized or reloaded");
    }
    saveToken(request);

  • JSP

    <input type="hidden" name="org.apache.struts.taglib.html.TOKEN" 
    value="<%= session.getAttribute(org.apache.struts.Globals.TRANSACTION_TOKEN_KEY) %>">

    UI(JSP, HTML)에서는 "org.apache.struts.taglib.html.TOKEN"을 Key로 하는 Hidden Field를 통해 할당된 Token 값을 서버로 전송하고, 해당 Action 클래스에서는 isTokenValid 메소드 호출을 통해 이 Token 값과 Session에 저장된 Token 값을 비교함으로써, Token의 유효성을 검사한다.

위에 소스에 대해 개괄적으로 설명하면 Action 을 처리하면서 saveToken(request); 부분에서
세션에 토큰키를 생성하여 저장하게 된다.(현재시간과 세션아이디를 가지고 MD5 알고리즘을 이용해 생성)

JSP페이지에서 이를 히든타입으로 form에 담게 되고 submit을 통해 Action으로 가면
현재 세션에 저장되어 있는 토큰키와 form에 담겨 request로 넘어온 토큰키와 비교를 하게 된다.
그 키값이 같으면 정상처리를 하게 되고 saveToken(request); 부분을 통해 신규 토큰키가 생성되고
세션에 다시 담기게 된다. 이후에 새로고침이나 뒤로가기를 통해 다시 넘어오는 토큰키는 이전에 처리된
토큰키를 그대로 담고 있기 때문에 새로 생성된 신규 토큰키와 다르므로 중복처리를 제어할수 있는것이다.

토큰에 관한 부분은 아래 링크에 상세히 설명되어 있고 jsp에 name은 명확히 동일하게 작성되어야 한다.
 
아래 링크에서 "56.3.1. Double Submit의 개념" 부분을 참고하도록 하자.
http://dev.anyframejava.org/docs/anyframe/4.6.0/reference/html/ch56.html
반응형

삶이 그대를 속일지라도

     알렉산드로 푸쉬킨

  

삶이 그대를 속일지라도 슬퍼하거나 노여워하지 말라

슬픔의 날 참고 견디면 기쁨의 날 오리니

마음은 미래에 살고 현재는 늘 슬픈 것

모든 것은 순간에 지나가고 지나간 것은 다시 그리워지나니

 

 

삶이 그대를 속일지라도 노하거나 서러워하지 말라

절망의 나날 참고 견디면 기쁨의 날 반드시 찾아오리라

마음은 미래에 살고 현재는 언제나 슬픈법

모든 것은 한 순간에 사라지지만 가버린 것은 마음에 소중하리라

 

 

삶이 그대를 속일지라도 슬퍼하거나 노하지 말라

우울한 날들을 견디며 믿으라, 기쁨의 날이 오리니

마음은 미래에 사는 것 현재는 슬픈 것

모든 것은 순간적인 것, 지나가는 것이니

그리고 지나가는 것은 훗날 소중하게 되리니

 

 

삶이 그대를 속일지라도 슬퍼하거나 노하지 말라

설움의 날은 참고 견디면 기쁨의 날은 오고야 말리니

반응형
서비스 지향 아키텍처(Service Oriented Architecture, SOA) 
"서비스 지향 아키텍처는 비지니스 프로세스와 그것을 지원하는 IT기반 구조를 안전하고 표준화된 컴포넌트-서비스로 통합하기 위한 프레임워크이며,
이들 서비스는 변화하는 비지니스 우선순위를 해결하기 위해 재사용하고 결합된다."
-Service-Oriented Architecture Compass(2006, Norbert Bieberstein 외, IBM press)-

위키: http://ko.wikipedia.org/wiki/%EC%84%9C%EB%B9%84%EC%8A%A4_%EC%A7%80%ED%96%A5_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
이해자료: http://blog.naver.com/image07?Redirect=Log&logNo=60023998658

비지니스 프로세스 관리(Business Process Management, BPM)
미리 정의된 사람 , 정보 자원과 업무의 흐름을 통합적으로 관리, 지원해주는 업무처리 자동화 기법.

이해자료: http://wizim.blog.me/70096695829

(Simple Object Access Protocol, SOAP) 
일반적으로 널리 알려진 HTTP,HTTPS,SMTP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜
위키: http://ko.wikipedia.org/wiki/SOAP

기업 응용프로그램 통합(EAI, Enterprise Application Integration)
DW, ERP, CRM, SCM, B2B 등 기업에서 운영하는 서로 다른 Application 및 System 을 통합하는 것을 말합니다. 
EAI Solution은 이를 통해 업무의 효율성, 확장성을 높이고 유지보수시간 및 비용 절감, 편의성을 높이는 Solution.

위키: http://ko.wikipedia.org/wiki/EAI
이해자료: http://blog.naver.com/PostView.nhn?blogId=mingo74&logNo=140010287276&redirect=Dlog&widgetTypeCall=true
          http://www.mobilejava.co.kr/bbs/view.jsp?id=262&code=dic
          

전자 문서 교환(Electronic Data Interchange, EDI)
기업간에 정형화된 문서를 표준화된 자료표현 양식에 준하여 전자적 통신매체를 이용해 교환하는 방식
위키: http://ko.wikipedia.org/wiki/EDI

전사적 자원 관리(Enterprise Resource Planning, ERP) http://www.terms.co.kr/ERP.htm
 ERP는 소극적으로 구매와 생산관리, 물류, 판매, 회계 등의 기업 활동 전반에 걸친 업무를 통합한 
 기업정보시스템의 패키지 소프트웨어를 말한다. 
 다시말해 “기업 전체 경영자원을 계획적으로, 동시에 최적으로 활용한다.”는 것을 의미한다.

사업 제안 요청서(Request For Proposal, RFP) http://intempus.tistory.com/1363
기업체에서 IT 시스템을 도입하고자 할 때 시스템을 구축해 줄 수 있는 곳에서 어떻게 구축할 것인가를 요청하는 문서이다. 실은 IT 뿐만 아니라 기업체 내에서 아웃소싱할 수 있는 모든 분야에 다 사용할 수 있다. 


SAP

CRM 

ERP, PDM, EDM

BPEL, ESB

ROA

+ Recent posts