JSP를 사용하여 XML 문서 제작하기
JSP를 사용하여 XML문서를 제작하는 방법으로 XML에 대한 설명을 따로 하지 않는다. JSP를 사용하여 XML문서를 제작하기 위해서는 문서 선언은 XML문서 선언으로 하고 JSP 콘텐츠 타입을 'text/xml'로 지정하며 파일 확장자는 .jsp를 사용한다. 또한, XML 문서 DTD나 스키마는 따로 제작할 필요가 없다다. JSP를 사용하여 제작한 XML 문서는 다음과 같다.
xml.jsp
<%@ page contentType="text/xml" %>
<note>
<name>${name}</name>
<age>${age}</age>
<content>${data}</content>
</note>
이 때, 주의할 점은 xml 문서 선언이 JSP 콘텐츠 타입 선언보다 먼저 나와야 한다. 만약 xml 문서 선언이 JSP 콘텐츠 타입 선언보다 늦게 나오면 xml 문서로 인식이 안될 수 있다. 위에 XML문서에 실질적인 데이터를 삽입하는 객체는 아래와 같다.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class TestAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setCharacterEncoding("utf-8"); // Ajax 사용시 한글 사용을 위한 응답 인코딩 변경
request.setAttribute("name", "홍길동");
request.setAttribute("age", 20);
request.setAttribute("data", "XML 참 쉽죠잉~~");
return mapping.findForward("test");
}
}
Ajax를 사용하여 XML 데이터를 받는 페이지
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="euc-kr"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title>:::This is Test page:::</title>
<script type="text/javascript">
function loadXMLDoc(url){
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function(){
txt="";
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
xmlDoc=xmlhttp.responseXML;
x=xmlDoc.getElementsByTagName("name");
txt = txt+x[0].firstChild.nodeValue;
}
document.getElementById('testArea').innerHTML=txt;
};
}
</script>
</head>
<body>
<button value="테스트" onclick="loadXMLDoc('/service/test/')">테스트</button>
<div id="testArea">테스트 영역</div>
</body>
</html>
'자바(Java) > JAVA 2EE' 카테고리의 다른 글
카테고리 구현방법 (백트레킹 알고리즘 사용) (0) | 2010.05.12 |
---|---|
Lock wait timeout exceeded : try restarting transaction 오류 (0) | 2010.04.29 |
서블릿의 시스템 경로 및 요청 경로 구하기 (0) | 2010.04.27 |
commons 패키지를 사용한 파일 업로드 클래스 (0) | 2010.04.20 |
JSP 한글 데이터 전송방법 (0) | 2010.03.24 |