<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=PyServlet</id>
	<title>PyServlet - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=PyServlet"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;action=history"/>
	<updated>2026-05-14T15:53:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=87579&amp;oldid=prev</id>
		<title>Maintenance script: Repair MoniWiki formatting after migration</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=87579&amp;oldid=prev"/>
		<updated>2026-03-29T00:34:28Z</updated>

		<summary type="html">&lt;p&gt;Repair MoniWiki formatting after migration&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:34, 29 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot;&gt;Line 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== PyServlet 의 장점 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;PyServlet&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;의 장점 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;#91;1002&amp;amp;#93; 가 PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;#91;1002&amp;amp;#93; 가 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;PyServlet&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Jython]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Jython]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=84852&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0003 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=84852&amp;oldid=prev"/>
		<updated>2026-03-27T00:29:06Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0003 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:29, 27 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l50&quot;&gt;Line 50:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 50:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Jython]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Jython]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=37973&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:24, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=PyServlet&amp;diff=37973&amp;oldid=prev"/>
		<updated>2021-02-07T05:24:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Jython 을 이용한 Servlet 코드 작성하기.&lt;br /&gt;
&lt;br /&gt;
http://jywiki.sourceforge.net/ - 다양한 예제들. Image, JDBC 연동 등.&lt;br /&gt;
&lt;br /&gt;
=== Resin 에서의 Setting ===&lt;br /&gt;
&amp;lt;web-app&amp;gt; 항목에 다음을 추가&lt;br /&gt;
 &amp;amp;lt;servlet&amp;amp;gt;&lt;br /&gt;
 	&amp;amp;lt;servlet-name&amp;amp;gt;PyServlet&amp;amp;lt;/servlet-name&amp;amp;gt;&lt;br /&gt;
 	&amp;amp;lt;servlet-class&amp;amp;gt;org.python.util.PyServlet&amp;amp;lt;/servlet-class&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/servlet&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;servlet-mapping&amp;amp;gt;&lt;br /&gt;
 	&amp;amp;lt;servlet-name&amp;amp;gt;PyServlet&amp;amp;lt;/servlet-name&amp;amp;gt;&lt;br /&gt;
 	&amp;amp;lt;url-pattern&amp;amp;gt;*.py&amp;amp;lt;/url-pattern&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/servlet-mapping&amp;amp;gt;&lt;br /&gt;
요즈음(resin 3.08 기준)에는 이렇게 쓴다.&lt;br /&gt;
 &amp;amp;lt;web-app ..&amp;amp;gt;&lt;br /&gt;
   .&lt;br /&gt;
   &amp;amp;lt;servlet servlet-name=&amp;quot;PyServlet&amp;quot; &lt;br /&gt;
            servlet-class=&amp;quot;org.python.util.PyServlet&amp;quot;/&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;servlet-mapping url-pattern=&amp;quot;*.py&amp;quot; servlet-name=&amp;quot;PyServlet&amp;quot;/&amp;amp;gt;&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
 &amp;amp;lt;/web-app&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
resin/lib 디렉토리에 jython.jar 화일을 복사해준다.&lt;br /&gt;
&lt;br /&gt;
예제 코드.&lt;br /&gt;
 from javax.servlet.http import HttpServlet&lt;br /&gt;
 &lt;br /&gt;
 class test(HttpServlet):&lt;br /&gt;
 	def doGet(self, req, res):&lt;br /&gt;
 		res.setContentType(&amp;quot;text/html&amp;quot;)&lt;br /&gt;
 		out = res.getOutputStream()&lt;br /&gt;
 		out.println(&amp;quot;Testing...&amp;quot;)&lt;br /&gt;
 		print &amp;amp;gt;&amp;amp;gt;out, &amp;quot;&amp;quot;&lt;br /&gt;
 		print &amp;amp;gt;&amp;amp;gt;out, &amp;quot;&amp;quot;&lt;br /&gt;
 		print &amp;amp;gt;&amp;amp;gt;out, &amp;quot;Hello World...&amp;quot;&lt;br /&gt;
 		print &amp;amp;gt;&amp;amp;gt;out, &amp;quot;&amp;quot;&lt;br /&gt;
 		print &amp;amp;gt;&amp;amp;gt;out, &amp;quot;&amp;quot;&lt;br /&gt;
 		out.close()&lt;br /&gt;
 		return&lt;br /&gt;
작동이 되면 성공.~&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.&lt;br /&gt;
&lt;br /&gt;
=== PyServlet 의 장점 ===&lt;br /&gt;
&amp;amp;#91;1002&amp;amp;#93; 가 PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Jython]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>