GET 파라메타 쿼리문자열 컨트롤 : getQueryString

by 조쉬 posted Dec 09, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

get 으로 전송된 파라메타 쿼리문자열을 컨트롤하는 클래스 입니다.
쿼리문자열 : request.getQueryString();


Java Source : Strings.java

package xf.common;
 
/*
'// Strings
'// programmed by 최석균
'// http://www.cyworld.com/syaku
'// http://syaku.tistory.com
*/
 
import java.util.regex.*;
import java.text.*;

public class Strings {
 
  // Method get 파라메터 컨트롤러
  public static String getParameter(String parameter,String update) {
    // 파라메터를 담을 HashMap
    HashMap params = new HashMap();
    // 패턴
    String patten = "^(.*)=(.*)$";
    Pattern para_patten = Pattern.compile(patten,Pattern.MULTILINE);
   
    if (parameter != null && parameter != "") {
     
      String para = parameter.replaceAll("^\\?","");
      String para_tokens[] = para.split("&");
      int para_cnt = para_tokens.length;
      for (int i = 0; i < para_cnt; i++ ) {       
        Matcher para_matcher = para_patten.matcher(para_tokens[i]);
        String para_name = para_matcher.replaceAll("$1");
        String para_value = para_matcher.replaceAll("$2");
        params.put(para_name,para_value);
      }
    }
   
    if (update != null && !update.equals("")) {
      String new_para = update.replaceAll("^\\?","");
      String new_para_tokens[] = new_para.split("&");
      int new_para_cnt = new_para_tokens.length;
      for (int x = 0; x < new_para_cnt; x++ ) {       
        Matcher new_para_matcher = para_patten.matcher(new_para_tokens[x]);
        String new_para_name = new_para_matcher.replaceAll("$1");
        String new_para_value = new_para_matcher.replaceAll("$2");
        params.put(new_para_name,new_para_value);
      }
    }
   
    // 완성된 HashMap key 로드
    String params_ext = "";
    Iterator iter = params.keySet().iterator();
    while(iter.hasNext()){
      String addkey = (String)iter.next();
      String addvalue = (String)params.get(addkey);
      // 값이 있는 파라메터만 유효
      if (addvalue != null && !addvalue.equals("")) params_ext += addkey + "=" + params.get(addkey) + "&";     
    }
    params_ext = params_ext.replaceAll("&$","");
    return params_ext;
  }
}


Example Source


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

<%@ page import="xf.common.*" %>

<%
// String parameter = request.getQueryString();
String parameter = "chn=syaku&mode=blog&search=&page=1";

// 현 파라메터 정보
out.println(parameter + "<br />");
// 결과 : chn=syaku&mode=blog&search=&page=1

// chn=secon 변경하기
out.println(Strings.getParameter(parameter,"chn=secon") + "<br />");
// 결과 : chn=secon&mode=blog&page=1 : &search= 값이 없기 때문에 자동 제거 됨.

// page 파라메터 삭제하기
out.println(Strings.getParameter(parameter,"page=") + "<br />");
// 결과 : chn=secon&mode=blog

// page=2 를 추가하고, mode=home 변경하며, chn 파라메터는 삭제하기.
out.println(Strings.getParameter(parameter,"chn=&mode=home&page=2") + "<br />");
// 결과 : mode=home&page=2
%>