jsp 유사ajax
url.openStream()을 사용해 유사ajax 를 만드는 소스.
http://나의 도메인 이름/njax.jsp?url_string=http://google.com 식으로 접근.
ajax 는 ‘비동기 자바스크립트 and XML’의 약자인데 아래 소스는 ‘동기 자바스크립트 and XML’이라 할 수 있다.
out.print 로 화면에 그대로 뿌리면 그 자체로 xml이 된다.
njax.jsp
<%@ page language=”java” contentType=”text/xml;charset=utf-8″ %>
<%@ page import=”java.io.*” %>
<%@ page import=”java.net.*” %>
<%
request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/xml”);
BufferedReader reader;
URL url;
String pre_openAPI = (String) request.getParameter(“url_string”);
if(pre_openAPI == null || pre_openAPI.trim().equals(“”)){
pre_openAPI = “”;
}
String openAPI = new String (pre_openAPI.getBytes(“utf-8”), “utf-8”);
try{
url = new URL( openAPI );
reader = new BufferedReader(new InputStreamReader(url.openStream()));
//reader = new BufferedReader(new InputStreamReader(url.openStream(), “EUC-KR”));
String iline = “”;
while ((iline = reader.readLine()) != null){
out.print(iline);
}
reader.close();
}catch(Exception ex){System.out.println(ex.getMessage());}
%>
인코딩은 reader = new BufferedReader(new InputStreamReader(url.openStream(), “EUC-KR”)); 로 하거나, 적절히 값을 바꿔주면 된다. 만약 상대방이 넘겨주는게 xml 이 아니라고 하면,
그냥 jsp 안에 이 소스를 넣고 iline을 읽어들이는대로 +해서 한 개의 스트링으로 붙여놓고 원하는 값을 파싱한 후 뿌려주면 된다.