HTML내에 카드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어.
JAVA EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.
자카르타 서버 페이지는 실행시에는 자바 서블릿으로 변화된 후 실행되므로 서블릿과 거의 유사하다고 할 수 있다. 하지만 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다.
형식 )
<%!
String name;
public void init(){
name = "1c2"
}
%>
형식)
<%
for(int dan = 2;dan<10;dan++){
out.print("<tr>");
String classname - dan % 2 == 0 ? "color1" : "color2"l
for(int i = 0; i < 10;i++){
out.println("<td class=\"" + classname + "\">" + dan + " * " + i + " = " + dan * i + "</td>");
}
out.println("</tr>");
}
%>
형식)
안녕 <%= name %> !!!
주의) 뒤에 세미콜론(;) 작성X
형식)
<!-- HTML 주석-->
<%-- JSP 주석 --%>
<%
/*
JAVA 주석
*/
%>
request
HttpServletRequest
response
HttpServletResponse
out
JspWriter
session
HttpSession
application
ServletContext
config
ServletConfig
page
Object
pageContext
PageContext
exception
Throwable
setAttribute(String name, Object value)
session.setAttribute("user", userObject);
getAttribute(String name)
null
을 반환Object user = session.getAttribute("user");
getAttributeNames()
Enumeration
객체로 반환Enumeration names = session.getAttributeNames();
removeAttribute(String name)
session.removeAttribute("user");
invalidate()
(주로 session
영역에서 사용)
session.invalidate();
특징 | forward | sendRedirect |
---|---|---|
URL 변화 | 변화 없음 | 변화 있음 |
브라우저 요청 횟수 | 1회 | 2회 |
데이터 공유 | 요청 데이터 공유 가능 | 요청 데이터 공유 불가 |
처리 방식 | 서버 내부에서 처리 | 클라이언트를 통한 새 요청 |
사용 시나리오 | 같은 애플리케이션 내 페이지 이동 | 다른 애플리케이션 또는 외부 URL로 이동 |
메서드 호출 | RequestDispatcher.forward(request, response); | response.sendRedirect("url"); |
성능 | 비교적 빠름 | 비교적 느림 (네트워크 지연 포함) |
주소 표시줄 변화 | 원래 요청 URL 유지 | 새로운 URL로 변경 |
데이터 유지 | request의 setAttribute(name, value)를 통해 전달 | request로는 data저장 불가능. session이나 cookie를 이용. |