거의 이제는 일주일만에 글 하나씩 올리는듯 하다. -_-; 주로 공부하는 시간이 토, 일요일이라서 그렇다. (평일에는 회사일때문에 공부가 잘 안된다. -_-;)
어제부터 오늘까지 한 것은 파라미터들을 asp 처럼 사용할 수 있게 클래스를 만든일이다. 음..이렇게 말하면 뭔말하는지 잘 모르는 사람들 있다. 예를 들어보겠다.
asp 의 경우 test.asp?a=1&a=2&a=3 이렇게 a란 값으로 파라미터가 3개가 온다면 파라미터가 a란 배열에 저장되어지면서 온다. 따라서 request("a")(0) = 1, request("a")(1) = 2... 이런식이 되어버린다. 혹시 이런식의 asp처리를 본 사람이 없다면 http://www.mungchung.com/mianamssi/articles/S017-create_rows.htm 글을 참고하면 된다.
(근데 아마도 이런식의 asp 처리를 아는 사람이 상당히 적을듯 하다. -_- 내가 본 asp 책에는 본적이 없었다. 뭐..beginning asp 3.0에도 없었 니... -_-; 나도 열라 잘하시는 분이 코딩한것 보게 알게 된것이다. )
jsp 의 경우는 확인 해본결과 asp 처럼 되질 않는다. (물론 나름대로 test라고 해보긴 했으나 검증되지 않은것이다. 뭔가 asp처럼 처리하는 방법이 있을지도 모른다 -_-; ) 그래서 asp 처럼 이용하려고 클래스를 만들어 보았다. 역시나 만들고 나니 소스가 아주 간단한데 만들 당시에 머리아파 죽는줄 알았다. 가뜩이나 안돌아가는 머리 이리저리 굴리니 -_-; 아무래도 객체지항 프로그래밍을 제대로 해본적이 없어서 그런지 상당한 얘를 먹었다. 토요일날 한 6시간 해서 실패하고 '에잇씨 안해!' 하고 책 덮고, 일요일 아침에 일어나서 할일이 없다 다시 들여다 보다가 한 3시간만에 성공한것 같다. -_-; (만들고 나니 허접이더군 -_-; )
아무튼 언제나 마찬가지로 소스 설명은 없다. -_-; 나도 책 참조해 가면서 스스로 한것이다. -_-; 물어보지 말고 책 찾아보고 웹에서 뒤져서 혼자 알아보도록 해라. -_-; 사실 누구 잘하는사람 있어서 물어보면 그 내용에 대해선 바로 알수 있겠지만 그 외의 다른 식으로 했을때의 문제점 들은 전혀 알지 못하게 된다.
참 그리고 이 클래스는 예외 처리 절대 없다. -_-; 버그가 있을지도 모른다. -_-; 왜 코딩이 최적화 되어있지 않냐고 뭐라고 하지 말아라. -_-; 내 실력의 한계고 내가 아는 지식의 한계다. 아직은 공부중이니 이정도만하는데 나중에 java에 익숙해 지면 나름대로 폼잡아서 클래스 파일 만들것이다. (그때가 과연 올지 모르겠군 -_-; )
아고.. 더이상 글쓰기도 귀찮네 -_-;; 아래 소스를 긁어다가 컴파일 한 후 다음과 같이 웹에서 실행해 보아라.
http://localhost:8080/servlet/ParameterTest?a=1
http://localhost:8080/servlet/ParameterTest?a=1&a=2&a=3
getExParam.java
package common;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class getExParam {
private int i;
private String szTmp = "";
private String szReqName[];
protected HttpServletRequest req = null;
public void setExParam(HttpServletRequest pReq) {
req = pReq;
}
public String getParam(String req_name) {
szReqName = req.getParameterValues(req_name);
if (szReqName == null) {
szTmp = "";
}
else {
int i = 0;
while(i < szReqName.length) {
if (i == 0)
szTmp = szReqName[i];
else
szTmp = szTmp + "," + szReqName[i];
i++;
}
}
return szTmp;
}
}
ParameterTest.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import common.*;
public class ParameterTest extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
String szMsg[] = {
"<h2><center>",
"파라미터 테스트</center></h2>n<hr>",
"파라미터 붙이고 엔터!"
};
printHTML pHTML = new printHTML();
PrintWriter out = res.getWriter();
pHTML.outHeader("Get 파라미터 테스트",res,out);
pHTML.outBody(szMsg);
out.println("입력된 파라미터들은 다음과 같다<br><br>n");
getExParam getEP = new getExParam(); // getExParam 인스턴스 생성
getEP.setExParam(req); // 값을 셋팅
String req_a = getEP.getParam("a"); // 파라미터 a 에 대한 값을 얻어온다.
out.println("파라미터 a 의 값은 : " + req_a);
pHTML.outBottom();
}
}