GET 파라메타 쿼리문자열 컨트롤 : getQueryString
728x90
반응형
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 %>
written by Seok Kyun. Choi. 최석균.
http://www.cyworld.com/syaku
http://syaku.tistory.com
728x90
반응형
'개발노트 > JAVA' 카테고리의 다른 글
Apache Ant build 활용, 자바 컴파일 매크로 : JAVA Build (0) | 2009.05.13 |
---|---|
JAVA Model getter , setter 소스코드생성하는 툴 (0) | 2009.04.14 |
원하는 패턴의 날짜 구하기 : JAVA (2) | 2009.03.18 |
iBATIS 동적으로 맵핑하기 (0) | 2009.03.18 |