본문 바로가기

Server Oriented/Java & JSP

HashMap 과 Enumeration 를 이용한 (한글)파라미터 수집

<%--

  * 프로그램 명칭 : 

  * 프로그램 설명 : 

  * 작업일/작업자 : 

--%><%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"

%><%  request.setCharacterEncoding( "EUC-KR" ); /* 파라미터로 주고 받는 한글 처리 때문, UTF-8 이면.. */

%><%@ page import="java.util.*"

%><%@ page import="java.net.URLDecoder"

%><%


  HashMap   rmap  = new HashMap();  // Input 용도. 파라미터

  HashMap   hm    = new HashMap();  // Output 용도. jsonp 의 최후 목적물을 생성하고, 결과값을 세팅하기 위해 try 밖에 세팅


  try{


    Enumeration pns = request.getParameterNames();

    while(pns.hasMoreElements()) {                                // 파라미터 세팅

      String    pn  = Utils.get((String)pns.nextElement());

      String    pv  = Utils.get(request.getParameter(pn));        // 배열인 경우에는 추가 처리 요망

      if(pn.equals("w_wind_dir")) pv = URLDecoder.decode(pv,"UTF-8"); // 한글 처리시 세팅. 상기와 같이 .jsp 문자셋이 UTF-8 이 아니면 한글 조정

      rmap.put(pn,pv);

    }


    // 뭔가 처리해서 hm 에 적재

    

  }catch(Exception e){

    StringBuffer  sbLog = new StringBuffer(); // FileAccess 를 줄이기 위해서 한번에 Write 하는 방식으로 전환, 다른 내용들과 섞이는 일도 방지..?

    sbLog.append("\n>>> "+Calendar.getInstance().getTime());  // getRequestURL 보다는 getRequestURI 가 나을 듯..

    sbLog.append("\n+++."+request.getRequestURI());             // getRequestURL 보다는 getRequestURI 가 나을 듯..

    sbLog.append("\n+++.Exception:" +e.toString());

    sbLog.append("\n+++.rmap     :" +rmap);

    System.out.println(sbLog);                                          // println 이기 때문에 맨 뒤에는 sbLog.append("\n"); 불필요.

    sbLog.delete(0,sbLog.length());                                   // 명시적 GC

  }finally{

    if(rmap !=null) try{ rmap.clear();  }finally{ rmap  = null; }        // 명시적 GC

    if(hm   !=null) try{ hm.clear();    }finally{ hm    = null; }        // 명시적 GC

  }

  

%>