개발일지/Java + Spring

[Spring] 흐름 읽기_1208필기

연습용365 2021. 12. 8. 22:31

 

스프링을 시작해따 . . .

익숙하지 않아서 그런지 흐름을 파악하는 것 만으로도 너무 너무 어렵고 시간이 많이 걸린다.

눈코 뜰세 없이 바쁜 나날들이 계속되지만 새롭게 배운다는 건 언제나 재밌긔

하지만 . . . 프로젝트 준비도 같이 해야 하는 게 참 힘 들 다 . . ! !

여러모로 시간이 없으니 당분간은 필기한 것들 위주로만 올리겠음 ~~~

 

 


- 스프링 호출 순서 : 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를 붙여준다~!

- 서비스 등록 후 서비스 가서 성공 부분을 수정해줬음