U E D R , A S I H C RSS

Project Prometheus/Cook Book


1. Python —„œ˜ •œ๊ธ€ ‚ฌšฉ

2. java regular expression

~cpp 
String find = "(http|https)+://([^ \t\n<>()"]+)" 	// Œจ„„ •
Pattern pattern = Pattern.compile( find );		// Œจ„ปดŒŒผ
Matcher matcher = pattern.matcher( html );		// Œจ„ฐพ๊ธฐ
matcher.group(1);					// ‚ฌšฉ (๊ตฒด•˜๊ฐ๋‚˜ —ฌ๋Ÿฌ๊ฐ€ง€ • ˆ˜ žˆŒ)

regular expression Œจ„„  •˜•˜๊ธฐ œ„•ด„œ Komodo ๋ฅผ ดšฉ•  ˆ˜๋„ žˆ๋‹ค. ๋˜๋Š” Seminar:TddRegularExpression„ ‹œ๋„•ด๋ณด๋Š” ๊ฒƒ๋„ ข‹๋‹ค. 1002 ๋Š” Python Interpreter ๋ฅผ ดšฉ, ‘œ˜„‹„ ฐพ•„๋ƒˆ๋‹ค.

3. servlet —„œ •œ๊ธ€ ถœ๋ ฅ

~cpp setContentType —„œ charset — euc-kr ๋ฅผ ถ”๊ฐ€•ดค€๋‹ค.
~cpp 
public class HelloWorldApp extends HttpServlet {
    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        httpServletResponse.setContentType("text/html; charset=euc-kr");

        PrintWriter out = httpServletResponse.getWriter();

        out.println("<HTML> " +
                "•œ๊ธ€ …ŒŠคŠธ..." +
                "</HTML>");

    }
}

4. “ฐ๊ธฐ ข‹€ ƒ€ด๋จธ


๋ฌผ๋ฆฌ ธ ๋ชจ๋ž˜‹œ๊ณ„๊ฐ€ —†„ ๊ฒฝšฐ ‚ฌšฉ• ๋งŒ•œ ๋ชจ๋ž˜‹œ๊ณ„ †Œ”„Šธ›–ด
  • ๋ฉ€‹ฐ ƒ€ด๋จธ http://www.programming.de/cpp/timer.zip
    ๋™‹œ— 10๊ฐœ˜ ƒ€ด๋จธ „ • ๊ฐ€๋Šฅ. นดšดŠธ ๋‹คšด, นดšดŠธ —… ๊ฐ€๋Šฅ. ๋ฉˆ„๋‹ค๊ฐ€ ”„๋กœ๊ทธ๋žจ„ ๋‹ค‹œ ‹œž‘•  ๋•Œ ง€๋‚œ ‹œ๊ฐ„—„œ resume ๊ฐ€๋Šฅ. ๋‹จ, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„ˆ˜ ๋ฒ„๊ทธ๊ฐ€ žˆ๋‹ค.
  • ๋งˆดฌ๋กœ —๊ทธ ƒ€ด๋จธ http://users.informatik.fh-hamburg.de/~rohde_i/eggtimer/mr-egg-z.zip
    ๋‹จˆœ•˜ง€๋งŒ ๋งคšฐ Žธ๋ฆฌ•œ ƒ€ด๋จธ. ƒœŠคฌ ๋ฐ”—„œ ๋‚จ€ ‹œ๊ฐ„„ ™•ธ ๊ฐ€๋Šฅ

6. HTTP Protocol

7. HTTP GET, POST ๋„˜๊ธฐ๊ธฐ

Python —„œ๋Š” urllib ™€ httplib ๋ฅผ ดšฉ•œ๋‹ค. Python document ˜ httplib - examples ๋ฅผ ฐธกฐ•˜๋ฉด GET ˜ ˜ˆ™€ POST ˜ ˜ˆ๊ฐ€ ๋‚˜˜จ๋‹ค.

Java —„œ๋Š” HttpURLConnection „ ดšฉ•œ๋‹ค. ๊ด€๋ จ ฝ”๋“œ๋Š” http://www.javafaq.nu/tips/servlets/index.shtml ๋ฅผ ฐธกฐ.
~cpp 
Connection.setRequestProperty("Content-Type", "text/plain");

8. HttpUrlConnection —„œ GET,POST ๋„˜๊ธธ๋•Œ ฃผ˜‚ฌ•ญ

Python —„œ˜ string.urlencode ๊ณผ ๋งˆฐฌ๊ฐ€ง€๋กœ GET,POST ๋กœ ๋„˜๊ธฐ๊ธฐ  „ ŒŒ๋ผ๋ฉ”„— ๋Œ€•ด URL Encoding ด •„š”•˜๋‹ค. URLEncoder ๋ผ๋Š” ด๋ž˜Šค๋ฅผ ดšฉ•˜๋ฉด ๋œ๋‹ค.

~cpp 
import java.net.URLEncoder;
.
.
.
URLEncoder.encode (paramString, "UTF-8");

9. GET, POST ธž˜ ๋‚ดšฉค‘ •œ๊ธ€„ ๋ฐ›„๋•Œ ฃผ˜ ‚ฌ•ญ

~cpp 
protected void service(
	HttpServletRequest request,
	HttpServletResponse response)
	throws ServletException, IOException {
	//super.service(request, response);
	response.setContentType("text/html; charset=euc-kr");
	request.setCharacterEncoding("KSC5601");

	String serviceName = (String) request.getParameter("service");
getParameter ๊ฐ€ ˜ธถœ๋˜๊ธฐ  „— request˜ ธฝ”๋”ฉด „Œ…๋˜–ด•ผ •œ๋‹ค. ˜„žฌ Prometheus˜ Controller˜ ๊ฒฝšฐ service ˜ ๋ช…„ ๋ณด๊ณ  ๊ฐ๊ฐ˜ „œ๋น„Šค—๊ฒŒ ‹ค–‰ ๊ถŒ•œ„„˜๊ธฐ๋Š”๋ฐ, ๊ฐ€žฅ ฒ˜Œ— request˜ characterEncoding „ „Œ…•ด•ผ •œ๋‹ค. ฐจ›„ JSP/Servlet ปจ…Œด๋„ˆ๋“ค˜ —…๊ทธ๋ ˆด๋“œ ๋˜–ด•ผ •  ๋‚ดšฉœผ๋กœ ƒ๊ฐ๋จ ž„•œ ๋‚ดšฉ€ http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=957572615 ฐธ๊ณ 

10. HTTP Cookie ๋„˜๊ธฐ๊ธฐ

Cookie ๋Š” ๋ณด๋‚ด๋Š”ชฝ HTTP Protocol ˜ Header ๋ถ€๋ถ„— 'Cookie: a=1; b=2; c=3' ‹œผ๋กœ “ฐ—ฌ„๋‹ค.
๋ฐ›๋Š”ชฝ—„œ๋Š” "Set-Cookie: a=10" ... ‹œผ๋กœ ๋‚ ๋ผ˜จ๋‹ค.

๋‹คŒ€ Python „ ดšฉ, Cookie, GET/POST ๋ณ€ˆ˜๋“ค„ „šด๋’ค •ด๋‹น ‚ฌดŠธ˜ ๊ฒฐ๊ณผ๋ฌผ„ ธ‡„•˜๋Š” †ŒŠค.
cookieSend.py

11. Resin

12. default root  •˜ & ฌŠธ ˆ˜ •

root ๋””๋ ‰† ๋ฆฌ๋Š” <doc-dir> ƒœ๊ทธ๋ถ€๋ถ„„, port ๋Š” <http port='____'> ๋ถ€๋ถ„„ ˆ˜ ••œ๋‹ค.
๋‘˜ ๋‹ค <http-server> ƒœ๊ทธ •˜œ„— žˆ๋‹ค.

13. default utility

resin —„œ ™ˆ ๋””๋ ‰† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝ•˜๊ฐ๋‚˜ resin ด ‹ค–‰๋ ๋•Œ ๊ธฐ๋ณธ œผ๋กœ ƒ๊ธฐ๋Š” ๋””๋ ‰† ๋ฆฌ๋“ค(example ๋“)ด žˆ๋‹ค.
ด๋Š” <web-app> ๋ผ๋Š” ƒœ๊ทธ๋กœ  •˜๋˜–ดžˆ๋‹ค. ‚ญ œ•˜๊ณ  ‹ถ๋‹ค๋ฉด '/' ™ธ˜ ๋‹ค๋ฅธ web-app— ๋“๋ก๋œ ๊ฒƒ๋“ค„ ‚ญ œ•ดฃผ๋ฉด ๋œ๋‹ค.

14. Resin —„œ DB POOL Setting

resin.conf — ๋‹คŒ„ …‹Œ…•ดค€๋‹ค. (<caucho.com> ƒœ๊ทธ •ˆชฝ— ‚ฝž…)
~cpp 
<resource-ref>
  <res-ref-name>jdbc/'reference ด๋ฆ„'</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <init-param driver-name="org.gjt.mm.mysql.Driver ‹œผ๋กœ ๋“œ๋ผด๋ฒ„ ด๋ฆ„"/>
  <init-param url="jdbc:mysql://„œ๋ฒ„ฃผ†Œ:„œ๋ฒ„IP/reference ด๋ฆ„"/>
  <init-param user="DB ‚ฌšฉž ID"/>
  <init-param password="DB ‚ฌšฉž Password"/>
  <init-param max-connections="20"/>
  <init-param enable-transaction="false"/>
</resource-ref>

15. Resin „ NT,2000 ˜ Service ๋กœ ๋“๋ก

resin „ ‹ค–‰•  ๋•Œ ๋‹คŒ๊ณผ ๊ฐ™ด ‹ค–‰
~cpp 
httpd -install
๊ทธ๋ฆฌ๊ณ ,  œ–ดŒ-๊ด€๋ฆฌ๋„๊ตฌ-„œ๋น„Šค —„œ resin web server „œ๋น„Šค๋ฅผ ‹œž‘ ‹œ‚จ๋‹ค.

16. JNDI๋กœ resin—„œ JDBC ฝ”๋“œ ž‘„ ผ๋ฐ˜ ธ ˆœ„œ

  1. Context - environment –ป๊ณ 
  2. environment ๋ณ€ˆ˜๋ฅผ ๊ทผ๊ฐ๋กœ Data Source –ป๊ณ 
  3. Data Source ๋ฅผ ๊ทผ๊ฐ๋กœ Connection –ป๊ณ  Connection „ ดšฉ.
  4. Connection ๊ฐฒด๋กœ Statement ๊ฐฒด๋ฅผ –ป๊ณ 
  5. Statement ๊ฐฒด๋กœ SQL ˆ˜–‰. ResultSet ๊ฐฒด –ป๊ธฐ.
  6. ResultSet ๊ฐฒด ดšฉ•˜๊ธฐ.


~cpp 
        Context env = ( Context )( new InitialContext().lookup( "java:comp/env" ) );
        DataSource source = ( DataSource )( env.lookup( "jdbc/zeropage" ) );
        conn = source.getConnection();
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("......... some query statement ...................");
        while (rs.next()) {
                rs.getString(1);   // ˆœ„œ— ๋”ฐ๋ผ.. ฒซ๋ฒˆงธ : 1๋ฒˆ... 
        .
        .
        .
        }

ZeroPageServer ›”„๋กœ๊ทธ๋žจ„ ๋งŒ๋“ค–ด„œ ๋ฏธ๋ฆฌ ฝ–ด๋ณผ †ŒŠค๋ฅผ ฃผ‹  „ šฐ˜•—๊ฒŒ ๊ฐ‚ฌ๋“œ๋ฆฌ๋ฉฐ~! ˜• ๋•ƒ—
resin …‹Œ… & JDBC  ‘๊ทผ ๋ฐฉ๋ฒ• •œ๋ฐฉ— ๋˜—ˆ–ด—ฌ..~ -- PP Œ€ ผ๋™

17. ETC

18. ZeroPageServer —„œ UnitTest

ZeroPageServer — ๋ฆด๋ฆฌˆ •œ๋’ค UnitTest •˜๊ธฐ.

build_zpLocal.xml ( .../Prometheus/bin — ๋นŒ๋“œ•˜๋Š” Šคฌ๋ฆฝŠธ ) ๋ฅผ ดšฉ, ‹ค–‰๋˜๋Š” œ„น˜™€ ๊ด€๊ณ„—†๋Š” ๊ณณ— ผ๋‹จ ปดŒŒผ„ •˜๊ณ , …ŒŠคŠธ๋ฅผ ๋Œ๋ฆฌ๊ฒŒ •œ๋‹ค.
~cpp 
.../Prometheus$ ant -buildfile build_zpLocal.xml
.../Prometheus$ java -cp "$CLASSPATH:./bin" junit.textui.TestRunner org.zeropage.prometheus.test.AllAllTests
.........................................
...............................
Time: 189.444

OK (72 tests)
  • Ant —„œ JUnit „ ‹ค–‰‹œ‚ค๋Š” ๋ฐฉ๋ฒ•ด žˆ๋‹ค๊ณ  •œ๋‹ค. ถ”›„ •Œ•„๋ณผ๊ฒƒ.~!

19. •ˆ „•˜๊ฒŒ UI ˆ˜ ••˜๊ธฐ

Ant ๋ฅผ ดšฉ•˜๋ฉด ๋œ๋‹ค. Ant ˜ ๊ฒฝšฐ ปดŒŒผ & ๋ฐฐฌ• ๋•Œ ˆ˜ •๋œ ™”ผ๋งŒ ๋ฎ–ด“ฐ๊ธฐ๋ฅผ •œ๋‹ค. CVS & Ant กฐ•ฉด๋ฉด •ด๊ฒฐด๋ผ ƒ๊ฐ.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:05
Processing time 0.0421 sec