jsp 유사ajax

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을 읽어들이는대로 +해서 한 개의 스트링으로 붙여놓고 원하는 값을 파싱한 후 뿌려주면 된다.