package ¼±¾ðµÈ java ÄÄÆÄÀÏÇϱâ

kenu
2001-10-30 10:03¿ÀÈÄ

package ´Â ²Ù·¯¹Ì¶ó´Â ¶æÀÌÁÒ. ¼ÒÆ÷¶ó´Â ¶æµµ ÀÖ±¸¿ä. java ¿¡¼­ package ¶ó ÇÔÀº ¿¬°üÀÖ´Â class µéÀ» ¸ð¾Æ³õÀº ²Ù·¯¹Ì¶ó´Â ¶æÀ» °®°í ÀÖ½À´Ï´Ù. jdk ¸¦ ±ò¸é bin µð·ºÅ丮¿¡ javac À̶ó´Â java ÄÄÆÄÀÏ·¯°¡ ÀÖ½À´Ï´Ù. À̰ÍÀ» ÀÌ¿ëÇØ¼­ .java ¶ó´Â È®ÀåÀÚ¸¦ °¡Áø ÆÄÀÏÀ» ÄÄÆÄÀÏÇÒ ¼ö ÀÖ½À´Ï´Ù. jvm »ó¿¡¼­ µ¹¾Æ°¡´Â .class ÆÄÀÏ(bytecode ¶ó°í ÇÕ´Ï´Ù. jvm ÀÌ ¾Ë¾Æµè´Â ¸í·É¾îÀÇ ÁýÇÕü¶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.)À» ¸¸µé¾î ³»´Â °ÍÀÌÁÒ.

Á¦°¡ »ç¿ëÇÏ´Â method ¸¦ ¸ð¾Æ³õÀº Kr.java ¿Í Fn.java ÆÄÀÏÀ» ÄÄÆÄÀÏÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌ µÎ °³ÀÇ ÆÄÀÏÀº ok ¶ó´Â ÆÐŰÁö¿¡ ¼ÓÇÏ°Ô ¸¸µé¾ú½À´Ï´Ù. ROOT/WEB-INF/classes/ok/ ¿¡ Kr.java ÆÄÀÏÀ» ³õ¾ÆµÓ´Ï´Ù.
Kr.java
package ok;

public class Kr{
	public static String a2k(String str) {
		String rtn = null;
		try {
			rtn = (str==null)?"":new String(str.getBytes("8859_1"),"euc-kr");
		} catch (java.io.UnsupportedEncodingException e) {}
		return rtn;
	}
	public static String k2a(String str) {
		String rtn = null;
		try {
			rtn = (str==null)?"":new String(str.getBytes("euc-kr"),"8859_1");
		} catch (java.io.UnsupportedEncodingException e) {}
		return rtn;
	}
	public static String nchk(String str) {
		return (str==null)?"":str;
	}
}


3°³ÀÇ ¸Þ¼Òµå¸¦ ª°Ô ¼³¸íÇÏÀÚ¸é a2k() ´Â "8859_1" ¹®ÀÚ¼¼Æ®¸¦ "euc-kr" ·Î ÀüȯÇÏ´Â °ÍÀÔ´Ï´Ù. ÆÄ¶ó¸ÞÅÍ·Î ¹ÞÀº ÇѱÛÀÇ °æ¿ì jasper.jar(jsp¸¦ servletÀ¸·Î º¯È¯½Ã »ç¿ë) °¡ 8859_1 ÀÇ ¹®ÀÚ¼¼Æ®·Î 󸮸¦ Çϱ⠶§¹®¿¡ Çѱ۹®ÀÚ°¡ ±úÁý´Ï´Ù. À̰ÍÀ» ÇѱÛÄÚµå·Î ÀüÈ¯ÇØÁÖ´Â °ÍÀÌÁÒ. k2a() ´Â ¹Ý´ëÀÇ °æ¿ìÀÔ´Ï´Ù. ÆÄÀÏÀ» ´Ù¿î¹Þ°Ô ÇÒ °æ¿ì Çѱ۷Πº¸³»¸é ±úÁö±â ¶§¹®¿¡ "8859_1" ¹®ÀÚ¼¼Æ®·Î º¯È¯ÇÏ°í º¸³»ÁÖ´Â °æ¿ìÀÔ´Ï´Ù. nchk() ´Â ¹®ÀÚ¿­ÀÌ null ÀÏ °æ¿ì "" ¸¦ ¹ÝÈ¯ÇØ¼­ substring() À̳ª indexOf() ¸Þ¼Òµå µîÀ» »ç¿ë½Ã NullPointerException ÀÌ ÀϾ´Â °ÍÀ» ¹æÁöÇÏ´Â ±â´ÉÀÔ´Ï´Ù. À̰ÍÀ» ÄÄÆÄÀÏ ÇØ º¸µµ·Ï ÇÏÁÒ.

¿©·¯ºÐµéÀÌ ÁÁ¾ÆÇϽô ȭ¸éĸÃÄ¿´½À´Ï´Ù. ^^; ±×·¡¼­ ¿©±â¸¦ ãÀ¸½Ã´Â ÁÙ·Î ¾Ë°í Àְŵç¿ä. text ·Î¸¸ ÀÜ¶à º¸´Â °Íº¸´Ù ±×¸²µµ ÀÖ°í, ¼Ò¸®µµ ³ª°í, ¿ìÀ×? ¼Ò¸®¶ó... µü! ¾Æ¾æ! ^^; °è¼Ó Áøµµ ³ª°¡°Ú½À´Ï´Ù. MS-DOS ½ÃÀýºÎÅÍ ¸í·É¾î¿¡ Àͼ÷ÇϽŠºÐµéÀº * (wild card ¹®ÀÚ)¿¡ Àͼ÷ÇÒ °Ì´Ï´Ù. À§¿Í °°Àº ¹æ¹ýÀ¸·Î µð·ºÅ丮¸¦ º¯°æÇØ µé¾î°©´Ï´Ù. ¿©±â¼­ Àá±ñ À©µµ¿ì Tip Çϳª ¼Ò°³ÇÏ°í µé¾î°¡°Ú½À´Ï´Ù. Àú·¸°Ô ¿­½ÉÈ÷ µé¾î°¡·Á¸é ½Ã°£ÀÌ ¾öû°É¸³´Ï´Ù. ¶Ç Program Files °°ÀÌ Áß°£¿¡ ¶ç¾îÁö°í ±ä ¹®Àå±îÁö µé¾î°¡·Á¸é ¿¡·¯µµ ÇÈÇȳª°í ±×·´´Ï´Ù. ±×·³ Áö±ÝºÎÅÍ Á¦°¡ ¸¶¼úÀ» º¸¿©µå¸®°Ú½À´Ï´Ù. À©µµ¿ì Ž»ö±â¸¦ ¿·¿¡ ¿­¾î³õ½À´Ï´Ù. ÀÚ¾Æ~ c:\Program Files\Apache Group\Apache\conf\ µð·ºÅ丮¸¦ ½±°Ô µé¾î°¡´Â ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù. õ±â´©¼³ÀÔ´Ï´Ù. Àú ¸ñ¼û°É°í ¾Ë·Áµå¸®´Â °ÍÀÔ´Ï´Ù. ¿¬º¯¿¡¼­µµ À̰Š¾Æ´Â »ç¶÷ ¸î ¾ÈµË´Ï´Ù. Ž»ö±â ¿©¼Ì½À´Ï±î? c:\Program Files\Apache Group\Apache\conf\ ¸¦ Ŭ¸¯Çؼ­ ¿©´Â °ÍÀº ½±½À´Ï´Ù. ±×¸®°í cmd â(µµ½º ÇÁ·ÒÇÁƮâÀ̶ó°íµµ ÇÏÁÒ.)¿¡ cd ÇÏ°í ½ºÆäÀ̽º ÇѹøÀ» ²Ú ´­·¯ÁÝ´Ï´Ù. ±×¸®°í conf µð·ºÅ丮¸¦ ¸¶¿ì½º·Î Àâ¾Æ¼­ cmd âÀ¸·Î ²ø¸é... ^^ ¤»¤»

Enter¸¸ Ä¡¸é µË´Ï´Ù... ´Ù½Ã °Å±â·Î µ¹¾Æ°¡°Ú½À´Ï´Ù. ¸¶Âù°¡Áö·Î cd Ä¡°í Ž»ö±â¿¡¼­ ¿­¾î¼­ ok µð·ºÅ丮¸¦ ²ø¾î´Ù ³õ¾Æµµ µË´Ï´Ù.

javac -d ../ -classpath ../ Kr.java ¶ó°í ÇÑ ÀÌÀ¯¸¦ ¼³¸íÇϰڽÀ´Ï´Ù. ¸¸ÀÏ ±×³É javac Kr.java ¶ó°í ÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? Kr.class °¡ »ý±é´Ï´Ù. ^^; ÄÄÆÄÀÏ µÉ °ÍÀÔ´Ï´Ù. ±×·³ ¶Ç Çϳª ÄûÁî? javac -d . Kr.java ¶ó°í Çϸé¿ä? ±×·¯¸é ok/ µð·ºÅ丮 ¾È¿¡ ok/ µð·ºÅ丮 Çϳª°¡ ´õ »ý±â°í ±× ¾È¿¡ Kr.java °¡ »ý±é´Ï´Ù. ¸¸ÀÏ package ok.jsp; ¶ó°í ¼±¾ðÇß´Ù¸é ÇöÀç µð·ºÅ丮 ¾Æ·¡¿¡ ok/ µð·ºÅ丮°¡ »ý±â°í ±× ¾Æ·¡¿¡ jsp/ µð·ºÅ丮°¡ »ý±â°í class ÆÄÀÏÀº ±× ¾È¿¡ »ý¼ºµË´Ï´Ù. ±×·¸´Ù¸é javac -d ../ Kr.java Çϸé ÁüÀÛÇÒ ¼ö ÀÖÀ¸½Ç±î¿ä? ¸¸ÀÏ package ok.jsp; ¶ó°í µÇ¾îÀÖÀ¸¸é javac -d ../../ Kr.java °¡ µÉ °ÍÀÔ´Ï´Ù.

package °¡ ¼±¾ðµÇÁö ¾ÊÀº class ÆÄÀÏÀÌ ROOT/WEB-INF/classes/ ¿¡ ÀÖ´Ù°í Ĩ½Ã´Ù. ´ëÇ¥ÀûÀÎ ¿¹°¡ DBConnectionManager.java °°Àº °æ¿ìÁÒ. ¸¸ÀÏ Kr.java ¿¡ import DBConnectionManager; ¶ó°í ¼±¾ðµÇ¾î ÀÖ´Ù¸é ÇÊ¿äÇÑ °ÍÀÌ -classpath ../ ¿É¼ÇÀÔ´Ï´Ù. ÀÌ·± °æ¿ì javac -d ../ -classpath ../ Kr.java ÇØÁÖ¸é »óÀ§µð·ºÅ丮¿¡ ÀÖ´Â class ¸¦ import ÇØ¿À¸é¼­ ÄÄÆÄÀÏÀÌ ÀÌ·ïÁý´Ï´Ù. javac -d ../ -classpath ../;%classpath% Kr.java ´Â ±×·³ ¹«½¼ ¶æÀϱî¿ä? (linux °æ¿ì javac -d ../ -classpath ../:$CLASSPATH Kr.java ÀÔ´Ï´Ù.) ȯ°æº¯¼ö¿¡ ÀâÈù classpath ¸¦ °¡Á® ¿Â´Ù´Â ¶æÀÔ´Ï´Ù. ÀÌ È¯°æº¯¼ö¿¡ ÀÖ´Â °ªÀº set ¸í·ÉÀ» Ä¡¸é È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌÇØ°¡ °¡¼ÌÀ» °Ì´Ï´Ù. Fn.java ÆÄÀÏÀÔ´Ï´Ù. Á» ±æÁÒ. ±×·±µ¥ ÀÌ ÆÄÀÏÀº ÄÄÆÄÀÏÇÏ¸é ¿¡·¯°¡ ³¯°ÍÀÔ´Ï´Ù. javac -d ../ -classpath ../ Fn.java
Fn.java
package ok;

import javax.servlet.http.*;

public class Fn {
public static String rplc(String str, String n1, String n2) {
	int itmp = 0;
	if (str==null) return "";
	
	String tmp = str;
	StringBuffer sb = new StringBuffer();
	sb.append("");
	while (tmp.indexOf(n1)>-1) {
		itmp = tmp.indexOf(n1);
		sb.append(tmp.substring(0,itmp));
		sb.append(n2);
		tmp = tmp.substring(itmp+n1.length());
	}
	sb.append(tmp);
	return sb.toString();
}

public static String crop(String str, int i) {
	if (str==null) return "";
	String tmp = str;
	if(tmp.length()>i) tmp=tmp.substring(0,i)+"...";
	return tmp;
}

public static String wwwlink(String str) {
	if (str==null) return "";
	
	String tmp = str;
	int itmp = 0;
	int wend = 0;

	StringBuffer sb = new StringBuffer();
	sb.append("");
	
	while(tmp.indexOf("http://")>-1) {
		itmp = tmp.indexOf("http://");
		wend = tmp.indexOf(" ",itmp);
		if (wend>tmp.indexOf("\r",itmp)) wend = tmp.indexOf("\r",itmp);
		if (wend>tmp.indexOf("<",itmp)) wend = tmp.indexOf("<",itmp);
		else if (wend==-1) wend = tmp.length();
		sb.append(tmp.substring(0,itmp));
	
		if(itmp>3 && tmp.substring(itmp-3,itmp).indexOf("=")>-1) {
		wend = tmp.indexOf("</a>",itmp)+3;
		if (wend==2) wend = tmp.indexOf(">",itmp);
		sb.append(tmp.substring(itmp,wend));
		} else {
		sb.append("<a href=\""+
		    tmp.substring(itmp,wend)+"\" target=\"_blank\" class=\"ok-2\">");
		sb.append(tmp.substring(itmp,wend));
		sb.append("</a>");
		}
	
		tmp=tmp.substring(wend);
	}
	sb.append(tmp);
	
	tmp = sb.toString();
	sb.setLength(0);

	while(tmp.indexOf("www.")>-1) {
		itmp = tmp.indexOf("www.");
		wend = tmp.indexOf(" ",itmp);
		if (wend>tmp.indexOf("\r",itmp)) wend = tmp.indexOf("\r",itmp);
		if (wend>tmp.indexOf("<",itmp)) wend = tmp.indexOf("<",itmp);
		if (wend==-1) wend = tmp.length();
		sb.append(tmp.substring(0,itmp));
		if(itmp>10 && tmp.substring(itmp-10,itmp).indexOf("=")>-1) {
		wend = tmp.indexOf("</a>",itmp)+3;
		if (wend==2) wend = tmp.indexOf(">",itmp);
		sb.append(tmp.substring(itmp,wend));
		} else {
		sb.append("<a href=\"http://"+
		    tmp.substring(itmp,wend)+"\" target=\"_top\" class=\"ok-2\">");
		sb.append(tmp.substring(itmp,wend));
		sb.append("</a>");

		}
	
		tmp=tmp.substring(wend);
	}
	sb.append(tmp);

	return sb.toString();

}

public static void setCookie(HttpServletResponse response, 
                                 String name, String value, int iMinute) {
	value = java.net.URLEncoder.encode(value);
	Cookie cookie = new Cookie(name, value);
	cookie.setMaxAge(60 * iMinute);
	response.addCookie(cookie);
}

public static void setCookie(HttpServletResponse response,
                                 String name, String value) {
	value = java.net.URLEncoder.encode(value);
	Cookie cookie = new Cookie(name, value);
	cookie.setMaxAge(60*60*24*15);
	response.addCookie(cookie);
}

public static String getCookie(HttpServletRequest request,
                                   String cookieName) throws Exception {
	Cookie [] cookies = request.getCookies();
	if (cookies==null) return "";
	String value = "";
	for(int i=0;i<cookies.length;i++) {
		if(cookieName.equals(cookies[i].getName())) {
			value = java.net.URLDecoder.decode(cookies[i].getValue());
			break;
		}
	}
	return value;
}


}



Fn.java:3¹øÂ° ÁÙ¿¡ ÀÖ´Â package javax.servlet.http °¡ ¾ø´Ù´Â ¾ê±âÁÒ. import javax.servlet.http.*; ¹®Àå¿¡¼­ ¹ß»ýÇÑ ¹®Á¦Àε¥, servlet ¿¡ °ü·ÃµÈ API(Tomcat:servelt.jar ȤÀº Resin:jsdk22.jar,jsdk23.jar) ¸¦ ãÁö ¸øÇؼ­ ±×·¸½À´Ï´Ù. classpath ¿¡ ¾ø´Ù´Â ¶æÀä. javac À¸·Î ÄÄÆÄÀÏÀ» ÇÒ ¶§ jvm À» ¶ç¿ó´Ï´Ù. ÀÌ jvm ÀÌ °¡µ¿ÇÒ ¶§ ÀÚµ¿À¸·Î *.jar ÆÄÀϵéÀ» ÀνÄÇÏ´Â °÷ÀÌ ÀÖ½À´Ï´Ù. À̰÷¿¡¸¸ ÀÖÀ¸¸é ¸ðµç *.jar ÆÄÀÏÀÌ classpath ¿¡ ³»ºÎÀûÀ¸·Î µé¾î°¡¼­ ÀνÄÀÌ µË´Ï´Ù. ¾îµð³Ä¸é jdk1.3/jre/lib/ext/ µð·ºÅ丮 ÀÔ´Ï´Ù. jre ´Â java runtime environment ¶ó°í ÇÕ´Ï´Ù.(zip Àº ¾ÈµË´Ï´Ù. oracle ÀÇ classes12.zip Àº ¾ÐÃàÇ®°Å³ª -classpath c:/jdbc/classes12.zip ¿É¼Ç¿¡ °æ·Î¸¦ ¹Ù·Î ³Ö¾îÁÖ¼¼¿ä.) ¿©±â¿¡ Tomcat ÀÇ lib µð·ºÅ丮³ª common µð·ºÅ丮 ¾Æ·¡ÀÖ´Â servlet.jar ÆÄÀÏ(resin Àº lib ¾Æ·¡ jdsk22.jar) ÆÄÀÏÀ» jdk1.3/jre/lib/ext/ µð·ºÅ丮¿¡ º¹»çÇØÁÝ´Ï´Ù. ±×¸®°í ´Ù½Ã javac -d ../ -classpath ../ Fn.java ÇØº¸¼¼¿ä.

ÀÌÁ¦ compile ÇÏ´Â ¿ä·ÉÀÌ »ý°åÀ» °Ì´Ï´Ù. ÁÁÀº ÇÏ·ç µÇ½Ã°í¿ä. ´äº¯µµ Áß¿äÇѵ¥¿ä. ÀÌ·¸°Ô ¹®¼­¸¦ ¸¸µå´Â °ÍÀÌ Èûµé±ä ÇÏÁö¸¸ ´õ ±ÍÇÑ °Í °°ÀÌ »ý°¢µË´Ï´Ù. ¿­½ÉÈ÷ °øºÎÇϼ¼¿ä. ÇÑ °¡Áö Áö±Ý »ý°¢³ª´Â ¸»¾¸Àº¿ä. "Àß ÇÏ´Â °Í"°ú "¿­½ÉÈ÷ ÇÏ´Â °Í"Àº ´Ù¸¥ °ÍÀ̶ó°í ÇÕ´Ï´Ù. »çȸ »ýȰÀϼö·Ï ´õ ±×·¸½À´Ï´Ù. ±×·¸´Ù°í Æ÷±âÇÏÁö ¸¶¼¼¿ä. "¿­½ÉÈ÷" + "½Ã°£/°æ·Â" = "Àß" À̴ϱî¿ä. ^^; kenu »ý°¢ÀÔ´Ï´Ù.

°ü·Ã »çÀÌÆ®
xml-typed document
http://okjsp.pe.kr