반응형

 

 

 

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() 안에 코드가 들어가진다.

 

 

 

 

 

 

  1. 내장객체를 JSP 선언문에서 사용할 수 있을까요? 사용할 수 없다면 왜 그럴까요?

-> 내장객체는 Service() 안에 선언되는데, JSP 선언문은 Service() 밖에서 작성되기 때문에 내장 객체를 사용할 수 없다.

반응형

+ Recent posts