TIL 23.10.18

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

TIL

λͺ©λ‘ 보기
100/146

πŸ“ŒToday I Learned

JSP(ex08~18)

ν™”λ©΄ μ „ν™˜ 차이

response.sendRedirect("2.jsp");

1.jsp μ‹€ν–‰ν•΄.
response μ–˜ λ§Œλ‚˜λ©΄ λ‹Ήμž₯ 이동은 μ•ˆν•˜κ³  κΈ°μ–΅ν•΄λ‘ .
λ‚˜λ¨Έμ§€ μ½”λ“œ μ­‰ μ‹€ν–‰ν•΄μ„œ λŒλ €μ€„ νŽ˜μ΄μ§€ λ§Œλ“¦.
1번 νŽ˜μ΄μ§€ μ‹€ν–‰ 끝냄.
κΈ°μ–΅ν•΄λ‘” μ½”λ“œ 싀행함.
ν΄λΌμ΄μ–ΈνŠΈλ‘œ λŒμ•„κ°.
ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ‹€μ‹œ λŒμ•„κ°.
μ£Όμ†Œμ°½μ— 2번 μ£Όμ†Œλ₯Ό 적어둠.
roundtrip 2번. 1번과 2번 λͺ¨λ‘ λ‹€ 보고 옴

pageContext.forward("2.jsp");

1.jsp μ‹€ν–‰ν•΄.
pageContextλ§Œλ‚˜λ©΄ ν•˜λ˜κ±° λ©ˆμΆ”κ³  1번 νŽ˜μ΄μ§€ μ’…λ£Œμ²˜λ¦¬
μ„œλ²„μ—μ„œ 2번 νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄κ°.
2번 νŽ˜μ΄μ§€ μ‹€ν–‰.
μ„œλ²„λ‘œ λŒμ•„κ°.
ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλŠ” 2번 ν™”λ©΄ λ³΄μ΄μ§€λ§Œ μ£Όμ†Œμ°½μ€ 1λ²ˆμž„.
roundtrip 1번

ν΄λΌμ΄μ–ΈνŠΈ aκ°€ λ‚΄ μ›ΉνŽ˜μ΄μ§€ 접속.
λ‚΄ 화면을 ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ³΄μ—¬μ€Œ.
λ‚΄κ°€ (μ„œλ²„)μ €μž₯μ†Œμ— 가상객체(μ„Έμ…˜)λ₯Ό ν•˜λ‚˜ λ§Œλ“€κ³ , ν΄λΌμ΄μ–ΈνŠΈ aμž„μ„ 적어둠.
ν•΄λ‹Ή κ°μ²΄λŠ” 타이머가 있으며 30λΆ„μ§œλ¦¬λ‹€.
ν΄λΌμ΄μ–ΈνŠΈ aκ°€ λ‚΄ λ‹€λ₯Έ μ›ΉνŽ˜μ΄μ§€λ₯Ό 접속.
타이머가 λ‹€μ‹œ 30λΆ„μœΌλ‘œ 늘림.
ν΄λΌμ΄μ–ΈνŠΈ aκ°€ λ‚΄ μ›ΉνŽ˜μ΄μ§€λ₯Ό λ‹«μŒ.
타이머가 0이 되면 λ§Œλ“€μ–΄λ‘” 객체λ₯Ό 지움.
(타이머가 μ‚΄μ•„μžˆλ‹€λ©΄ ν•΄λ‹Ή ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‘΄μž¬ν•œλ‹€κ³  보자.
μ£½μ–΄μžˆλ‹€λ©΄ ν•΄λ‹Ή ν΄λΌμ΄μ–ΈνŠΈκ°€ λ‚˜κ°”λ‹€κ³  보자.)

λ‚˜λ§Œ 볼래 = session
λ‹€λ₯Έμ‚¬λžŒλ„ 볼래 = application

둜그인 정보λ₯Ό λŒ€κ°œ μ„Έμ…˜μ— λ„£μ–΄λ‘”λ‹€.
크둬, 엣지 μ—μ„œ 같은 νŽ˜μ΄μ§€λ₯Ό μ—΄λ©΄ μ„Έμ…˜μ΄ λ‹€λ₯΄λ‹€.
application은 κ°™λ‹€.

ν¬λ‘¬μ—μ„œ μƒˆ 탭을 μ—¬λŠ”κ±°λŠ” 같은 μ„Έμ…˜μœΌλ‘œ λ³Έλ‹€.
크둬을 휠 ν΄λ¦­ν•΄μ„œ μ—΄μ—ˆμ„ λ•Œλ„ 같은 μ„Έμ…˜μœΌλ‘œ λ³Έλ‹€.

λŒ€λΆ€λΆ„ session을 μ‚¬μš©ν•˜κ³ , 가끔 application을 μ‚¬μš©ν•œλ‹€.

  1. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ μ „μ†‘ν•œ 데이터λ₯Ό κ°€μ Έμ˜€κΈ°
    • "ex07.jsp" > μ‚¬μš©μžλ‘œλΆ€ν„° 데이터λ₯Ό μž…λ ₯ + μ„œλ²„ 전솑 (send)
    • "ex07_ok.jsp" > 데이터 μˆ˜μ‹  + 가곡/처리 + ν”Όλ“œλ°± (receive)

    • "ex08.jsp" > λͺ¨λ“  μž…λ ₯ 컨트둀 ν…ŒμŠ€νŠΈ(μ†‘μˆ˜μ‹ )
    • "ex08_ok.jsp"

    • "ex09.jsp"
    • "ex09_ok.jsp"

  2. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ μ „μ†‘ν•œ 데이터 인코딩 처리
  3. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ 전솑할 λ•Œμ˜ μ—¬λŸ¬κ°€μ§€ κ΄€λ ¨ 정보 κ°€μ Έμ˜€κΈ°
    • "ex10_request.jsp"

response 객체

  • HttpServletResponse
  1. μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λŒλ €μ£ΌλŠ” HTML νŽ˜μ΄μ§€ μ œμž‘
  • response.getWriter() > PrintWriter > HTML μ œμž‘
  1. μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λŒλ €μ£ΌλŠ” HTML νŽ˜μ΄μ§€ 인코딩
  • response.setCharacterEncoding("UTF-8") //μ„œλΈ”λ¦Ώ
  • νŽ˜μ΄μ§€ μ§€μ‹œμž > contentType="charset=UTF-8" //JSP (μœ„μ™€ κ°™μŒ)
  1. μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λŒλ €μ£ΌλŠ” HTML νŽ˜μ΄μ§€ MIME μ„€μ •
  • contextType="text/html"
  • λΈŒλΌμš°μ €μ—κ²Œ λŒλ €μ£ΌλŠ” νŽ˜μ΄μ§€μ˜ ν˜•μ‹μ΄ HTML νŽ˜μ΄μ§€μž…λ‹ˆλ‹€..라고 μ•Œλ €μ£ΌλŠ” μ—­ν• 
  1. νŽ˜μ΄μ§€ μ΄λ™ν•˜κΈ°
  • "ex11_response_1.jsp"
  • "ex11_response_2.jsp"

pageContext 객체

  • "ex12_pagecontext_1.jsp"
  • "ex12_pagecontext_2.jsp"

out 객체

  • 좜λ ₯ 객체
  • "ex13_out.jsp"

pageContext, request, session, application

  • 내뢀에 데이터λ₯Ό μ €μž₯ν•˜λŠ” 곡간이 μžˆλ‹€. (MAP)
  • setAttribute(), getAttribute()

session 객체

  • ν΄λΌμ΄μ–ΈνŠΈ(λΈŒλΌμš°μ €)의 μ„Έμ…˜ 정보(접속 ~ μ’…λ£Œ)λ₯Ό μ €μž₯/κ΄€λ¦¬ν•˜λŠ” 객체

μ›Ήμ‚¬μ΄νŠΈ == μ›Ή μ‘μš© ν”„λ‘œκ·Έλž¨ == μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜

application 객체

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜(μ›Ή μ‚¬μ΄νŠΈ)의 전체적인 정보λ₯Ό 관리/μ‘°μž‘ν•˜λŠ” 객체

  • "ex14_session_application.jsp"

  • "ex15_session.jsp"
  • "ex15_set.jsp"
  • "ex15_del.jsp"
  • "ex15_interval.jsp"
  • "ex15_reset.jsp"

파일 μ—…λ‘œλ“œ/λ‹€μš΄λ‘œλ“œ

  • λΈŒλΌμš°μ €μ™€ μ›Ήμ„œλ²„κ°„μ˜ 파일 볡사
  • μ—…λ‘œλ“œ: ν΄λΌμ΄μ–ΈνŠΈ μžμ› > (볡사) > μ„œλ²„ μΈ‘
  • λ‹€μš΄λ‘œλ“œ : μ„œλ²„ μžμ› > (볡사) > ν΄λΌμ΄μ–ΈνŠΈ μΈ‘

파일 μ—…λ‘œλ“œ 라이브러리

  • cos library
  • http://www.servlets.com > COS File Upload Library > cos-22.05 > cos.jar
    ν•΄λ‹Ή 파일 경둜: C:\class\dev\cos-22.05\lib\
  • webapp > WEB-INF > lib > cos.jar 볡사 // 톰캣이 λŒ€μ‹  μ°Έμ‘°ν•œλ‹€.
  • webapp > "files" 폴더 생성 // μ—…λ‘œλ“œν•œ νŒŒμΌμ„ μ €μž₯ν•  폴더

단일 파일 μ—…λ‘œλ“œ

  • "ex16.jsp"
  • "ex16_ok.jsp"

닀쀑 파일 μ—…λ‘œλ“œ

  • "ex17.jsp"
  • "ex17_ok.jsp"

이미지 λ·°μ–΄

  • "ex18.jsp"
  • "ex18_ok.jsp"
  • "ex18_del.jsp"
profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€