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.0235 sec