[Spring] 흐름 읽기_1208필기
스프링을 시작해따 . . .
익숙하지 않아서 그런지 흐름을 파악하는 것 만으로도 너무 너무 어렵고 시간이 많이 걸린다.
눈코 뜰세 없이 바쁜 나날들이 계속되지만 새롭게 배운다는 건 언제나 재밌긔
하지만 . . . 프로젝트 준비도 같이 해야 하는 게 참 힘 들 다 . . ! !
여러모로 시간이 없으니 당분간은 필기한 것들 위주로만 올리겠음 ~~~
- 스프링 호출 순서 : DispatherServlet => Controller => Service => Dao => DB(Query, xml)
1교시
- http://hiboard.icia.co.kr:8088
톰캣 서버
디스패쳐서블릿에서 위임 위임을 받아 와서
다시 포워딩 시키는 것임
- http://hiboard.icia.co.kr:8088/index
바로 디스패쳐서블릿에 요청을 하기 때문에 빠름
**
servlet-context.xml
- 로그인 없이 이용할 수 있는 페이지를 여기서 제외
- url 경로를 넣으면 됨
- 서블릿&루트(DB) 콘텍스트에 등록해 놓으면 web.xml에서 참고 해서 쓰는 거임
**
UserController
- 서비스 선언
- 매핑 돼 있음 "/user/login"
- if 통과하는 것은 메소드를 콜한다. (서비스 태움)
위임의 연속~~~
- if(예외처리) 해주는 이유 500번 오류를 막기 위해서
**
java - 자바파일
resources - 매퍼(쿼리, 로그
webapp- jsp, css
**
UserController -> UserService (try에서 Dao에 위임) -> UserDao.xml ->
● UserService.java ●
try 부분에서 Dao에게 위임
user = userDao.userSelect(userId);
● UserDao.xml ●
<!-- 저 값을 밸류 부분에 대입 하는 거임. 리졀트셋이 유저리셜트맵임 -->
id = userSelect
<select id="userSelect" parameterType="string" resultMap="userResultMap">
SELECT
USER_ID,
NVL(USER_PWD, '') AS USER_PWD,
NVL(USER_NAME, '') AS USER_NAME,
NVL(USER_EMAIL, '') AS USER_EMAIL,
NVL(STATUS, 'N') AS STATUS,
NVL(TO_CHAR(REG_DATE, 'YYYY.MM.DD HH24:MI:SS'), '') AS REG_DATE
FROM
TBL_USER
WHERE
USER_ID = #{value}
</select>
---
- 아이디만 다르게 해서 여러개 올 수 있음
- 쿼리는 오류가 안 나고, 다 알아서 하니까 UserDao.xml이랑 User.java 이름을 동일하게 매핑 시켜줘야 됨
- column = 쿼리문의 AS명, poroperty는 com.icia.web.model.User에서 사용할 변수명
<resultMap type="com.icia.web.model.User" id="userResultMap">
<id column="USER_ID" property="userId" />
<result column="USER_PWD" property="userPwd" />
<result column="USER_NAME" property="userName" />
<result column="USER_EMAIL" property="userEmail" />
<result column="STATUS" property="status" />
<result column="REG_DATE" property="regDate" />
</resultMap>
2교시
** 삭제 과정 **
- 컨트롤러 삭제 (UserController.java)
- 서비스 삭제 (UserService.java)
- 모델은 냅둠
- Dao (UserDao.java)
- 쿼리 (UserDao.xml)
** 로그아웃
- 로그아웃은 화면이 없고, DB연동도 필요 없다. 쿠키 삭제만 하면 됨
때문에 UserController.java에서 바로 로그아웃 추가만 하면 됨
- 내비게이션.jsp /user/loginOut
- 추가 했을 때 xml + java 자동으로 추가 되지만 쿼리의 경우 꼭 WAS 내렸다 올려야한다.
- 성공!!!
** 회원가입
- 내비게이션.jsp "/user/regForm" 복사
- UserController.java에서 regForm 추가
- 위에서 만든 리턴경로 /view/regForm.jsp 만듦 (html 뼈대 소스 복사)
-
3교시
** 회원가입
- 내비게이션.jsp "/user/regForm" 복사
- UserController.java에서 regForm 추가
- 위에서 만든 리턴경로 /view/regForm.jsp 만듦 (html 뼈대 소스 복사)
- 아이디 중복체크 ajax 추가
**ajax
url / action ="" => controller.java 작성
- UserController.java 아이디 중복 체크 작성
4교시
- 회원가입 ajax 성공시 실제 DB에 Insert( fn_userReg()함수 )
- /user/regProc 구현
- 원래는 regProc가 만들어져서 화면은 호출 되어야 함
- resources/.../mapper/UserDao.xml
id="userInsert" 쿼리 옮김
- 인터페이스 UserDao.java에 userInsert 추가
- UserService.java 사용자 등록
- 스프링 호출 순서 : DispatherServlet => Controller => Service => Dao => DB(Query, xml)
- 컨트롤러는 @Controller를 붙여준다~!
- 서비스 등록 후 서비스 가서 성공 부분을 수정해줬음