반응형
JSP 내장 객체란?
- JSP를 실행하면 서블릿 소스가 생성되고 실행된다.
- JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다.
- _jspService()에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용 가능하다.
- response, request, application, session, out과 같은 변수를 내장객체라고 한다.
실습 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
StringBuffer url = request.getRequestURL();
out.println("url : " + url.toString());
out.println("<br>");
%>
</body>
</html>
-> request와 out 객체는 선언되지 않았음에도 사용할 수 있음을 알 수 있다.
-> JSP 는 서블릿으로 변환되어 사용되기 때문에 서블릿 파일에서 봤던 내장 객체들을 JSP에서도 선언 없이 사용할 수 있는 것이다.
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
......
javax.servlet.jsp.JspWriter _jspx_out = null;
......
out = pageContext.getOut();
......
StringBuffer url = request.getRequestURL();
out.println("url : " + url.toString());
out.println("<br>");
-> <% %> 안에 넣어주었기 때문에 서블릿에서 service() 안에 코드가 들어가진다.
- 내장객체를 JSP 선언문에서 사용할 수 있을까요? 사용할 수 없다면 왜 그럴까요?
-> 내장객체는 Service() 안에 선언되는데, JSP 선언문은 Service() 밖에서 작성되기 때문에 내장 객체를 사용할 수 없다.
반응형
'Programming > JSP & Servlet & Mysql' 카테고리의 다른 글
부스트캠프 1) JDBC - mysql 연동하기 for mac (0) | 2020.11.19 |
---|---|
실습 10) 리다이렉트(redirect), 포워드(forward) (0) | 2020.11.12 |
실습 8) JSP 문법 (0) | 2020.11.11 |
실습 7) JSP란? JSP와 서블릿의 차이, JSP 라이프사이클 (0) | 2020.11.11 |
실습 6) 서블릿 Request, Response 이해하기 (0) | 2020.11.11 |