전자정부프레임워크
1. 기능별분석
① 로그인 진행과정
n egovframework 로그인 동작과정
1. /src/main/webapp/index.jsp 호출
2. /index.jsp 에있는 forward 를 이용하여 컨투럴러 로 이동 egovLoinUsr.do
3. egovLoginUsr.do 는
à A. /java/egovframework/com/uat.uia/에 해당하는 Controller 이라고 명시된파일을 찾는다.
à B. /java/egovframework/com/uat.uia/EgovLoginController.java 를 열어보면은 @RequestMapping value값이 egovLoginUsr이라는 것을 찾는다. 그 아래에있는 메서드를 실행하게됩니다. 로그인 관련되어서는 loginUsrView() 가 실행됩니다.
à C.해당 return 값을 통해서 /WEB-INF/jsp/egovframework/comm/uat/uia/EgovLoginUsr.jsp 를 호출하여 출력해준다.
4. 해당 id/pw 를 입력하고 action 값을 통해 정의된 do를 호출한다. 여기에서는 /uat/uia/actionLogin.do 를 부른다.
à A. actionLogin.do 역시 Controller 에서 @RequestMapping value 값을 찾아서실행시켜준다.
à B. loginService 에 해당하는 EgovLoginService를 찾는다.
à C.여기서 실행하고자하는 loginService.actionLogin(loginVO)에 해당하는 메소드를 찾아서 실행한다.
à D. EgovLoginServiceImple 에있는 actionLogin 를 실행한다.
i. 이곳에서 .loginDAO.actionLogin(vo) 를 싱행하게되는데 이곳에서
ii. /src/uat/uia/service/impl/EgovLoginServiceImpl.java 를 찾아서 actionLogin 을실행시킨다.
iii. loginDAO.actionLogin 실행하게되면은 LoginDAO.java 에있는 actionLogin 을 실행하게된다. 이곳에서 selectByPk 를 통해서 ibatis /resources/egovframework/sqlmap/com/uat.uia/EgovLoginUsr_SQL_Mysql.xml 의 loginDAO.actionLogin 를 실행한다.
iv. 각값들이 모두 리턴되고 EgovLoginontroller 에 반환된다. 이값에서 resultVO 에 담기게 되고 이값들이
5. 정상적인 아이디라고 판단된다면?
à A. if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { Ð= TRUE
à B. redirect:/j_spring_security_check?j_username=… 이부분실행
i. spring security 연동 부분을 실행하게 된다. 위의 부분은 이부분에 대한정보는 /src/main/resources/egovframework/spring/content-security.xml 에서 j_spring_security_check 부분을 찾아서 실행하게되고 이부분에서 /uat/uia/actionMain.do 이 부분이 실행하게 된다.
ii. 이부분은 EgovLoginontroller 을 찾게되고 이부분이 각종 권한 처리를 하게되고
1. EgovUserDetailsHelper.isAuthenticated 이부분을 통해서 인증된 사용자인지 체크를 하게 되고 이부분은 …/sec/ram/security/userdetails/util/EgovUserDetailHelper.java에서 isAuthenticated 부분이 실행하게 되고 이부분에서 true / false 을 리턴하게된다.
2.
그후 각종 로그를 찍어주고 (LOG.debug Ð consol에 로그찍는 기능입니다.)
3. 이부분은 cmm/EgovUnitMain 를 찾게됩니다. 이부분은 jsp를 찾게되고
4. WEB-INF/jsp\egovframework/cmm/EgovUnitMain.jsp 을찾아서 실행하게 됩니다.
② 게시판 진행과정
2. 로그인디렉토리 구조
① iktb
n java
egovframework.com
à cmm
à ems
à sec
à sym
à uat.uia
service
impl
EgovLoginPolicyServiceImpl.java
EgovLoginServiceImpl.java
LoginDAO.java
LoginPolicyDAO.java
EgovLoginPolicyService.java
EgovLoginService.java
LoginPolicy.java
LoginPolicyVO.java
LoginVO.java
SessionVO.java
web
EgovLoginController.java
EgovLoginPolicyController.java
à uss.umt
à utl
n resources
egovframework
à egovProps
à message
à spring
context-aspect.xml
context-common.xml
context-datasource.xml
context-excel.xml
context-idgen.xml
context-properties.xml
context-security.xml
context-sqlMap.xml
context-transaction.xml
context-validator.xml
à sqlmap
com
uat.uia
EgovLoginUsr_SQL_Mysql.xml
à validator
log4.xml
n src
main
à webapp
WEB-INF
jsp
egovframework
cmm
uat
uia
EgovLoginUsr.jsp
index.jsp
3. 어노테이션 설명
① 계층형 Controller들을 사용하면 여러 정보들(요청과 Controller의 매핑 설정 등)을 XML 설정 파일에 명시 해줘야 하는데, 복잡할 뿐 아니라 설정 파일과 코드 사이를 빈번히 이동 해야하는 부담과 번거로움이 될 수 있다. @MVC는 Controller 코드안에 어노테이션으로 설정함으로써 좀 더 편리하게 MVC 프로그래밍을 할 수 있도록 했다. @MVC에서 사용하는 주요 어노테이션은 아래와 같다.
n @Controller
해당 클래스가 Controller임을 나타내기 위한 어노테이션
n @RequestMapping
요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션
n @RequestParam
Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션
n @ModelAttibute
Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션
n @SessionAttributes
Model 객체를 세션에 저장하고 사용하기 위한 어노테이션
② 참고사이트
n http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:annotation-based_controller
4. VO(value Object)란?
① - Model, View 간의 데이터 전달용도
② - 멤버변수와 getter, setter 메소드로 구성
③ - 기본 jsp 의 bean 과 동일
④ - 파라미터가 길어질 경우 VO를 이용하는 것이 효율적
⑤ - Entity Vo 와 custom vo 두종류
⑥ - Entity vo : entity(ejb 또는 db 정보와 동일)
⑦ - Custom vo 사용자 필요에 의해 만든 vo
⑧ - 자동화 도구를 사용하여 만드는 것이 편리함
5. SPRING
① resource
n context-aspect.xml
관점정의
à 예외 처리를 위한 Spring 설정 파일(resources/egovframework.spring/context-aspect.xml) 내에 관점(Aspect) 클래스를 빈으로 정의한 뒤, 해당 관점(Aspect)에 대한 포인트컷과 충고(Advice)를 정의한다
n context-common.xml
n context-datasource.xml
n context-excel.xml
n context-idgen.xml
n context-properties.xml
n context-security.xml
n context-sqlMap.xml
n context-transaction.xml
트랜젝션 처리
n context-validator.xml
6. log4j
① log4j.xml
n appender : 콘솔에 로그를 기록하
7. jstl
① jstl의 가장 핵심적인 기능을 제공하는 lib
n <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
변수 설정 및 삭제 태그
à <c:set>
<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위">
지정된 변수에 값을 저장하는 태그
특정 property에 값을 지정할 경우 target에 객체표시 property에 값 지정
à <c:remove>
<c:remove var="변수명" scope="범위">
설정된 속성(변수, 객체)을 제거
조건처리
à <c:if>
<c:if test="조건" var="변수명" scope="범위">
à <c:choose>
<c:choose> <c:hwen test="조건"></when><cLotherwise></otherwise></c:choose>
자바의 switch와 같은 역활을 합니다.
반복처리
à <c:foreach>
<cLforeach itmes="객체명" begin="시작인덱스" end="끝인덱스">
à <c:fortakens>
<c:fortokens items="객체명" delims="구분자" begin="시작인덱스" end="끝인덱스" step="변수명" varStatus="상태변수">
예외처리
à <c:catch>
<c:catch var="변수명">
예외가 발생할 경우 예외사항을 변수에 저장
예외사하응ㄹ 출력 변수 message
② jstl을 가지고 할수있는일
n 간단한 프로그램 로직을 구사
n 다른 jsp 페이지 호출
n 날짜 , 시간 , 숫자의 포멧
n jsp 페이지 하나를 가지고 여러 가지 언어의 웹페이지 생성
n 데이터베이스의 입력, 수정 삭제 조회
n xml 문서의 처리
n 문자열을 처리하는 함수
n 각기능
코어
à 일반 프로그램이 언어에서 제공하는 것과 유사한 변수선ㅇ,ㄴ 실행 흐름을 제어 기능ㅇ르 제공하고, 다른 JSP 페이지로 제어를 이동하는 기능을 제공
à 접두어 : C
포매팅
à 숫자, 날짜, 시간을 포매팅하는 기능과 국제화, 다국어 지원 기능을 제공
à 접두어: fmt
데이터베이스
à 데이터베이스의 데이터를 입력, 수정, 삭제 , 조회하는 기능을 제공
à 접두어 : sql
xml처리
à xml 문서를 철이할 때 필요한 기능을 제공합니다.
à 접두어 : x
함수
à 문자열을 처리하는 함수를 제공합니다.
à 접두어 : Fn
[출처] 2011/09/08 19:53
'프레임워크 > 전자정부 프레임워크' 카테고리의 다른 글
geronimo-servlet_2.5_spec-1.2.jar 에러 문제 (0) | 2012.02.24 |
---|---|
AOP 서비스 (0) | 2012.02.24 |
java.lang.IllegalArgumentException 에러 (0) | 2012.02.24 |
전자정부 프레임워크의 기존 메뉴에서 생성된 메뉴로 변경하기 (0) | 2012.02.24 |