이번엔 내장변수 중 out 내장변수에 대해 알아보겠습니다.
서블릿클래스에서 화면에 출력을 하기 위해서는 println, print 등의 메소드를 호출해야 했습니다.
그러나 JSP페이지는 HTML코드와 익스프레션( <%= .. %> )을 가지고 출력이 가능합니다.
그리고 실제로 HTML코드와 일반 텍스트들은 out객체에 그대로 전달이 됩니다.
outDemo.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>out내장객체(내장변수) 사용해보기</title> </head> <body> <% out.println("안녕하세요~"); %> <br> out객체를 이용하여서 <% out.println("출력해보았습니다."); %> </body> </html> | cs |
솔직히 이런식이면 out객체를 사용할 일이 없습니다.
그러면 대체 이 out객체는 언제 사용되는지 궁금합니다.
out객체는 코드가 복잡해질 경우 간단히 표시 할 수가 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>out객체는 이럴때 사용하면 좋아요~</title> </head> <body> <h2>1부터 10까지 출력하기</h2><br> <% for(int cnt = 1; cnt <=10; cnt++){%> <%=cnt%> <%}%> </body> </html> | cs |
위와 같이 for문을 사용하는데 for문이 100개가 있다고 가정합시다.
계속 해서 스크립틀릿(<% %>)과 익스프레션(<%= %>) 를 열고 닫아야 됩니다.
아.. 너무 귀찮고 보기에도 복잡해 보일것 같습니다.
이럴때 out객체를 사용해주면 코드가 보기가 편해 집니다.
useOut.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>out객체는 이럴때 사용하면 좋아요~</title> </head> <body> <h2>1부터 10까지 출력하기</h2><br> <% for(int cnt = 1; cnt <=10; cnt++){ out.print(cnt+"\t"); } %> </body> </html> | cs |
out객체를 사용해 스크립틀릿 내에서 한번에 해결 했습니다.
JSP페이지에서 출력하는 데이터들은 모두 out내장변수를 통하여 출력이 됩니다.
이때 출력할 데이터들을 잠시 버퍼에 저장했다가 한번에 전송을 하는데요.
이 버퍼의 크기는 컨테이너에 따라 다릅니다.
현재 버퍼의 크기를 알아보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>현재 버퍼의 크기</title> </head> <body> <%=out.getBufferSize()%> </body> </html> | cs |
out객체의 getBufferSize()메소드를 사용하면 현재 버퍼의 크기를 알 수 있습니다
저는 8192라고 나왔습니다. 출력은 byte단위로 해주기 때문에 8kb입니다.
버퍼의 크기는 바꿀 수도 있습니다.
page지시자의 buffer 속성을 이용해서 바꿀 수 있습니다.
버퍼의 크기는 kb단위의 정수로 적어야 하며, 숫자 뒤에는 kb 단위를 붙여주어야 합니다.
저는 2kb로 바꾸어 보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page buffer="2kb"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>현재 버퍼의 크기</title> </head> <body> <%=out.getBufferSize()%> </body> </html> | cs |
3번라인을 추가 했습니다
버퍼를 사용하지 않으려면 buffer속성값에 "none"이라고 지정해 주시면 됩니다.
다음 포스팅은 Response 내장변수~
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP] 12. 내장변수(Implict Variable) - application (0) | 2015.06.05 |
---|---|
[JSP] 11. 내장변수(Implict Variable) - response (0) | 2015.06.04 |
[JSP] 09. 내장변수(Implicit Variable) - request (0) | 2015.05.22 |
[JSP] 08. includ지시자와 주석 (0) | 2015.05.20 |
[JSP] 07. JSP의 구성요소 - 스크립팅요소 와 지시자 (0) | 2015.05.08 |