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