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 | ์๋ช
์ฃผ๊ธฐ๋ ์ด๋ฒคํธ ๊ฐ์ง ๋ฐ ์ฒ๋ฆฌ |