TIL 23.10.23

ν™©μ€ν•˜Β·2023λ…„ 10μ›” 23일
0

TIL

λͺ©λ‘ 보기
103/146

πŸ“ŒToday I Learned

todo list μ‹€μŠ΅

μƒˆ ν”„λ‘œμ νŠΈ

  • New > Dynamic Web Project > "Todo" > Next > Next >
    Context root: "todo" > Generate web.xml 체크(O)

Todo List, λ©”λͺ¨μž₯, κ²Œμ‹œνŒ > CRUD 집쀑 > 예제

Todo List

  1. 주제
  2. 업무
    • 할일 μ“°κΈ°
    • 할일 보기(λͺ©λ‘)
    • 할일 μˆ˜μ •ν•˜κΈ°(X) > μ™„λ£Œ μƒνƒœ(O) μˆ˜μ •
    • 할일 μ‚­μ œν•˜κΈ°
  3. DB
    • script.sql
  4. ν™”λ©΄(+ νŽ˜μ΄μ§€) > λˆˆμ— λ³΄μ΄λŠ” νŽ˜μ΄μ§€
    • 할일 보기(λͺ©λ‘) νŽ˜μ΄μ§€ > webapp > list.jsp
    • 할일 μ“°κΈ° νŽ˜μ΄μ§€ > webapp > add.jsp, addok.jsp
    • 할일 μˆ˜μ • νŽ˜μ΄μ§€ > webapp > editok.jsp
    • 할일 μ‚­μ œ νŽ˜μ΄μ§€ > webapp > delok.jsp
    • ν…œν”Œλ¦Ώ νŽ˜μ΄μ§€ > webapp > template.jsp > λ¨Όμ € μ‹œμž‘
  5. λ¦¬μ†ŒμŠ€
    - 쑰각 νŽ˜μ΄μ§€
    - webapp > inc > header.jsp
    - webapp > inc > asset.jsp


    1번
<% if (result == 1) { %>
	<div class="message">할일을 λ“±λ‘ν–ˆμŠ΅λ‹ˆλ‹€.</div>
	<div>
		<a href="list.jsp">λͺ©λ‘λ³΄κΈ°</a>
	</div>
<% } else { %>
	<div class="message">할일 등둝을 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.</div>
	<div>
		<a href="add.jsp">λŒμ•„κ°€κΈ°</a>
	</div>
<% } %>

2번

<script>
		
	<%if (result == 1) {%>
		alert('할일 등둝 성곡');
		location.href = "list.jsp";
	<%} else {%>
		alert('할일 등둝 μ‹€νŒ¨');
		location.href = 'add.jsp';
	<%}%>
		
</script>

3번

<script>
		
	<%if (result == 1) {%>
		//alert('할일 등둝 성곡');
		location.href = "list.jsp";
	<%} else {%>
		alert('할일 등둝 μ‹€νŒ¨');
		location.href = 'add.jsp';
	<%}%>
		
</script>

Auth μ‹€μŠ΅

μƒˆ ν”„λ‘œμ νŠΈ

  • New > Dynamic Web Project > "AuthTest" > Next > Next > Context root: "auth"
    	> Generate web.xml 체크(o)

인증, Authentication

  • ν˜„μž¬ μ ‘μ†μžκ°€ ν•΄λ‹Ή μ‚¬μ΄νŠΈμ˜ ꡬ성원인지 ν™•μΈν•˜λŠ” μž‘μ—…
  • 둜그인(Sign in), λ‘œκ·Έμ•„μ›ƒ(Sign out)
  • ν•΄λ‹Ή μ ‘μ†μžκ°€ ꡬ성원인지 확인 μž‘μ—…(아이디, μ•”ν˜Έ) > 인증 ν‹°μΌ“ λ°œκΈ‰
    > μ‚¬μ΄νŠΈ λ‚΄μ—μ„œ 자유둭게 이동 + 인증 ν‹°μΌ“(증λͺ…)

ν—ˆκ°€, Authorization

  • νŠΉμ • 행동을 ν•  λ•Œ κΆŒν•œμ΄ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” μž‘μ—…

μ›Ή λ³΄μ•ˆ = 인증 + ν—ˆκ°€
= μ„Έμ…˜ 기반 인증(O)
= μΏ ν‚€ 기반 인증

파일

  • AuthTest > "script.sql"

  • WEB-INF > lib > ojdbc6.jar 볡사

  • "com.test.auth" > "DBUtil.java" 볡사

  • webapp > "index.jsp" //μ‹œμž‘ νŽ˜μ΄μ§€
    > "auth" > "login.jsp" //둜그인 폼 νŽ˜μ΄μ§€
    > "loginok.jsp" //둜그인 처리 νŽ˜μ΄μ§€(+인증 μž‘μ—…)
    > "logoutok.jsp" //λ‘œκ·Έμ•„μ›ƒ 처리 νŽ˜μ΄μ§€
    > "member" > "member.jsp" //νšŒμ› μ „μš© νŽ˜μ΄μ§€(+ ν—ˆκ°€ μž‘μ—…)
    > "admin" > "admin.jsp" //κ΄€λ¦¬μž μ „μš© νŽ˜μ΄μ§€(+ ν—ˆκ°€ μž‘μ—…)

MVC μ‹€μŠ΅

μƒˆ ν”„λ‘œμ νŠΈ

  • New > Dynamic Web Project > "MVCTest" > Next > Next > Context root: "mvc"
    > Generate web.xml 체크(o)
  1. Servlet
    • μž₯점 : μžλ°” 기반 > μžλ°” μ½”λ“œ 용이
    • 단점: ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ 뢈편
  2. JSP
    • μž₯점: ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ 용이
    • 단점: μžλ°” μ½”λ“œ 뢈편
  3. Servlet + JSP
    • μžλ°”μ½”λ“œ > μ„œλΈ”λ¦Ώμ— μž‘μ„± (μ„ )
    • ν΄λΌμ΄μ–ΈνŠΈ > JSP에 μž‘μ„± (ν›„)

거의 λŒ€λΆ€λΆ„μ˜ JSP νŽ˜μ΄μ§€

  1. 상단 > <% %> μžλ°” μ½”λ“œ μž‘μ„±
  2. μ€‘ν•˜λ‹¨ > HTML μ½”λ“œ μž‘μ„±

MVC λ””μžμΈ νŒ¨ν„΄
Model - (데이터 처리) -> μžλ°”(였라클 DB 처리)
View - 좜λ ₯ λ‹΄λ‹Ή (HTML νŽ˜μ΄μ§€ 생산) -> JSP
Controller - (μš”μ²­ ~ μ‘λ‹΅κΉŒμ§€ 전체 관리) -> μ„œλΈ”λ¦Ώ

JSP Model 1 (todo list) > μžλ°” μ½”λ“œ + ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ > 1μž₯의 JSP νŽ˜μ΄μ§€μ— μž‘μ„±ν•˜λŠ” λͺ¨λΈ
JSP Model 2 > μ„œλΈ”λ¦Ώ(μžλ°”) + JSP(ν΄λΌμ΄μ–ΈνŠΈ) > MVC λ””μžμΈ νŒ¨ν„΄ μ±„μš©

JSP MVC Model(X)

Hello

  • "com.test.mvc" > "Hello.java"
  • webapp > "hello.jsp"
  • webapp > WEB-INF > views > "hello.jsp"

WEB-INF νŠΉμ„±

  • μ‹œμŠ€ν…œ 폴더
  • ν†°μΊ£λ§Œ μ ‘κ·Όν•  수 μžˆλŠ” 폴더
  • λΈŒλΌμš°μ €λŠ” 직접 접근이 λΆˆκ°€λŠ₯ν•œ 폴더
  • λ‚΄λΆ€ μ‹œμŠ€ν…œ μžμ›μ„ κ΄€λ¦¬ν•˜λŠ” λ³΄μ•ˆ 폴더
    -> jspλŠ” WEB-INF에 views 에 λ„£λŠ”λ‹€. 직접 μ ‘κ·Ό λ§‰λŠ”λ‹€. servlet으둜만 λΆ€λ₯Ό 수 μžˆλ‹€. μ•ˆμ „.
  1. http://localhost:8090/mvc/helo.do
    RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/views/hello.jsp");
    -> [XXX.do] -> μ£Όμ†Œμ°½μ˜ μ£Όμ†Œ 였λ₯˜. μ„œλΈ”λ¦Ώμ€ 문제 μ—†μŒ.

  2. http://localhost:8090/mvc/hello.do
    RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/views/helo.jsp");
    -> [XXX.jsp] -> κ°€μƒμ£Όμ†Œ 였λ₯˜. μ„œλΈ”λ¦Ώ 문제.

μ„œλΈ”λ¦Ώ 호좜 -> jsp 호좜 (ν΄λΌμ΄μ–ΈνŠΈ μž„μ‹œνŽ˜μ΄μ§€ λ§Œλ“€κΈ°) -> νŽ˜μ΄μ§€ λ°›κΈ°

servlet을 μ‹€ν–‰ν•œλ‹€.
jspλ₯Ό μ‹€ν–‰ν•˜λ©΄ 값을 전달받을 수 μ—†λ‹€.

Memo μ‹€μŠ΅

μƒˆ ν”„λ‘œμ νŠΈ

  • New > Dynamic Web Project > "Memo" > Next > Next > Context root: "memo"
    > Generate web.xml 체크(o)
  1. 주제 > λ©”λͺ¨μž₯

  2. 업무 > CRUD

    • λ©”λͺ¨ μ“°κΈ°(C)
    • λ©”λͺ¨ λͺ©λ‘(R)
    • λ©”λͺ¨ 읽기(R)
    • λ©”λͺ¨ μˆ˜μ •(U)
    • λ©”λͺ¨ μ‚­μ œ(D)
  3. DB

    • Memo > "script.sql"
  4. 파일

    • 곡톡 파일
      - webapp > WEB-INF > "views" > "inc" > "header.jsp"
      > "asset.jsp"

    • λ©”λͺ¨ μ“°κΈ°
      - "com.test.memo" > "Add.java"
      > "AddOk.java"
      - webapp > WEB-INF > "views" > "add.jsp"
      > "addok.jsp"

    • λ©”λͺ¨ λͺ©λ‘
      - "com.test.memo" > "List.java"
      > "list.jsp"

    • λ©”λͺ¨ 읽기
      - "com.test.memo" > "View.java"
      - webapp > WEB-INF > "views" > "view.jsp"

    • λ©”λͺ¨ μˆ˜μ •
      - "com.test.memo" > "Edit.java"
      > "EditOk.java"
      - webapp > WEB-INF > "views" > "edit.jsp"
      > "editok.jsp"

    • λ©”λͺ¨ μ‚­μ œ
      - "com.test.memo" > "Del.java"
      > "DelOk.java"
      - webapp > WEB-INF > "views" > "del.jsp"
      > "delok.jsp"

    • ν…œν”Œλ¦Ώ
      - com.test.memo > "Template.java"
      - views > "template.jsp"

    • JDBC
      - com.test.memo > DBUtil.java 볡사
      - WEB-INF > lib > ojdbc6.jar 볡사

    • DB λ‹΄λ‹Ήμž
      - "com.test.memo.persist" λ˜λŠ”
      - "com.test.memo.dao" λ˜λŠ”
      - "com.test.memo.repository" > "MemoDAO.java"


      - "com.test.memo.dto" λ˜λŠ”
      - "com.test.memo.model" > "MemoDTO.java"

profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€