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 %>