Search
โšก

JSP ํ•ต์‹ฌ ๊ธฐ์ˆ  ์š”์†Œ

JSP ํ•ต์‹ฌ ๊ธฐ์ˆ  ์š”์†Œ

์„œ๋ธ”๋ฆฟ(Servlet)๊ณผ JSP(JavaServer Pages)๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
โ€ข
Servlet
โ€ข
JSP
โ€ข
Filter
โ€ข
Listener

ํ•ต์‹ฌ ๊ธฐ์ˆ  ์š”์†Œ ์ •๋ฆฌ

1. Servlet

โ€ข
์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์š”์ฒญ/์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค
โ€ข
HTTP ์š”์ฒญ์„ ๋ฐ›๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ์‘๋‹ต์„ ๋ฐ˜ํ™˜
โ€ข
doGet(), doPost() ๋“ฑ ๋ฉ”์„œ๋“œ๋กœ HTTP ๋ฉ”์„œ๋“œ ์ฒ˜๋ฆฌ
@WebServlet("/hello") public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("Hello, Servlet!"); } }
Java
๋ณต์‚ฌ

2. JSP (JavaServer Pages)

โ€ข
HTML์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๋™์ ์ธ ์›น ํŽ˜์ด์ง€ ์ƒ์„ฑ
โ€ข
๋ทฐ(View) ์—ญํ• ๋กœ ์‚ฌ์šฉ
โ€ข
๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋จ
<%@ page language="java" %> <html> <body> <h1>Hello, <%= request.getParameter("name") %></h1> </body> </html>
Plain Text
๋ณต์‚ฌ

3. Filter

โ€ข
ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP์— ๋„๋‹ฌํ•˜๊ธฐ ์ „/ํ›„์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ
โ€ข
๋กœ๊ทธ์ธ ์ฒดํฌ, ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ, ๋กœ๊น… ๋“ฑ์— ์‚ฌ์šฉ
@WebFilter("/secure/*") public class AuthFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; if (request.getSession().getAttribute("user") == null) { ((HttpServletResponse) res).sendRedirect("/login.jsp"); } else { chain.doFilter(req, res); // ๊ณ„์† ์ง„ํ–‰ } } }
Java
๋ณต์‚ฌ

4. Listener

โ€ข
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฒคํŠธ(์ƒ๋ช…์ฃผ๊ธฐ, ์„ธ์…˜, ์š”์ฒญ ๋“ฑ)๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ
โ€ข
์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ (์˜ˆ: ์„ธ์…˜ ์ƒ์„ฑ/์†Œ๋ฉธ ๊ฐ์ง€, ์ปจํ…์ŠคํŠธ ์ดˆ๊ธฐํ™” ๋“ฑ)

์˜ˆ: ์„ธ์…˜ ์ƒ์„ฑ/์†Œ๋ฉธ ๊ฐ์ง€

@WebListener public class SessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { System.out.println("์„ธ์…˜ ์ƒ์„ฑ: " + se.getSession().getId()); } public void sessionDestroyed(HttpSessionEvent se) { System.out.println("์„ธ์…˜ ์ข…๋ฃŒ: " + se.getSession().getId()); } }
Java
๋ณต์‚ฌ

๊ทธ ์™ธ ๊ธฐ์ˆ  ์š”์†Œ (JSP ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ์‹œ ์ž์ฃผ ๋“ฑ์žฅ)

๊ธฐ์ˆ  ์š”์†Œ
์„ค๋ช…
EL(Expression Language)
${user.name} ํ˜•ํƒœ๋กœ ์ž๋ฐ” ๊ฐ์ฒด์˜ ์†์„ฑ ์ ‘๊ทผ
JSTL (JSP Standard Tag Library)
<c:forEach>, <c:if> ๋“ฑ ๋ฐ˜๋ณต, ์กฐ๊ฑด ํ‘œํ˜„์„ ํƒœ๊ทธ๋กœ ์ฒ˜๋ฆฌ
Web.xml
์„œ๋ธ”๋ฆฟ/ํ•„ํ„ฐ/๋ฆฌ์Šค๋„ˆ ๋“ฑ์„ ๋“ฑ๋กํ•˜๋Š” ์„ค์ • ํŒŒ์ผ
RequestDispatcher
JSP ๋˜๋Š” ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์š”์ฒญ ์ „๋‹ฌ (forward, include)
Cookie, Session API
์‚ฌ์šฉ์ž ์ƒํƒœ ๊ด€๋ฆฌ (๋กœ๊ทธ์ธ ์ƒํƒœ ๋“ฑ)

์š”์•ฝ

๋ถ„๋ฅ˜
์—ญํ• 
Servlet
์š”์ฒญ ์ฒ˜๋ฆฌ ๋กœ์ง (์ปจํŠธ๋กค๋Ÿฌ)
JSP
ํ™”๋ฉด ์ถœ๋ ฅ (๋ทฐ)
Filter
์š”์ฒญ/์‘๋‹ต ์ „ํ›„์— ๊ฐ€๋กœ์ฑ„์„œ ๋กœ์ง ์‚ฝ์ž…
Listener
์ƒ๋ช…์ฃผ๊ธฐ๋‚˜ ์ด๋ฒคํŠธ ๊ฐ์ง€ ๋ฐ ์ฒ˜๋ฆฌ