2011. 2. 10. 11:26
x86 Windows 버젼의 톰캣 7.0.4 기준으로 작성된 내용입니다.


분량이 큰 JSP페이지 작성중에 65535 limit 어쩌고 메시지와 함게 500 서버 에러 를 내는 경우가 있다...

해당 .jsp 파일이 내부에서 .java로 변환되어 지면서 이 용량이 65535를 초과 한다고 하는데
(틀린 부분이면 지적 바랍니다 -_-)

해결책은 2가지이다..
------------------------------
1. 소스 코드의 사이즈를 줄인다
2. 커스텀 태그를 사용한다
------------------------------

중간중간에 include 시킨 것들도 내부에서 .java 파일로 변환시 전부 포함되어버리니 커지는것은 당연할 듯...

그렇다면 소스코드용량을 줄이면 좋겠지만... 이것이 불가능하다면 커스텀 태그를 사용하여 해결하도록 한다.


페이지 상단에 커스텀태그를 정의 한다.
(커스텀 태그명은 사용자 임의로 주면 되므로 적당히 알아서 설정들 하시길...)
<%@ taglib prefix="inc" tagdir="/WEB-INF/tags" %>
prefix
inc라는 태그명을 정의합니다.
include 앞 3글자 따서 정의한건데, 뭐 맘대로 암거나 알아서 주셔도 되겠습네다 -_-;;

tagdir
/WEB-INF/폴더 하단에 tags 라는 폴더를 하나 생성하여 둡니다.


import 시킬 파일에 있던 내용을 tag 파일로 작성하여 보겠습니다.
(이 파일은 /WEB-INF/tags 안에 위치시켜 주세요)
sample.tag
<%@ tag body-content="empty" pageEncoding="UTF-8" %>
<%@ attribute name="value" type="java.lang.Integer" %>
<%@ attribute name="stVar" %>
<%@ attribute name="stVar2" %>
<%
(JSP 코드 기술...)
%>
진~ 하게 표시된 부분들은... 변수 입니다.
import 와 다르게 필요한 변수값이 있을경우, 이것들을 넘겨 받아야 하기 때문이죠

위에서 value 는 정수 형으로, stVar 과 stVar2 는 문자형 데이터를 넘겨 받기 위해 설정되었습니다.
중간에 기술된 JSP 코드들이 원래의 jsp파일에서 해당 위치에 import 됩니다.


커스텀 태그를 이용하여 import !!
<%
(기존 소스코드들...)
%>
<inc:sample value='<%=Integer.parseInt(varInt) %>' stVar='<%=var1 %>' stVar2='<%=var2 %>' />
<%
(기존 소스코드들...)
%>
jsp 코드 부분인 %를 닫은 다음 커스텀태그로 내용을 import 시킵니다.
<커스텀태그:파일명 파라미터1='값1' 파라미터2='값2' ... /> 의 형태로 작성합니다.

설정한 파라미터 값을 넘겨주게 되고, sample.tag 파일에서 넘겨받은 파라미터 값을 사용한 결과가 import 됩니다.


Posted by 해비