Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Web Server์™€ WAS

์›น ์„œ๋ฒ„(Web Server)

  • ์›น์—์„œ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ HTML ๋ฌธ์„œ๋‚˜ JPG, PNG ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„
  • ์„œ๋ฒ„ ๋‚ด๋ถ€์˜ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ์ •์ ์ธ ์š”์†Œ๋“ค์„ ํ™”๋ฉด์— ์ œ๊ณตํ•˜๋Š” ์—ญํ• 
  • Apache : Apache Software Foundation์—์„œ ๋งŒ๋“  ์›น ์„œ๋ฒ„๋กœ HTTP ํ†ต์‹ ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS, Web Application Server)

  • ์›น ์„œ๋ฒ„๊ฐ€ ํ•  ์ˆ˜ ์—†๋Š” ๋‹ค์–‘ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋™์ ์ธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ์›น ์„œ๋ฒ„์™€ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ์„ฑ
  • Tomcat : Apache Software Foundation์—์„œ Servlet๊ณผ JSP๋ฅผ ํ†ตํ•œ ๋™์ ์ธ ์›น ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

์„œ๋ธ”๋ฆฟ(Servlet)

  • ์›น ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ๋งํ•˜๋ฉฐ, ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ 
  • ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†กํ•˜๋Š” ์—ญํ• 

๋™์ž‘ ๊ตฌ์กฐ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  2. ํ•ด๋‹น ์š”์ฒญ์ด ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•œ ์š”์ฒญ์ด๋ฉด ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ๋„˜๊ธด๋‹ค.
  3. ์„œ๋ธ”๋ฆฟ์—์„œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‹คํ–‰์ด ์™„๋ฃŒ๋œ ํ›„์—๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์›น์„œ๋ฒ„์— ์ „๋‹ฌํ•œ๋‹ค.
  4. ์›น์„œ๋ฒ„๋Š” ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•œ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ตํ•œ๋‹ค.
  5. ์ปจํ…Œ์ด๋„ˆ์˜ ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•œ ์„ค์ •์€ ๋ฐฐํฌ ์„œ์ˆ ์ž(web.xml)์— ์ž‘์„ฑํ•œ๋‹ค.

๋ฐฐํฌ ์„œ์ˆ ์ž(Deployment Descriptor)

  • ๋ฐฐํฌ ์„œ์ˆ ์ž(Deployment Descriptor)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ „์ฒด ์„ค์ • ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ
  • ๋ฐฐํฌ ์„œ์ˆ ์ž์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์›น ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„œ๋ธ”๋ฆฟ ๊ตฌ๋™ํ•œ๋‹ค

์„œ๋ธ”๋ฆฟ ๋งคํ•‘

  • ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์„œ๋ธ”๋ฆฟ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ธ”๋ฆฟ์„ ๋“ฑ๋กํ•˜๊ณ  ๋งคํ•‘ํ•ด์•ผํ•œ๋‹ค.
  • ๋งคํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ web.xml๊ณผ @annotation์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. --> 13_MemberJSTL์—์„œ ํ™•์ธํ•˜์„ธ์šฉ!
@WebServlet("์ ‘๊ทผ URL ํŒจํ„ด")
public class ์„œ๋ธ”๋ฆฟ์ด๋ฆ„ extends HttpServlet {
    // servlet code..
}
<servlet>
    <setvlet-name>์„œ๋ธ”๋ฆฟ ์ด๋ฆ„</servlet-name>
    <servlet-class>์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค</servelt-class>
</servlet>
<servlet-mapping>
    <servlet-name>์„œ๋ธ”๋ฆฟ ์ด๋ฆ„<servlet-name>
    <url-pattern>์ ‘๊ทผ URL ํŒจํ„ด</url-pattern>
</servlet-mapping>

HttpServlet

  • ์„œ๋ธ”๋ฆฟ์ด ์›น์ƒ์—์„œ HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ƒ์†ํ•ด์•ผ ํ•˜๋Š” ํด๋ž˜์Šค
public class ํด๋ž˜์Šค๋ช… extends HttpServlet {

}

HttpServletRequest

  • ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์—์„œ ์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” ์š”์ฒญ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด
  • javax.servlet.ServletRequest๋ฅผ ์ƒ์†
  • getParameter(String) : client๊ฐ€ ๋ณด๋‚ด์ค€ ๊ฐ’์ด ์ €์žฅ๋œ ๋ช…์นญ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋ช…์นญ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฉ”์†Œ๋“œ
  • getParmeterValues(String) : client๊ฐ€ ๋ณด๋‚ด์ค€ ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ ์ผ ๊ฒฝ์šฐ ๊ทธ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฉ”์†Œ๋“œ
  • setCharacterEncoding(String) : ์ „์†ก๋ฐ›์€ Request ๊ฐ์ฒด์˜ ๊ฐ’๋“ค์˜ CharacterSet์„ ์„ค์ •ํ•ด์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

HttpServletResponse

  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๋กœ ๋ณด๋‚ด๋Š” ์‘๋‹ต ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด
  • javax.servlet.ServletResponse๋ฅผ ์ƒ์†
  • getWriter() : ๋ฌธ์ž๋ฅผ ํŽ˜์ด์ง€์— ์ „์†ก์„ ์œ„ํ•œ Stream์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ
  • setContentType(Stirng) : ์‘๋‹ต์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ํŽ˜์ด์ง€์˜ MIME type(ํŒŒ์ผ๋ณ€ํ™˜)์„ ์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

์„œ๋ธ”๋ฆฟ ์ƒ๋ช…์ฃผ๊ธฐ(Life Cycle)

  • ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ ํ›„ ์†Œ๋ฉธ๋˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์„ ๋ผ์ดํ”„ ์‚ฌ์ดํด์ด๋ผ๊ณ  ํ•œ๋‹ค.
  1. ์ฒซ๋ฒˆ์งธ ์š”์ฒญ์ผ ๊ฒฝ์šฐ, ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  init() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. (๋‹จ, ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰)
  2. service() ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ๋ฐฉ์‹์— ๋”ฐ๋ผ doGet(), doPost() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  3. ์ตœ์ข…์ ์œผ๋กœ ์„œ๋ธ”๋ฆฟ์ด ์„œ๋น„์Šค ๋˜์ง€ ์•Š์•˜์„ ๋•Œ destroy() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

JSP(Java Server Page)

  • HTML ์ฝ”๋“œ ์•ˆ์—์„œ ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ๋กœ ์ž๋ฐ” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์ธ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • JSP์˜ ๋ชฉํ‘œ๋Š” ์„œ๋ธ”๋ฆฟ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์œผ๋กœ๋ถ€ํ„ฐ ํ™”๋ฉด ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

Servlet๊ณผ JSP์˜ ์ฐจ์ด

  • Servlet : Java ์ฝ”๋“œ์— HTML ์ฝ”๋“œ ์‚ฝ์ž…, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ์— ์ ํ•ฉ
  • JSP :HTML ์ฝ”๋“œ์— Java ์ฝ”๋“œ ์‚ฝ์ž…, ํ™”๋ฉด ๋กœ์ง ์ฒ˜๋ฆฌ์— ์ ํ•ฉ

JSP ์‹คํ–‰ ๊ณผ์ •

  • ์›น ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์ด JSP์— ๋Œ€ํ•œ ์š”์ฒญ์ผ ๊ฒฝ์šฐ ๋จผ์ € JSP ํŒŒ์ผ์„ ์ž๋ฐ” ์ฝ”๋“œ(์„œ๋ธ”๋ฆฟ)๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ๋ณ€ํ™˜๋œ ์ž๋ฐ” ์ฝ”๋“œ(์„œ๋ธ”๋ฆฟ)๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์„œ๋ธ”๋ฆฟ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ์„œ๋ธ”๋ฆฟ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์„œ๋ธ”๋ฆฟ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ฑฐ์น˜๋ฉด์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

JSP์˜ ํŠน์ง•

  • ์ž๋ฐ” ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์„œ๋ฒ„ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.(์š”์ฒญ์„ ์Šค๋ ˆ๋“œ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ)
  • MVC ํŒจํ„ด์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • JSP ํŒŒ์ผ์˜ ๋ฐฐํฌ ์œ„์น˜๋Š” HTML ํŒŒ์ผ๊ณผ ๋™์ผํ•˜๋‹ค.

EL

  • EL(Expression Language)์€ JSP 2.0 ๋ฒ„์ „์—์„œ ์ถ”๊ฐ€๋œ ํ‘œํ˜„ ์–ธ์–ด
  • ํ‘œํ˜„์‹(Expression) ํƒœ๊ทธ๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’๋“ค์„ ์ข€ ๋” ๊ฐ„๊ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
<%= request.getParameter("name") %>

${param.name}

EL ๋‚ด์žฅ ๊ฐ์ฒด

  • pageScope : Page ์˜์—ญ ๊ฐ์ฒด์— ์ ‘๊ทผ
  • requestScope : Request ์˜์—ญ ๊ฐ์ฒด์— ์ ‘๊ทผ
  • sessionScope : Session ์˜์—ญ ๊ฐ์ฒด์— ์ ‘๊ทผ
  • applicationScope : Application ์˜์—ญ ๊ฐ์ฒด์— ์ ‘๊ทผ(Context)
  • param : ์ „๋‹ฌ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉ
  • paramValues : ์ „๋‹ฌ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉ

EL ์—ฐ์‚ฐ์ž

  • ๋‚˜๋ˆ—์…ˆ(/) : div
  • ๋‚˜๋จธ์ง€(%) : mod
  • and, or, ! : and, or, not
  • < : lt(less than)
  • '>' : gt(greater than)
  • <= : le(less or equal)
  • '>=' : ge(greater or equal)
  • == : eq(equal)
  • != : ne(not equal)
  • null๊ฐ’ ์ฒ˜๋ฆฌ(value==null) : empty

JSP ์•ก์…˜ ํƒœ๊ทธ

  • JSP ํŽ˜์ด์ง€์—์„œ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ
  • ์•ก์…˜ ํƒœ๊ทธ์˜ ๊ฒฝ์šฐ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์›น ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰
  • ํ‘œ์ค€ ์•ก์…˜ ํƒœ๊ทธ(forward) : JSP ํŽ˜์ด์ง€์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ, ํƒœ๊ทธ ์•ž์— jsp ์ ‘๋‘์–ด ๋ถ™์Œ
  • ์ปค์Šคํ…€ ์•ก์…˜ ํƒœ๊ทธ(c) : ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ํ•„์š”, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ์–ธ์— ๋งž๋Š” ์ ‘๋‘์–ด๊ฐ€ ๋ถ™์Œ

JSTL (JSP Standard Tag Library)

  • JSP์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ปค์Šคํ…€ ํƒœ๊ทธ
  • JSP ํŽ˜์ด์ง€์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํƒœ๊ทธ๋กœ ๋งŒ๋“ค์–ด ํ‘œ์ค€์œผ๋กœ ์ œ๊ณต

JSTL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ๋ก

  • ํ†ฐ์บฃ(https://tomcat.apache.org)์—์„œ JSTL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.
  • ์›น ํ”„๋กœ์ ํŠธ์˜ lib ํด๋”์— ๋‹ค์šด๋กœ๋“œํ•œ JSTL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค.
  • JSTL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” JSP ํŽ˜์ด์ง€์—์„œ taglib ์ง€์‹œ์ž๋กœ ์„ ์–ธํ•ด์•ผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c">

c:set ํƒœ๊ทธ

  • ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ํƒœ๊ทธ
  • ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์€ ๋ณ„๋„๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์ง€๋งŒ ์ดˆ๊ธฐ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ๊ธฐ์ˆ ํ•ด์•ผํ•œ๋‹ค.
  • ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” EL ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
<c:set var="num" value="100" />
${num}
  • scope ์†์„ฑ์€ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ ์˜์—ญ์„ ์ง€์ •ํ•œ๋‹ค.(๊ธฐ๋ณธ๊ฐ’์€ page)
<c:set var="num" value="100" scope="request" />
  • <c:set> ~ </c:set> ์‚ฌ์ด์— ","๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์ด๋‚˜ Collection์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
<c:set var="array" scope="request">
yellow, bule, pink, red, green..
</c:set>

c:if ํƒœ๊ทธ

  • ์ž๋ฐ”์˜ if ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ํƒœ๊ทธ
  • ์กฐ๊ฑด์‹์€ test ์†์„ฑ์— EL ๊ตฌ๋ฌธ์œผ๋กœ ๊ธฐ์ˆ ํ•ด์•ผ ํ•œ๋‹ค.
  • ์กฐ๊ฑด์‹์€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ <c:if>~</c:if>๋‚ด์šฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
<c:if test="${num > num2}">
</c:if>

c:choose ํƒœ๊ทธ

  • ์ž๋ฐ”์˜ switch ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ํƒœ๊ทธ
  • ํ•˜์œ„ ํƒœ๊ทธ์ธ <c:when>,<c:otherwise> ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ๊ฐ๊ฐ switch ๊ตฌ๋ฌธ์˜ case, defalut ์ ˆ๊ณผ ๋น„์ˆซํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.
<c:choose>
    <c:when test="${num eq 0}"></c:when>
    <c:when test="${num eq 0=1}"></c:when>
    <c:otherwise></c:otherwise>
</c:choose>

c:forEach ํƒœ๊ทธ

  • ์ž๋ฐ”์˜ for ๊ตฌ๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํƒœ๊ทธ
<c:forEach begin="1" end="10" items="${list}" var="value">
</c:forEach>
  • items : ๋ฐ˜๋ณตํ•  ๊ฐ์ฒด ๋ช…(Collection ๊ฐ์ฒด)
  • begin : ๋ฐ˜๋ณต์ด ์‹œ์ž‘ํ•  ์š”์†Œ ๋ฒˆํ˜ธ
  • end : ๋ฐ˜๋ณต์ด ๋๋‚˜๋Š” ์š”์†Œ ๋ฒˆํ˜ธ
  • step : ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜ ๋ฒˆํ˜ธ
  • var : ํ˜„์žฌ ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„

Ajax (Asynchronous JavaScript and XML)

  • JavaScript๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ(XML)๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”(ํ†ต์‹ ) ๋ฐฉ์‹
  • ๋ฐ์ดํ„ฐ ํ˜•์‹์€ XML ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Text, HTML, JSON, CSV ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋™๊ธฐ์‹ VS ๋น„๋™๊ธฐ์‹

  • ๋™๊ธฐ์‹ ๋ฐ์ดํ„ฐ ํ†ต์‹  : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์‘๋‹ต์ด ์˜ฌ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—… ๋Œ€๊ธฐ
  • ๋น„๋™๊ธฐ์‹ ๋ฐ์ดํ„ฐ ํ†ต์‹  : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์š”์ฒญ ํ›„ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์ž‘์—… ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ, ์ถ”ํ›„ ์‘๋‹ต์ด ์˜ค๋ฉด ์‘๋‹ต์— ๊ด€๋ จ๋œ ์ž‘์—… ์ง„ํ–‰

ํŠน์ง•

  • ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๊ณ  ์ผ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘๊ณผ ํ’๋ถ€ํ•œ UI ๊ฒฝํ—˜ ์ œ๊ณต
  • JavaScript ๋˜๋Š” jQuery ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„

๋‹จ์ 

  • Ajax๋Š” Javascript์ด๋ฏ€๋กœ ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ฅธ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € ์ฒ˜๋ฆฌ ํ•„์š”
  • ์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ ์š”์ฒญ์‹œ ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ฆ๊ฐ€ํ•˜์—ฌ ํŽ˜์ด์ง€๊ฐ€ ๋А๋ ค์ง
  • ํŽ˜์ด์ง€ ๋‚ด ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜์—ฌ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ๋””๋ฒ„๊น…์ด ์–ด๋ ค์›€

JavaScript ๋ฐฉ์‹

  • ๋ธŒ๋ผ์šฐ์ € ๋‚ด์žฅ ๊ฐ์ฒด์ธ XMLHttpRequest๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ 
  1. ๊ฐ์ฒด ์ƒ์„ฑ : script๋ฌธ์— ์š”์ฒญ์„ ์œ„ํ•œ XTMLHttpRequest ๊ฐ์ฒด ์ƒ์„ฑ
  2. ์„œ๋ฒ„ ์‘๋‹ต ์ฒ˜๋ฆฌ ํ•จ์ˆ˜ ์ƒ์„ฑ ๋ฐ ์ง€์ • : onreadystatechange์— ํ•จ์ˆ˜ ์ง€์ •
    • readyState : ์„œ๋ฒ„ ์‘๋‹ต ์ƒํƒœ ํ™•์ธ
    • status : Http ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ ํ™•์ธ
    • responseText / responseXML : ์„œ๋ฒ„ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
  3. open() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜์—ฌ ์š”์ฒญ ๋ฐฉ์‹, ๋Œ€์ƒ(์„œ๋ฒ„), ๋™๊ธฐ/๋น„๋™๊ธฐ ์ง€์ •
  4. send() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜์—ฌ ๋Œ€์ƒ(์„œ๋ฒ„)์— ์ „์†ก

jQuery ๋ฐฉ์‹

  • jQuery์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” Ajax ํ†ต์‹ ์„ ์œ„ํ•œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜ ์ด์šฉ
$.ajax({
    url: "์š”์ฒญ์ด ์ „์†ก๋˜๋Š” url์ด ํฌํ•จ๋œ ๋ฌธ์ž์—ด(ํ•„์ˆ˜ ๊ตฌํ˜„ ์†์„ฑ,servlet)",
    [settings..]
});

์ฃผ์š” ์†์„ฑ

  • url : ์š”์ฒญ(request) ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  URL
  • type : Http ์š”์ฒญ ๋ฐฉ์‹ ์ง€์ • (GET / POST)
  • data : ์„œ๋ฒ„๋กœ ์ „์†กํ•  ์š”์ฒญ Parameter ์„ค์ •
  • datatype : ์„œ๋ฒ„์˜ ์‘๋‹ต(response) ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹(xml, text, json, html ๋“ฑ) ์ง€์ •, ๋ฏธ ์ž‘์„ฑ์‹œ ์ž๋™์œผ๋กœ ํŒ๋‹จํ•˜์—ฌ ์ง€์ •
  • success(data) : ajax ํ†ต์‹  ์„ฑ๊ณต์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ง€์ •, ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‘๋‹ต ๋ฐ์ดํ„ฐ(data)๋ฅผ ๋ฐ›์Œ
  • error : ajax ํ†ต์‹  ์‹คํŒจ ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ง€์ •
  • complete : ajax ํ†ต์‹  ์„ฑ๊ณต ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ†ต์‹ ์ด ์™„๋ฃŒ ํ›„ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜ ์ง€์ •
  • async : ๋น„๋™๊ธฐ(true) / ๋™๊ธฐ(false) ์ง€์ •

์žฅ์ 

  • ์ฝ”๋“œ๊ธธ์ด ๊ฐ์†Œ. JavaScript ๋ฐฉ์‹๋ณด๋‹ค ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ด ๊ฐ„๋‹จ
  • ์ง๊ด€์ ์ด๋ฉฐ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์˜ ์ฝ”๋”ฉ ๊ฐ€๋Šฅ
  • ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € ์ฒ˜๋ฆฌ๋ฅผ jQuery๊ฐ€ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐ

JSON

  • JavaScript Object Notation(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ํ‘œํ˜„๋ฒ•)์˜ ์•ฝ์ž
  • ๊ฐ„๋‹จํ•œ ํฌ๋งท : ๊ด„ํ˜ธ {} ๋‚ด์— key:value ์Œ์œผ๋กœ ๊ตฌ์„ฑ - > {"key":value}
  • key๋Š” ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด ์‚ฌ์šฉํ•˜๋ฉฐ value๋Š” String, Number, Boolean, Array, Object, null ์ €์žฅ ๊ฐ€๋Šฅ
  • ๊ฐ์ฒ˜ {} ๋˜๋Š” ๋ฐฐ์—ด [] ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œ์‹œ ๊ฐ€๋Šฅ

ํŠน์žฅ

  • Ajax ํ†ต์‹ ์—์„œ Object ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ XML ๋Œ€๋น„ ์šฉ๋Ÿ‰์ด ์ž‘๊ณ  ์†๋„๊ฐ€ ๋น ๋ฆ„(๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐฉ์‹)
  • ๊ฐ„๋‹จํ•œ ํฌ๋งท์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€
  • ์ˆœ์ˆ˜ TEXT ๊ธฐ๋ฐ˜์œผ๋กœ TEXTํ˜•์‹์ด ๊ตฌ์กฐํ™” ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ JSON ํฌ๋งท ๋ฐ์ดํ„ฐ๋ฅผ ํ•ธ๋“ค๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด ์‹œ์Šคํ…œ ๊ฐ„ ๊ฐ์ฒด ๊ตํ™”์— ์šฉ์ด

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages