Tomcat Application Server Standard Operation...

89
COSA-SOP-04-004 Version 1.0 Tomcat Tomcat Application Server Standard Operation Procedure CHINESE OPEN SYSTEMS ASSOCIATION

Transcript of Tomcat Application Server Standard Operation...

Page 1: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

COSA-SOP-04-004 Version 1.0

Tomcat�� � � � � � �

� � � � �

Tomcat Application Server

Standard Operation Procedure

��������

CHINESE OPEN SYSTEMS ASSOCIATION

� � � � � � � � �

Page 2: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

1

���������

���� �������������� ����������� �

!#"�$�%�&�')(�*,+.-0/21�354!#"�$�%�&�')(�*,+.-0/21�354!#"�$�%�&�')(�*,+.-0/21�354!#"�$�%�&�')(�*,+.-0/21�354 -�6�7-�6�7-�6�7-�6�7

8)9

:�;�<>=�? @)A

COSA-SOP-03-001 B#C�D�E�F ����G H @ � :�;5<>I�J K�L M

COSA-SOP-03-002 Linux @ ��N#O G H @ � :�;5< P,QSR

COSA-SOP-03-003 T�U�V)WYX2Z.[ G H @ � :�;5< \�]�^

COSA-SOP-03-004 _.`�a�b�V�WYX>Z>[ G,H @ � :�;5< ced5f

COSA-SOP-03-005 g�h�i�j.V�WYX>Z>[ G,H @ � :�;5< k�l�m

COSA-SOP-03-006 g#n�o�V)WpX>Z.[ G,H @ � :�;�< \�]�^

COSA-SOP-04-001 OpenWebmail Z.[ G,H @ � :�;�< \�q5r

COSA-SOP-04-002 PHPNUKE s.t�u2v N#O G,H @ � :�;5< w�xzy

COSA-SOP-04-003 Linux {)|#} G,H @ � :�;�< K�L M

COSA-SOP-04-004 Tomcat ~5� V�W N#O G,H @ � :�;�< \�]�^

COSA-SOP-04-005 OpenOffice.orgG,H @ � :�;5< ��^zQ

�5� 6�5� 6�5� 6�5� 6

� ��� �#�z�)� B#C N�O��z� vz�)� ���

���)�#� T���� � � �e�

�p������p������p������p�����

����� � � g �0N  )¡ ¢.£ � �e¤ � g �0N  �¡ ¥)¦�¦ §�¨©�>ª.«�¬z­,®�¯©° I � v

±± ±± ²² ²²

³#´ µ.¶¸· ���������� ¹�º µ.¶¸·¼»5½>¾�¿ g#À ����Á.Â)� Ã�Ä µ.¶¸· �2�z��� B#C N#O����

Page 3: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

ÅÇÆÅÇÆÅÇÆÅÇÆ

Tomcat Application Server G,H @ � :�;�< ..............................................................0 È�É�Ê

TomcatN�O c2Ë .............................................................................................2

1.1 Tomcat Ì �.Í .................................................................................................2 1.2 Î Ä µ>¶ .........................................................................................................2 1.3 ÏSÌ2Ð�Ñ©Ò .....................................................................................................3 1.4 Óz�.Ô0Õ .........................................................................................................3 È.Ö�Ê

× Ø�Ù.Ú ..........................................................................................................4 È Ê Û�Ü ..................................................................................................................5

3.1 Û�Ü Jakarta Tomcat ........................................................................................5 3.1.2 Û)Ü jpackage Ð Tomcat ..................................................................8

3.2 Tomcat Ì�Ý �ßÞáà.âßÞ¼ã ä Ð�å�Ý � ....................................................11 3.2.1 Ý � Tomcat.....................................................................................11 3.2.2

ãzäTomcat.....................................................................................12

3.2.3 æ2ç�Ý � Tomcat.............................................................................13 3.4 Tomcat Û�Ü�è5Ì à.â ................................................................................17 È�é�Ê

[�ê Ð�u2v):�; ............................................................................................19 4.1 Web ~��>:,ë)Ì>ì)í�î,ï ......................................................................19

4.1.1 HTTP ð À � ê Ì>ì)í�î,ï ..........................................................19 4.1.2 ñ Java ò�ì�ó5Ì Web ~5�2:,ë)ô b ...........................................20 4.1.3 Servlet Ì.ì�í�õ�@ D v ................................................................21

4.2 Web ~5�>: ë�Ì�özØ�Ð ��÷ ....................................................................22 4.2.1 Web ~5�>: ë�Ì�ö�Ø .....................................................................22 4.2.2 ø ����÷ ~5�>:zë ..........................................................................23 4.2.3 ù©� war ú ..................................................................................26

4.4 Tomcat Ì)u#v Script Ð ��û ....................................................................26 4.4.1 u#v Tomcat Ì shell script .............................................................26 4.4.2 Tomcat Ì)u#v�Ë�ü .........................................................................28 È>ý�Ê

~5� ��þ ........................................................................................................32 5.1 JSP ÿ ¾ ....................................................................................................32

5.2 MySQL+phpmyadmin ..............................................................................42 5.2.1 Ý � MySQL Ð [�ê��2F ..............................................................42 5.2.2 Û)Ü phpMyAdmin..........................................................................42

5.3 �����,Ñ þ :,ë .......................................................................................47 5.3.1 ����� : ë�� ..............................................................................47 5.3.2 ����� : ëzs.t ..............................................................................48

5.4 ,� JFreeChart ��� O���� � .................................................................68 5.4.1 ����������� � ..............................................................................69

Page 4: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

1

5.4.2 ��� 3D ������� � .......................................................................70 5.4.3 ������� �� ..................................................................................72 5.4.4 ��� O���� ......................................................................................73 È���Ê ��� Ð��2ç�:); ..........................................................................................77

6.1 "! ��� .....................................................................................................77 6.2 �>ç�:�; .....................................................................................................77 6.3 #�¬0æ�$.ú � .............................................................................................77 È&%�Ê

'"( �&)�* ....................................................................................................78 È�+zÊ ,�- g#n ........................................................................................................84

Page 5: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

2

������������ Tomcat � � � �� � � �� � � �� � � �

1.1 Tomcat������������

Tomcat . É�/ B#C�D�E�F Þ õ Ä servlet 0 JSP Web ~5� � b Ì>ì�1 JavaÌ Web ~�� � b t X32 Tomcat

�Apache-Jakarta 4�5�6�7�8 �.Í � B#C�9�D

E�F Java 4;:�Ì�<"=�A Â Ä ��� 2 Tomcat Server .�>? servlet 0 JSP @�Ñ ÂÄ�Ã�Ä ÌBADC�E�F�G�HIzñ�J Tomcat Server K�L Ä3M Apache-Jakarta @)Ñ�NO�P �RQTS�U � ~�� � b�W�V�X $�W 2 X�Y[Z]\ È�É�/ Java servlet container .R^�_�¯0°2Ì Java Web Server A`�a Ì JWS

O É�b Ì U � V)WYXdc�e Ì� Q Agf �ih JAVA 8�j�k�lmAgY�ñ�8

j�n�o QTS ¿ Ì�p�q 2 1996

� � Q&rRs Ì Java servlet container t&ou�v5Ì�w�x;Azy�{| ApacheÌ JServ 0 CERN/W3C Ì Jigsaw A ò�} /�~�� Ì B#C�D�E�F Ì Java servlet container 2

1997�

JAVA � h k�lBA Sun Î�� È�É�� Ì Java Servlet Development Kit(JSDK) 2 y�6�� JSP Ì���� servlet container �©s�� HTTP 1.0 Web server 2� a ^�_ B#E �� JAVA Ag�5� r�sT��� Ì��)ë 2 1998

� �>ç M JSP @���Ag����JSDK ì�ó��[A�� Sun ¯0°2Ì James Duncan Davidson æ�� M JSDK V)W

X�� � Ì�� �&����A����&H. Tomcat Ì�s"�)Î � Í Ì�A���? servlet 0 JSP Ìî�ïmA�N8� �­�ù5� JWS Ì2:,ë F A � E Tomcat ¡�¢ Apache

� � A B#C�DE�F Ì Tomcat

� �i£ n¤ � Ì�6�7 2 ¡�� Apache 0 Sun Ì�6�7BA¥0�í�¦�§�¨Ì�©�rmAªk�ò ~ v�«�Ì )�¬ � � 2

1.2 � � � �� � � �� � � �� � � �

Tomcat Application Server G H @ � :�;5<®­ Tomcat Application Server

Standard Operation Procedure A ñ � c?�í�:�;5<R¯>Ì#Πı° ��� µ.¶ .Y�2��)� B#C N�O��z� 2

Page 6: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

3

1.3 � � �� � �� � �� � �

í�:�;�<)Ì.Ô0Õ#Ó�² É�b Ì�ù©�>A�Ð N#O u2v�A 28�³Ì&�)ë � � i Z´��µ

@�¶�·5ÌT¸5ë Â Ä A¹� c É�b ¢;º�Ì#ù5�>A 2 í�:�;5<�»;� Ê�¼ Û

³| � ·

� È�É)Ê

Tomcat c2Ë�½ Ë�¾ Tomcat Ì �.Í 2 �

È.Ö�Ê × Ø�Ù.Ú�½ c�¿ Tomcat À�@ ��Á� 2 �

È Ê Û�Ü�½ Ã�¶�J5^ Tomcat Û�Ü�¶�· 2 �

È�é�Ê [�ê Ð�u2v�:�;�½ Ë�¾ Tomcat Ì)u2v�Ë�ü 2 �

È>ýzÊ ~5� ��þ ½ Ë�¾ Tomcat Ì�©�r 2 �

È��)Ê ��� Ð��.ç�:�;�½ J5^ Tomcat Ì�#�¬��)ë 2 �

È&%�Ê '"( �&)�* ½ c�¿�ù©����I�r�Ä�ozÌ�Å�Æ.Ð )R¬ ��ë 2 �

È�+ Ê ,�- f�ÇȽ �Éeí�:�;�<�Y�,�-�À T�U�2

1.4 � � �� � �� � �� � �

í�:�;�<)Ì�Ó��.ÔpÕ#ò û #�ì)í�@ �zN#O u2v�Ê ïmA�Ë�ù©� Tomcat @ òInternet Ì Intranet s>tzu2v N#OÍ �.Ì�ÎRÏ N#O u2v ¿;Ð 2 Y�ù©��Ì"Ñ � Í �. ñ x86 ( IA32)

N#O ò�ì H 2 í�:�;�<�Y���)Ì2@ �zN#O ò RedHat A �ÒhTomcat I�Û)Ü ��Ó � Ì2@ �zN#O �BA ù5��y�{�@ �zN�O Ì>Û)Ü ¿�Ð K�I�Û���ÔÕ E�< 2

Page 7: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

4

�� ��� ��� ��� � � � � � � � � �

� � / Ê�¼ F�GÖ�×�J Tomcat Û�Ü�×zÌ H # � @ØAgyp��ÙÛÚ Í �SÐ � Ñ �Ì�Ü�Ý 2ßÞ�à Tomcat Û�Ü�8 Ó�á�â Aãf�. � Û�Ü�À�×ä&.5ÙT-&å5ñ2Ð�@�æçA þ|�Ñ � Ì�è � A�Y�$�Û�Ü Ì2@ ��N#ORé�é 2

� Û�Ü�À�×êAªë�ìí�î�ï�ðòñ Û�Ü&W�@ ��N#O 2 ízf b Y�ù©�#@ �zN�O òRed Hat ÌT4�5 B Î©Ì Fedora Core 2 ò.@ � N#O A Õ A�I ñ�H ��ó&ô�õ Ì2@�zN�O�Â Ä Û�ÜöA Û�Ü�:�; �&÷�ø � Aúù�.)­�û�ÿ ¾ I�r � ­û

��ü¨ 2

Ü,� Fedora Core 2 ò�@ �zN#O Ì Õ AöAªI ñ��);±Ô Õ ñ �&ý ¼ A ñþ�k

Tomcat Û)Ü&K�Izñ�,�-)í �z� ø±ÿ Ì SOP Â Ä Û�Ü�:�; 2

Page 8: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

5

� �� �� �� � � �� �� �� �

­����R�)ë�Izñ>Û�Ü�0 Ã�Ä Tomcat 2 ~�� Ì�� ¾ . �� Ð Ã�Ä ñ8���

ÌÖ ¶ ô � 2 Tomcat í�î�Û�Ü ~ ç,Ì JavaÃ�Ä Á�Â

(JRE) 2 í,<>Û)Ü Ì JAVA SDK.�ò 1.4.2_06

� íöA C2ò ~ ç Ì Tomcat 5.0.28 í�î�ù5� JRE �r�þ�k>Ý � 2

3.1 � �� �� �� � Jakarta Tomcat

3.1.1 Û�Ü Java SDK � �� �� �� �

1 �� ����������� Java SDK 1.4.2.06 ���http://java.sun.com/

���Java SDK 1.4.2.06

� ·

java.sun.com T�U

Page 9: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

6

� · ���J2SE SDK

� �� �� �� �2 �� ����������� Java SDK 1.4.2.06

[root@ossc tmp]#chmod +x j2sdk-1_4_2_06-linux-i586-rpm.bin

[root@ossc tmp]#./j2sdk-1_4_2_06-linux-i586-rpm.bin

É�� ����� ^ � ü

JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD

EDITION, VERSION 1.4.2_X

SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE

SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION

THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY

CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS

(COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT

CAREFULLY. BY DOWNLOADING OR INSTALLING THIS SOFTWARE, YOU

ACCEPT THE TERMS OF THE AGREEMENT. INDICATE ACCEPTANCE BY

SELECTING THE "ACCEPT" BUTTON AT THE BOTTOM OF THE

Page 10: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

7

AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY ALL THE

TERMS, SELECT THE "DECLINE" BUTTON AT THE BOTTOM OF THE

AGREEMENT AND THE DOWNLOAD OR INSTALL PROCESS WILL NOT

CONTINUE.

1.DEFINITIONS. "Software" means the identified above in

binary form, any other machine readable materials

Do you agree to the above license terms? [yes or no]

yes ���� �������� yes

Unpacking...

Checksumming...

0

0

Extracting...

UnZipSFX 5.40 of 28 November 1998, by Info-ZIP ([email protected]).

inflating: j2sdk-1_4_2_06-linux-i586.rpm

Done.

[root@ossc tmp]# rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm

Preparing... ########################################### [100%]

1:j2sdk ########################################### [100%]

�� rpm –ql j2sdk I���� java Û)Ü,Ì �!

[root@ossc tmp]# rpm -ql j2sdk |more

/usr/java/j2sdk1.4.2_06/COPYRIGHT

/usr/java/j2sdk1.4.2_06/LICENSE

Page 11: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

8

/usr/java/j2sdk1.4.2_06/README

/usr/java/j2sdk1.4.2_06/README.html

/usr/java/j2sdk1.4.2_06/THIRDPARTYLICENSEREADME.txt

/usr/java/j2sdk1.4.2_06/bin

/usr/java/j2sdk1.4.2_06/bin/HtmlConverter

ò M#" ¢�Ð [�ê � c A F�G� � É�/ soft link $�� Java SDK Û�Ü ÌYÏ&% 2

[root@ossc java]# ln -s /usr/java/j2sdk1.4.2_06/ /usr/java/j2sdk

[root@ossc java]# ls -l

total 8

lrwxrwxrwx 1 root root 24 Oct 15 14:48 j2sdk -> /usr/java/j2sdk1.4.2_06/

drwxr-xr-x 8 root root 4096 Oct 15 14:40 j2sdk1.4.2_06

� �� �� �� �

3 �� ��('*),+-*.0/'*),+-*.0/'*),+-*.0/'*),+-*.0/ Java SDK 1.4.2.06 132

/etc/profile ~ è¡�¢ � �f4

JAVA_HOME="/usr/java/j2sdk"

export JAVA_HOME

æ>ç�5�¢ A à è Ã�Ä echo $ JAVA_HOME 63� Á�Â87 S .:9;�< 2

[root@ossc root]# echo $JAVA_HOME

/usr/java/j2sdk

3.1.2���� � �� �� �� � jpackage���� Tomcat

http://www.apache.org/dist/jakarta/tomcat-5/ A ��� Jakarta Tomcat Ì LinuxQ

Í � Ö ¶ ô � íØ­ *.tar.gz ¯úA � E T!= �� Ì � í�. *.tar.gz ú � �©ë A |�>&� �� Mjakarta-tomcat-*.tar.gz A � Ö�{ )�?A@ o,BAC���« C Tomcat

¶ Ø 2

Page 12: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

9

f�. *.tar.gz ú � �5ëØAED Ó3F u#v A�Y�ñ.í SOP �5�2Û�Ü rpm ú � �5ëBAHG���Tomcat rpm ú � ��ëØAªIzñ�o � T!= ��� ·

http://rpmfind.net/linux/RPM/sourceforge/s/sc/sciense/jakarta-tomcat-5.0-28.noarch.html

Û�Ü Tomcat rpm í�î�$ì�Û�Ü jpackage-utils rpm A Õ A�Izñ�owww.jpacakge.org

��� Ó�²�Ì � í 2 � �� �� �� �

1 �� �� ��� jpackage-utils rpm 8�Û�ÜÀ 2

� ·www.jpacakge.org T�U

� · ���

jpackage-utils-1.5.39-1jpp.noarch.rpm

�� rpm –ivh jpackage-utils-1.5.39-1jpp.noarch.rpm $�I�Û�Ü

[root@ossc tmp]# rpm -ivh jpackage-utils-1.5.39-1jpp.noarch.rpm

Page 13: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

10

warning: jpackage-utils-1.5.39-1jpp.noarch.rpm: V3 DSA signature: NOKEY, key ID c431416d

Preparing... ########################################### [100%]

1:jpackage-utils ########################################### [100%]

� �� �� �� �

2 �� �� ��� jakarta-tomcat-5.0-28.noarch.rpm 8�Û�ÜÀ 2 Õ A � ozñ ��J = ��� jakarta-tomcat-5.0-28.noarch.rpm A�8& �� rpm –ivh $I�Û)Ü

http://rpmfind.net/linux/RPM/sourceforge/s/sc/sciense/jakarta-tomcat-5.0-28.noarch.html

[root@ossc tmp]# rpm -ivh jakarta-tomcat-5.0-28.noarch.rpm

Preparing... ########################################### [100%]

1:jakarta-tomcat ########################################### [100%]

Starting tomcat5: /usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

/usr/bin/rebuild-jar-repository: error: failed to set JAVACMD

[ OK ]

E a � É�� É K /usr/bin/rebuild-jar-repository: error: failed to set JAVACMD ÌLM À3N Aª��.;C2ò Tomcat Ì [,ê ú�O�j132Ì D C 2

� �� �� �� �3 �� ��132

Tomcat [�ê ú ­ /etc/tomcat5/tomcat5.conf ¯

[�ê JAVA_HOME= JAVA_HOME="/usr/java/j2sdk"

[root@ossc tmp]# vi /etc/tomcat5/tomcat5.conf

# tomcat5 service configuration file

# you could also override JAVA_HOME here

# Where your java installation lives

#JAVA_HOME="/usr/java/j2sdk1.4.2_04/" ���� JAVA_HOME P0QSRUTWVSX&Y[ZP0QSRUTWVSX&Y[ZP0QSRUTWVSX&Y[ZP0QSRUTWVSX&Y[Z

Page 14: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

11

JAVA_HOME="/usr/java/j2sdk" ���� \�] Å[^�_0`\�] Å[^�_0`\�] Å[^�_0`\�] Å[^�_0` Java SDK �A�*a0b�c�A�*a0b�c�A�*a0b�c�A�*a0b�c

# You can pass some parameters to java

# here if you wish to

#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"

# Where your tomcat installation lives

# That change from previous RPM where TOMCAT_HOME

# used to be /var/tomcat.

# Now /var/tomcat will be the base for webapps only

CATALINA_HOME="/usr/share/tomcat5"

JASPER_HOME="/usr/share/tomcat5"

CATALINA_TMPDIR="/usr/share/tomcat5/temp"

JAVA_ENDORSED_DIRS="/usr/share/tomcat5/common/endorsed"

# What user should run tomcat

TOMCAT_USER="tomcat5"

� �� �� �� �4 �� �� æ>ç.Ý � Tomcat

[root@ossc tmp]# service tomcat5 restart waiting for processes to exit [ OK ] waiting for processes to exit Starting tomcat5: [ OK ]

3.2���� Tomcat�� ��� ��� ��� � ����� �� �� �� � ����� � � � �� � � � �� � � � �� � � � �

3.2.1���� � �� �� �� � Tomcat

Ý � Tomcata �d!e o /usr/share/tomcat5/bin Ïf% � A " ¢

./catalina.sh run�

./catalina.sh start

./startup.sh A�Ý É , ñ�� ��� ¾ ZÒI�k©.Ý � Tomcat 2

[root@ossc tmp]# /usr/share/tomcat5/bin/catalina.sh start

Page 15: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

12

Using CATALINA_BASE: /usr/share/tomcat5 Using CATALINA_HOME: /usr/share/tomcat5 Using CATALINA_TMPDIR: /usr/share/tomcat5/temp Using JAVA_HOME: /usr/java/j2sdk

ñ���ò,g O Ý � Tomcat Ì�� ¾ A�|�>�.& �� rpm �)ë.Û)ÜöA�h �,i RedHatSystem V Ì)u2vR�)ë�j�² � É�k A Y5ñ�F�G�l�I� �� service tomcat5 start Ý�

Tomca server

[root@ossc tmp]# service tomcat5 start Starting tomcat5: [ OK ]

3.2.2���� � �� �� �� � Tomcat

`Tomcat Ý � a A ~:m �,n o���ü�F�G�YAo�Ì,p!q5Ì " É g#À A É:r k�©

Ý � Tomcat èBA ~m�H�r!s � 8008 t��!uAv T*w Ì W�V A�|�>$ ã ä TomcatÌ V�WYX A I ñ � Tomcat Ì�Ïf% � Ì /bin Ï&% � Ã�Ä � ü�Y�)Ìx$�IêAªHIzñk©zÌ ã � Tomcat Ì W�V M A�| � Y*y · ./catalina stop Ì�. ./shutdown.sh

[root@ossc tmp]# /usr/share/tomcat5/bin/catalina.sh stop Using CATALINA_BASE: /usr/share/tomcat5 Using CATALINA_HOME: /usr/share/tomcat5 Using CATALINA_TMPDIR: /usr/share/tomcat5/temp Using JAVA_HOME: /usr/java/j2sdk

Page 16: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

13

3.2.3���� � � � � � � � � Tomcat

|:>�Ä�o � !z�Æ A I�r,Ù�$ æ>ç.Ý � Tomcat A f Tomcat 8�j,uAv0æ2ç�Ý� Ì�$�IöA Õ A�{5æ>ç�Ý � Tomcat ÌzÙ.ÚØAúùzÙTÖ Tomcatã ä è�å�Ý � 2

� Java Servlet Specification 8� �­8|�}@ ê Java servlet Ù�$�~ Q � a�� þ

ky � @�Ì a�� ®�} 28��Ù�$A��� Ã�Ä y � @5Ì servlet 8� �­��A� Java

Servlet Specification Ì�@ ê A Ó�G�r,� Tomcat � ¾ ãzä 2

� Java Servlet Specification K�$�Ú ` ã ä Tomcat

a A �:�:� servlet À�×êAservlet container í�î é�� Yz­zÌ servlet þ�k�Yz­�ä � Â Ä �2Ì � ÚØA Ìé�� É0��� ê Ì (container-specific) � a 2 Ô Tomcat AEm� a�a�� .,� /servlet

~ Q,� �!� 2 ` servlet É M L A ��N Ó r�þ�k�Ô � Ú)Ì W�V a A�h. � Tomcat

Í�� ê servlet ~ MW� Q Ì������ ���(���,���: ,¡¢�¤£�¥A¦§

Tomcat ¨ª©A« ��¬ ­:®�¯±°�² ��³ �µ´�¶�·!¸ Tomcat ¹ ¦ § ®�¯ ¨

� JVM º0¹»x¼�½8¾�¹,¿ÁÀW« � Java ¹ ¯*ÂxÃ*Ä�ÅÆ�Ç!È,É*ÊAË�ÌÎÍÐÏ�® »Ñ ¹A�:³ � (J2EE

�Ò «*Ó���¹ ¯*ÂÔ�Õ:Ö× ) ¨ÙØ � �¤ÚWÛ Java ¼�½8¾,ÜCPU Ý*¹�Þ ¯*ßA ¹!àá � ¼�½*¾�©:âAãxä±å�æ (blocked)

�(�:ç,è å�æ�éê ¨ ÚWÛ8¬�ë*ì0íÎ� ܼ!½ shutdown.sh �0î8ïð¹ ¯8Â0Ã:ñ:Ä�Å:Æ�Ç�ËAÌò�Tomcat

²8ó�ô »,õ:ö�ã ¦ § �ø÷ Tomcat ù Ä�Å:Æ�Ç�ËAÌ!¡úÍüûþý � õ:¹A�³Î¨ ¬�ÿ�����£�� Java ����� � ¦ § Tomcat « Æ�Ç�� © �:¹ú¨�� ý����â ¦ § Tomcat ¹���� ¯* ���A¯8Â8°�²:£�� ¡ ¹ ¯*Â���� ��� ¨

´ � Tomcat « ����©! �"  ¹ servlet container�#��¦ §�$�%'& � � TomcatÄ�ÅAÒ ã�ï:ð System.exit(0)

�µ´ � ¡�Ò�Ë�Ì (�°0²�) * � ö�â�+�,!Ü�-Áع JVM ºÐ¼!½ ¨/. ÷10 2 ¹ � Tomcat ã ¦ § � î�38¹0¼�½ 4 � î £ ��Ò�°² ¼�½ �,¡ ¹�576�� � VM © £�È98�ÊA�:  ¨ ´�¶�2�: � servlet © £1;�<�=ã�> VM

Ò â �  ¹�¼�½ 4 �@?�A7�Tomcat î�3�¹�¼�½�4�B ¦ § ��¨

� C ² î�38¹�D FE � G�H�I�J �

Java Servlet Specification © £ > servletK�L ¼�½�G!M�¹ONP� Java ¼�½8¾ ¨Q� R servlet;S<F=�T � ­ ¼�½8¾ ���

¼!½*¾�U�© £WV�XZY�[ ¹�\F]�^ AF_WÛ Tomcat ¹0¼�½*¾ ( `�a!D FE ��GH!I�J )

� ÷,¬ ã�> TomcatÒ â ¦ §7b ��Æ�Ç ¼�½ ¨

Page 17: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

14

c�d�e!f `�g�Ü Fedora core2 �:¹�hWi�Ý�j�k�l Tomcat m 1. nPo shutdown.sh script p =Ц § ¹�q�r � `�s!î � m

t!u7vTomcat wyxFs�¹ bin wyx

./shutdown.sh

2. > Tomcat â È98ü¦ § �{zP8�|�}�ó�ô�ë ��³ ö�â ÈP8W¦ § ��~ ��¹ c��¦ § �:³������So ¯8Â�� $�%�&��W� ¹O�F� �@� $�%�&���� ¹���� ¯ ^ ÷� ��Ò�® Ü7����Ý � Tomcat

²�û������ ¹A��³ ö�ã ¦ § ¨

Page 18: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

15

3. nPo ps q r ����Ü Tomcat JVM Ý���g ���±¹ Tomcat ½ ¯�� `�s���r�m ps aux | grep catalina.startup.Bootstrap

4. `�a���3���g Tomcat ½ ¯ Ü:¼�½ � ���v7�����

¨ �!� � ´ � Tomcat JVM� ��3 Ü�I�J�¹���³�¡ ¦ § �£¢ ©:â ²�� � ¡:�:  ¨ ñ SIGTERM ¤�¥�¦�§¢ Õ7¨ ¹�½ ¯ ��©!ª VM�:  ½ ¯ ( « É � ¢!¬ 3 È É ¹WnPo�­!® ì ) m¯`�s

��r�î � m

kill –SIGTERM <process-ID-list>

5. °1±

��²��¹�l�M ¨{`�a ( 3!���3¹ Tomcat JVM ½ ¯ � �F°O±

�!³!� �´ v � ��3 ½ ¯ � § ¨µ`�a ¬�ë ½ ¯�( Ü è ,Áº � �7¶ £ ¬�· ¹ ßAÂ�¸�¹¡�º m

kill –SIGKILL <process-ID-list>

6.��¢�É �

Tomcat JVMÒ j�¼�½3� � k�l�»�¹ Tomcat ½ ¯ m

t!u7vTomcat wyxFs�¹ bin wyx

./startup.sh

ÜF��¼�½ ¾!s �H¦ § ¹ ®�¯ ã�¿�À Ê�Á ½ � ÷Tomcat JVM ù*ã�Â�Ã Ê ¦§ ¨ Ò�®�Ä!Û á 8 ¹�½ ¾ ��¬,­¯�Å � � Æ8£ ��Ç

Page 19: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

16

3.3 ���� Tomcat � � � �� � � �� � � �� � � �

`�a�È�­:«�À�o rpmß� D É Tomcat

� © £ o chkconfig ��r!> Tomcat ÜÊhi�k�l�� �QY l�k�l Tomcat

% ��¨ÌË�«�nPo�¹ « Jakarta Tomcat »�Í9Î1Ï�ÐSÑÒ ¹�D É ß� � î £�Ó�Ô�Ò ã0ÜÊhWi ºÕ3 ¬�· ¹ % � �Ö|�}�× l!Ø9�O-9ÙScript ¨

#chkconfig tomcat5 on

Page 20: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

17

3.4���� Tomcat � � � �� �� � � �� �� � � �� �� � � �� �

��Ú�Û7�Ú D É � k�l Tomcat d � � � â!Üæ�«�� Ú�Û k�l � «�Ü�ÝSÞ & ºàß

" £ s8¹�á � m http://localhost:8008 ââ ââ ¢ © £Wãv`�s8¹�ä å

( æ�çW`�a ¢ 37è�¶ Port ¥ � «!nSo ¢ ¹ Port ¥ � Port ¥A© Ü server.xml ºà�v-9Ù�¹ Ô � )

[root@ossc tomcat5]# vi /etc/tomcat5/server.xml

<Connector port="8008"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" />

é m Tomcat ê�ë�ìFí

Page 21: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

18

é mÖê�ë JSP î�ï ¯8Â

é mÖê�ë JSP î!ï ¯8 � a

Page 22: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

19

�� ��� ��� ��� � � � � � � � �� � � � � � �� � � � � � �� � � � � � �

4.1���� Web � � �� � �� � �� � � �� ! "�� ! "�� ! "�� ! "

4.1.1���� HTTP � � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �

HTTP ð Hypertext Transfer Protocol ñ «Zwàò0Ü Internet Ý!�So c�ó�ô ¹ z ¤ õ� 2 � ¨yö �!2 � HTTP z ¤ õ � I�J7÷�ø!ù Vú= HTTP ûµ«FüFýþð request ñ � ÿ d Ú $�%'& �7������� � a�¦�� HTTP û��W�Êý�ð response ñ �@����� M ß Â � m

� � ÷�ø!ù� Web

$�%�& p = «Fü � Web $�%'& ñ ã Ô kS� ­ »�á�� ¨

� � ®¬ ­ á�� � ÷�ø!ù�© £�ñ HTTP «7ü�¦�p�§ Web $�%�& ¨

� �

Web $�%'&�� v

HTTP «Fü� ��ñ7Á ½�������� �(��ñ ��� � a��OÉ ÚHTTP �W� ¨

� c�d �

Web $�%�& ã ñ HTTP �1��¦�p A ÷�ø�ù ¨�C ² ÷�ø!ù�� �

vHTTP

�W� �Web

$�%'& Uã7Ù�� ¬ ­ á�� � ÷�ø!ù�¹�¼�½�é ê ñÒ ã���� ¨

é4-1 m HTTP

z ¤ õ � ¹ �����

Page 23: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

20

4.1.2���� ���� Java � � � �� � � �� � � �� � � �Web � � � � � �� � � � � �� � � � � �� � � � � �

Servlet « £ Java �� S� ��! ¹ $�%�& ù��So ¯8 Ñ�" ¨ Ü Web �Fo ¯*Â�#%$ º �'& © £�� . 0 CGI

¯*Â ¨{-�( 2 s � Servlet ¬ 3�s*)�\�+ m

� ¼�½�,.-%/ m10 ­ Servlet 2 Ä �7� ­�3 L ¹ û ¼�½*¾Sýþð thread ñ � ´�¶ ¼ ½�,4-*5 CGI

¯*Â%6¢� ù758(�9 � ¨ � Á "7:<;*=�m Servlet « £ Java � �>! � C ² «�?*@ Java ¹ ¯�Â�Ô�A.B U

© £DCFE ØP� =HG�Â�G!· ¹ Servlet ¨ � ¬ 3�I�Í9Îü¼�½�â�J m�K Ú Java

�L ¹DI�Í9Îxâ�J � Servlet M £�� M�Ü�� g�NDO Java ¹�Í9ÎWÝ ¨

P�Q Servlet R>SAî ��T � Servlet

|�} ¼�½ Û�U�­ ¿�V Ö:× �XW�ºY 2 �Servlet Container s é8Z�[ ý Servlet \ & Ü Web ��o ¯* º^]�_A¹.`:À m

é4-2 m Servlet \ & Ü Web �So ¯8Â º^]4_:¹.`À

Page 24: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

21

é4-3 m J2EE � Servlet

� ÷�ø!ù� Web

$�%'& p = HTTP «FüA� � Web $�%�& ã�]!Ü

æ�«7ü�¡�\ m � `�a�«>a ê HTML bFícDd � Web

$�%'& ñ ã Y ½��e � ÿ d�f < �W��¤ g

� `�a.h>ivl ê cDd � Web

$�%�& ã ñ HTTP «Fükj�l�§ Servlet \ & � enm � a:ã�]!p.� Web

$�%�& � j Ú Web $!%�& ¦���÷�ø�ù ¨

4.1.3���� Servlet �� � � � !�� � � � !�� � � � !�� � � � !

> W�º4o�ã�ã Servlet \ & `�g���e HTTP «Fü m � Web $�%�& � �

v� ­ l ê

HTTP «Fü� ��ñ ã%j�l�§ Servlet \ & ¨ ¶ � Servlet \ & ã�k�l�� ­ ¹0¼ ½*¾

é4-4 m Servlet \ & ¡x¼�½8¾ � ç é

Page 25: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

22

À�o0¼�½*¾ o �e HTTP «Fü�p�q!3 ) *�6 �4rtsvu Ä Ø�� ­ Servlet�

Servlet \ & ã�Ü

���w �

vHTTP «7ü� K�L � ­ Servlet ��� � ÿ d k�l7� ­ ¼�½

¾ú¨�Ïw �

vHTTP «FüA� � Servlet \ & �Ò�°�² K�L -þØ,¹ Servlet ��� � ÷ «�k�l

�Ï ­ ¼!½*¾ o % ��÷�ø!ù «7ü�¨ £ »x¼�½8¾ ð Multi-Thread ñ�¹ ßA o ¼!½ Servlet Ò�x © £WV7y Web �So ¯* ¹0¼�½�,�â � ù�© £�z = Web

$�% & ¹�hWiF{^| ð}� CGI

¯8Â>~ -�58(úñ ¨

é4-5 m Servlet \ & ¡A»�¼�½*¾ � ç é

4.2���� Web � � � �# $ % &� � � �# $ % &� � � �# $ % &� � � �# $ % &

4.2.1���� Web � � � � �" #� � � � �" #� � � � �" #� � � � �" #

Tomcat

V��Servet � JSP R>S3¹���M � ¬�ë R>S8« Sun ¹ Java 2 �4� Ò ð b

ö Y J2EE ñ�¹!���� ¨ J2EE « Ô�A4o >���o ¯*Â:Ô�Õ ­�Ü Æ�} ° � ¶�� b ¶Ò s � â��9çD� ´ � ��o ¯*Â�A���&��!~ R�S 2 ��o $�%'& ð¯������M J2EE RS3¹ ¯* ñª¨Q� ý�� Ú¶ wv� � �So ¯*Â��*£>��8 ¿ � � ©>���¹ ßAÂ�o �OÉ�mï�`F�OÉ Ú web �So ¯* Archive

� b �.�1�So ¯8Â ¹ Archive 4 ¨

� ýЬ ­ ¿ � ¹Êw � � Java Servlet R>S ��T ý Web Application Archive ¹W47�S Â��:�>$ ¨Q� ý nPo�����M ß�Â�Æ Ù!¹ Web �So ¯8 �{¢ ¹�47� |�}�>��Uë�� ï ��� `����4bFí�¹�wyx���� ��� ê 4 � óAó ¨

Page 26: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

23

é4-6 m Servlet Web �Fo ¯* ¹�47���*�

` é 4-5 î � � b�í�© £k� Ü web �So ¯* ¹

Pwyx � b � g3¹>�Zw x ºò¨ é 4zP8 ã � Ü /images ¹��Zwyxúº � Ò�®¬ C!« ���F� �þ�ø÷�� �4��R � ¨ WEB-INF

wyx����7� ë ¡�\:¹,¿ � �� ¨ ì ] � classes wyx*«4� � java class 4�¹ Ê8ß �Æ f &�º « servletb « servlet î�n9o �!¡ class 4 �

JSP� b �9o ¯� ¹ ��¡ �

� ¨ � w lib w x*«.� � Jar ¹ Ê�ß�� ¬�ë 47� ã���������¹� �" ¨ c�d � web.xml«!î�¡ û ��¢>£.¤�4Êý�ð deployment descriptor ñ �¥& ��� web �So ¯� ¹ � ê ��So ¯* ¹H£.¤ �µ£�� ��g�NP�A¹�¦*§ Ô � ¨

-�( ÛF� ¡ ¹ web

$�%Ê& ¹%�e  � ñ b�¨8¹�¦�§ Ô � � "*b�¨Zwyx'¡ xml 47ðª©Ó � ��¢�£.¤�4Êñ#¹ 6 � 2 ��« � î�3�b�¨8¹�¦�§ Ô � B�� � b¨8¹W��¢7�%«��� ¨ ¬ ã�ö8¬ ç�­ ¹�G�M � ù�nM ñ ��o ¯* �� ��& �So $�%�& � b ?�A���&¹ ISP (F�7ö E ¨ ¹:¶�2 � � Tomcat ã Y l� ­ WEB-INF wyx 2 ¡�\ � £�® § oø!ù�¹>bFíWÝSÞ & � . �ª´�¶� ê c1¤ ð ©:â�����¯�¥° Y �4± à ñ Ò ã�>So�øã v ¨

4.2.2���� $ � % & � � � �$ � % & � � � �$ � % & � � � �$ � % & � � � �

Web ��o ¯* ¹Êwyx8© £�Ô ��Ü 47��hWi8¹1��g�Ð7��² Ò�® c 6:Ò² ñ�¬�ë wyx� " Tomcat ¹�w xúº ¨ ¬�· ²EÜ�� ¹ Tomcat£ D�É�(�»�¹ Ò ²¤ö Ò ã�³�´ &º ¨ ´,¶ ² £�× l�¹ ßA D É web �So ¯* C ° K�L wyx ��ñ î ° ¹�47�1±.§ Áo ����ñ���Ô � î�µ ¨

Page 27: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

24

é4-7 m ��¢ Ö:×

' ( )' ( )' ( )' ( )

Ü ¶ î!ï º¶²X· ñ�¸ Y ØP� � ��¹���¼!½F� ­ Servlet ² ��M��º

��� m »�¼»�¼»�¼»�¼3 ½½ ½½X¾>¿¾>¿¾>¿¾>¿ MyFirstServlet ´ � MyFirstServlet

|�} ¼!½�Ü Servlet \ & ¡À² î £ · |�}AñMyFirstServlet.class ±�§

vTomcat

$�%�& ¹�Á � w x

1. Ü /Tomcat/webapps/ROOT/WEB-INF wyx7s K�L � ­ classes � w x ¨ 2. ñ

MyFirstServlet.class ±�§v

classess wyx7s ¨ 3. °�»�k�l Tomcat ¨ 4. Ü Web Ý�Þ & ¡Õß "�s�)>b>Â�m

http://localhost:8080/servlet/MyFirstServlet

' ( *' ( *' ( *' ( *

Ü ¶ î!ï º¶²X· ñ Ü MyFirstServlet ¡8Ã�"7� ­ doPost()

ß�Ç ²þwü¹,«�> MyFirstServlet â>Ä.�1� POST «Fü�¨Q� ývÅ ÷�ø�ù�p = POST «FüƲX· |�}T ��Ø9��� ­ SendPostRequest.html 47� ¨ »�¼»�¼»�¼»�¼

1 ½½ ½½ÈÇ7ÉÇ7ÉÇ7ÉÇ7É SendPostRequest.html <HTML>

ÊÌËÊÌËÊÌËÊÌË:

( ÍÏÎÑÐÏÒÔÓÖÕÔ×ÔØvÙÑÚÑÛMyFirstServlet.java

( ÍÏÎ javac ÓÖÕMyFirstServlet

( Ü MyFirstServlet.class ÝÏÞßTomcat àÏáÔ×Ïâ�ãvä^åÈæç

( èÏé Tomcat àÖáÖ×( êÖëÏìÖ×ÌíïîÔðMyFirstServlet

ñÔò1 óôØvÙ

MyFirstServlet.java

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class MyFirstServlet

extends HttpServlet {

public void

doGet(HttpServletRequest

request,

HttpServletResponse response)

throws

IOException, ServletException

{

response.setContentType("text/

html");

PrintWriter out =

response.getWriter();

out.println("<html>");

out.println("<body>");

out.println("<head>");

out.println("<title>Servlet

Exercise</title>"); õ õ õ÷ö øúù

Page 28: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

25

<BODY> <FORM ACTION='/servlet/MyFirstServlet' METHOD='POST'> Enter your name: <INPUT TYPE='text' NAME='name'> <BR> <INPUT TYPE='submit' VALUE='Submit'> </FORM> </BODY> </HTML> »�¼»�¼»�¼»�¼

2 ½½ ½½ÈÇ7ÉÇ7ÉÇ7ÉÇ7É MyFirstServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyFirstServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>Servlet Exercise</title>"); out.println("</head>"); out.println("<body>"); out.println("<B>Hello, " + name + " !</B>"); out.println("</body>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } } »�¼»�¼»�¼»�¼

3 ½½ ½½üû�ýû�ýû�ýû�ý MyFirstServlet.java

Page 29: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

26

# javac MyFirstServlet.java »�¼»�¼»�¼»�¼

4 ½½ ½½X¾>¿¾>¿¾>¿¾>¿ MyFirstServlet ´ � MyFirstServlet |�} ¼!½�Ü Servlet \ & ¡þ² î £ · |�}Añ

MyFirstServlet.class ±�§v

Tomcat $�%�& ¹�Á � w x

1. Ü /Tomcat/webapps/ROOT/WEB-INF wyx7s K�L � ­ classes � w x ¨ 2. ñ

MyFirstServlet.class ±�§v

classess wyx7s ¨ 3. ñ

SendPostRequest.html ±.§v

/Tomcat/webapps/ROOT/ 4. °�»�k�l Tomcat ¨ 5. Ü Web Ý�Þ & ¡Õß "�s�)>b>Â�m

http://localhost:8080/SendPostRequest.html

4.2.3 + �+ �+ �+ � war,,,,

ÿ ÿ ¢ ©�nSo × l*¹ ßA ��¢���o ¯* ² x nSoxÜ servlet R�Súº î>£.¤8¹ web�So ¯*Â�� � 4 2 �OÉ>S Â�� 3 � ë�6 � ¨ Ä!Û Tomcat

÷�� ²�� ² ¹ 6 �«A©£�Y l���¢ m�� �:¹ WAR 4:© £ ´ ��±�§ A Tomcat ¹ webapps w x ºF² U:ãY l Ú ��î�µÀ² ÷0Ò�°�² ��g � ê Ô � ¨

`�a�nPo Tomcat ¹ Y l���¢ Û â ² ¢ © ñ »*¹ WAR 4�±�§

vTomcat ¹

webapps wyxúº o ��¢ & ¨ �Q � ê ¹ Ò ØSð Ü Ó�Ô ¹�½�¾�s ² � ��¢ »*¹ web

�So ¯*Â� ² Ò�° j�k�l Tomcat ñ , ¢ ù�©:â °�² j�k�l Tomcat ¨ ¨ Ün² ¢ �� © £ nPo4����Ü WAR 4κ0¹ web �So ¯* ¨

4.4���� Tomcat�' (�' (�' (�' ( Script ) * ) * ) * ) *

4.4.1���� - !- !- !- ! Tomcat���� shell script

È�­©!À�o rpm –ql ã jakarta-tomcat D É,Ü�� ë wyxFs m

[root@ossc tmp]# rpm -ql jakarta-tomcat /etc/init.d/tomcat5 /etc/logrotate.d/tomcat5 /etc/tomcat5… ….

Page 30: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

27

/etc/tomcat5/server.xml /etc/tomcat5/tomcat-users.xml /etc/tomcat5/tomcat5.conf /etc/tomcat5/web.xml /usr/share/tomcat5/bin/catalina.50.bat /usr/share/tomcat5/bin/catalina.50.sh /usr/share/tomcat5/bin/catalina.bat /usr/share/tomcat5/bin/catalina.sh /usr/share/tomcat5/bin/catalina.xml .. /usr/share/tomcat5/bin/shutdown.sh .. /usr/share/tomcat5/bin/startup.sh … /usr/share/tomcat5/common /usr/share/tomcat5/bin/ w xFs�3�J±» E e Tomcat Server ¹ Shell Script ²� �­£ s ÿ��A­ Z�[ m Script o��

catalina Tomcat ¹�� ² script ² ¡ ã ¼!½ java q�r:ïð tomcat ¹1kl�� ¦ § ���

digest M = Tomcat ± à ¹kÃ�±�� ²�� ² o o K�L Ã.± ® ¹�± Ã

jasper JavaServer Pages ¹��¹ & script

jspc £

jspc ���8ï:ð JavaServer Pages �¹ & script ² � ¦�p� ¡ ¹����

setclasspath o Û hWi�¡O� ² £WÔ � Tomcat ¹ classpathÖ×�� �

shutdown =catalina stop ² o o�¦ § Tomcat

startup =catalina start ² o o k�l Tomcat

tool-wrapper o Û hWi8¹ ¡1�n² digest script

¼�½ catalina

� ² |�}�� � � ­ ��� m c 8 oA¹,« start�

stop�

run ¨ ��£start ¼�½ catalina

�(=startup) ² ¡ ã�k�l Tomcat ² ��ñ ��!�ß = ��"#%$'&�(

A $TOMCAT_HOME/logs/catalina.out 4 ¨)��� run ã�> Tomcat �+*Swþò�¹��!�ß = ��"#%$'& ( `�,!ù�- ) ² ��¢�Å ,�ù�-:¼�½n² �/.�ã

vk�l � ¹1ß =� ² ¬ ã!3/0�1 ¨

`�a�nSo catalina

�start 2�3 ² b ð o startup ¹�q�r ÷�� nSo���� run ²

Page 31: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

28

ñ ã0Ü/,!ù�-�Ý ãv�4 � ½ Using… m � �±¹Wß = ¤ g B*ã0ä�ß =

vcatalina.out

¹+576�4 ºú¨

4.4.2���� Tomcat�- ! . /�- ! . /�- ! . /�- ! . /

Tomcat5V�� J3» E e `:À ²¯>!nPo�­©7o C�E98�:���; M Tomcat Server ²/È

­:© £ ã /etc/tomcat5/tomcat-users.xml ² M Ë�Ó�ÔSE e�¯ ¥8¹%° Y�� ± à ¨

[root@ossc tomcat5]# cat /etc/tomcat5/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

<role rolename="sciense"/>

<role rolename="tomcat"/>

<role rolename="role1"/>

<role rolename="manager"/>

<role rolename="admin"/>

<user username="sciense" password="sciense" roles="sciense"/>

<user username="tomcat" password="tomcat" roles="tomcat,admin,manager"/>

<user username="both" password="tomcat" roles="tomcat,role1"/>

<user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>

È�­© £ +�2 Tomcat ��ä å�<:Ý�`Êû Administartion ý7=�>Ʋ o�Á " E e�?SåƲÓ�Ô ¹%¯ ¥�� û tomcat ýÔ²¥± à ©!� û tomcat ý¤¨

»�¼»�¼»�¼»�¼1 ½½ ½½A@�B@�B@�B@�B Tomcat C9D�E�FC9D�E�FC9D�E�FC9D�E�F ââ ââ�G�HG�HG�HG�H Status IJIJIJIJ

Page 32: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

29

é m Tomcat �!ä�å

»�¼»�¼»�¼»�¼2 ½½ ½½LK�B�MN/OK�B�MN/OK�B�MN/OK�B�MN/OQPPPP tomcat R âR âR âR âAS9TVU�OS9TVU�OS9TVU�OS9TVU�OQPPPP tomcat RAWRAWRAWRAW

é m�¯�¥ � ±�X�ß�Y7ä�å

é m Tomcat Status ä å

»�¼»�¼»�¼»�¼3 ½½ ½½A@�B@�B@�B@�B Tomcat Administration EZFEZFEZFEZF ââ ââ[G�HG�HG�HG�H\PPPP Tomcat Administration RR RR

IJIJIJIJ ââ ââLK�B�MN/OK�B�MN/OK�B�MN/OK�B�MN/OQPPPP tomcat R âR âR âR âAS�T]U�OS�T]U�OS�T]U�OS�T]U�O^PPPP tomcat RAWRAWRAWRAW

Page 33: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

30

é m Tomcat Administration _�YFä å

éa`Tomcat Administration bke�ä å

»�¼»�¼»�¼»�¼4 ½½ ½½A@�B@�B@�B@�B Tomcat Manager EZFEZFEZFEZF ââ ââcG�HG�HG�HG�H Tomcat Manager I JI JI JI J

Page 34: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

31

éd`Tomcat Manager ä�å

Page 35: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

32

�� ��� ��� ��� � � � � �� � � �� � � �� � � �

5.1���� JSP + ,+ ,+ ,+ ,

egfjava hjilk7m'n7oqp HelloWorld rts+uwvyxgz{pj|7}�rts�~q�t� jsp m�n7� �l���

HelloWorld.jsp

m�n�� ( �7���g�t�����]u�m�nq�7���g�y�'� )

<%@ page contentType="text/html;charset=big5" %> <% String str1="HelloWorld"; %> <html> <head> <title> �������� </title>

<meta http-equiv="Content-Type" content="text/html; charset=big5"> </head> <body> <% out.println(str1); %> <%=str1%> </body> </html>

page ���'�y y¡g¢g£j¤q¥j¦qk�§9¨�©gªg«�¬�­+u�®l¯l°y�j�gn�±c¬�­�²]uw³q´�µl�

<%@ page ©lª 1=" ©gªl¶ 1" ©gª 2=" ©lªg¶ 2" ©lª 3=" ©lªg¶ 3" ....... %> · � <%@ %> ¸º¹q���q©lª»u�¼g®�½y�

<%@ page contentType="text/html;charset=big5" import="java.sql.*" %>

1. ¡j|¾� page ���q}%u¿v{xq�j¤{³ MIME À�Á7� text/html u¿°7���gnq� big5

( ÂlÃ�Ä�u¿|¾� contentType �g¤y qÅ�uÇÆ7� java È��¾��É7ÊtË�´lÌÍu�Î��q³�Ï�ÐlÑ'ÒgÓgky°7�� UNICODE uÕÔ�vyxjk¾Ö�×lÈ�� big5 ½y°7�9k]uØÎj�{�g¤y q��¤ charset=big5 Ù7Ècharset=MS950 u java Ú7ÛlÜg qÝl¥�¦ßÞgà�� big5 Ù MS950 uÇ�gáy�y��âjã�äæåjçlkyÈlè¾� )

Page 36: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

33

2. ~¾éy�g©gª import="XXXXXXXX" u¿Èyê�ë{ìy¡j|7�lm�n¾}�í�îyç�k package u java ¸æ¹�ïæðñgò k package uÕ¼g®�½y�»uد�óqì� �îqç�¬�ô{õ»u¿ì'�g¤y 'îqç Connection ± Statement «ResultSet u¿ìq¯'ólöq÷y��¤q �î¾ø�ù package u java Ègú�ígûyì{ü{ýjkVuØÎj�yvqxq�' y£j¤import="java.sql.*"( ƾ�{|qþyÿ'Èy©g¢ java.sql k package)

page ñ î�©lªl¯l� ( ��ïA���{k¾éq�g©lª����Vuw³���k¾©gª�� ��î )

� JSP ����������������---page � �� �� �� �

©lª êgëjÄ��

contentType |¾�g©gªg£j¤ MIME k7ÀjÁ�«l°y�j�ln

import |¾�g©gªj¤��tmjn{ílîqçyø�ù package u���ïæ|y�{©lª������¾£j¤���uÕ³ ��k�©ª{o����y£j¤{���

session �7£j¤ true Ù false u�¯'ó�öq÷7£j¤lk �»u��y£g¶'È true uw|y�{©lªgêlë�|7�'¥¦tÈ��y ���î session

errorPage

£�¤7¯ló{m�n �� t®�� !�"�#]uw �$%yçyø{�'¥j¦Zu�®l¯ index.jsp }g¯�óg|�&£�¤

<%@ page errorPage="err.jsp" %> u('�&*) index.jsp +q��,{m�÷�!�"�#VuTOMCAT í7Ý�ì�$�%qç err.jsp u.-tú�í0/'ìqå'ç�!�"�1��32

isErrorPage �7£j¤ true Ù false u�¯'ó�öq÷7£j¤lk �»u��y£g¶'È true uw|y�{©lªgêlë�|7�'¥¦tÈ��yÈgü{ýq®*��4�5jky¥j¦

isThreadSafe

�7£j¤ true Ù false u�¯'ó�öq÷7£j¤lk �»u��y£g¶'È true uw|y�{©lªgêlë�|7�'¥¦tÈ����{ü{ý6�,��¾���7��k¾Â�7]u¿¯lógÈ false k �%u(''|¾��¥�¦y������qüý'�¾� Thread( '*)�8qÈ{  true 9»u;:�í<{ l|7��¥�¦y������qü{ý��¾�request)

language £�¤{|¾��¥j¦yk7´�µ{È'î¾ø��¾ÿ»u=�q£�È java u�>�½����{÷g³��g´�Ì'k0?�@

buffer |¾�g©gªg£j¤0ACBED{È��q÷F�GIH�uJ�7£j¤�K none( ö{÷�F�GIH ) Ù{³L�MjÒ ( ¯ó7£j¤�K 10 uØêlë�FLGNH�£j¤�K 10K) O�¯'óg|7�l©lª�öy÷y£j¤lk0�»uJ�7£�F�GH¾È 8K 2

� JSP ����������������---request � �� �� �� �

)P�jî Qq¡'âjã�ä��R�S�Tt��¥j¦�u;��U�²t¢lÑ�|7��V�W9äYXZB�ï request( Â�7 ) u(VW�äßÝ��î Q�<{ 'k�¬º­�[IB]\�u |¾��È response( ^ _ ) u ¡ jsp }�u request ` response o�È�aLbc5�uú'î�d ey����� ��î�ïuw|y��f�gZu¿Ý�h�i request kgîqµj2

Page 37: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

34

)y�¾��â�ãläºÑV�W9äEXZB request k¾Â�7#Íu;k�@g��í¾Ý��î Q*lPm�kq�qùj¬�­l¯ IP n�oV±HOST

�p Ù7â�ãgäE?�@j²l¬�­��Pq�[gçLV�W�ä�usr� f �jî Q�t�[j¬�ô ( ®l¯l�l¥�uv�¬�ôjÙw cj² ) u |{ù�¬ºôgz�í�[gç�VW�ä�ü{ý]uJ- jsp �*x request |7��c�5VuÕ½�y�zg�7����î0Q�k�§¨g¬º­g«�¬�ô{2

��� � � � � � | ¯l÷��¾�'¥�¦7 �7¾ìA�}�~ � «{ª��+u�1���¯��

ÂA�}~ �»� Â�A�}gª�� �

³ htm �lsy��¯l� �

<form name="formtest" method="post" action="test.jsp">

ÂA�}~ � � <input type="text" name="username" size="8" maxlength="4"> ÂA�}lª�� � <input

type="text" name="sex" size="2" maxlength="1"><input type="submit" name="b1" value=" [�B">

</form>

|7� Form Ñ test.jsp [IB request u ¡j|7}��jîLQl �A�}léq��¬tôÍu¿�¾���0X username u�rq����0X sex u test.jsp ��y{|7��¬�ô�k7´�µy¯�� �

request.setCharacterEncoding("big5");

String username=request.getParameter("username");

String sex=request.getParameter("sex");

~q����Èy£j¤q�y��âjã�ä7ky°7��u ƾ� java ��î'É7ÊtË�k UNICODE ü{ý'ÒI�qu Îj�y �e� java

�7�lâ�ãläyk¾°q��È big5 u java Ú��L����k7Ý big5 Þgà�K unicode ½7ü{ý+u�- ��|l�t�����l ¡ getParameter �l��Ug y£�¤ e u�£j¤{������%u �jú��� ��{£j¤9ïC2

~¾éq«�~¾þy���lÈ7p request �, getParameter kq�{µ u(���j�7��tj½lk username « sex k¬�ô�2

��,l|7�j�gnVu jsp �����0���jî Q�t�[�½lk�¬ºô���y��'½ X����güqý ( ®l¯�[��j¬ºôgõ���� ....

²g² )

r���{÷��¾���9¬�ô�kg�qµ � request.getParameterValues() u ¡�rq�7��f�gtÅj�Lh�ij2

�� � � � � �

�y����Bt�qù ñ îgkq�gµ

Page 38: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

35

request ���9¬�­jk{�{µ �'î

request.getRemoteAddr() �����jîLQ�k IP n�o

request.getRemoteHost() �����jîLQ�kg�0� �p

request.getRequestURI() ����Â�7lk URL 2 request.getMethod() �����jîLQt�[j¬�ôjk{�{µ (GET Ù POST)

request.getProtocol() �����jîlk �{­��'¤ (HTTP/1.1 ± HTTP/1.0)

request.getQueryString() ����Â�7lkL��MjÒ���u ú�,��L �Èl�y��t�[j¬�ô�kg�qµ (method) ���È get uÇÚL���{îq|7�j�gµL���lÂ*7qÒ��

¡® � ¯�ó�<q ������î0Q�k IP uØm'nt���'�t¯'� �

String ip=request.getRemoteAddr();

� JSP ����������������---response � �� �� �� �

)P�jî Qq¡'âjã�ä��R�S�Tt��¥j¦�u;��U�²t¢lÑ�|7��V�W9äYXZB�ï request( Â�7 ) u(VW�äßÝ��î Q�<{ 'k�¬º­�[IB]\�u |¾��È response( ^ _ ) u ¡ jsp }�u request ` response o�È�aLbc5�uú'î�d ey����� ��î�ï uw|y��f�g]u¿Ý�h�i response kgîyµ¢2

response c5��y {È{Ý jsp ü{ý�jkq¥�¦g¬�ô»u(t�[lçL��î0Qjk7â�ãgäZu�³lî{µ�£{Ð�¤{¡g£�¤ë¥�Ù��¾��¥�¦���$

�{µ Ä��¾���

setHeader(Header�p

,String Header ¶ ) £�¤yë¥�ÀjÁ¾��Ò*�tk¾¶

setIntHeader(Header�p

,int Header ¶ ) £�¤yë¥�ÀjÁ¾� int k¾¶

addCookie(Cookie cookie) ¦�§ cookie ¶

sendRedirect(String URL) Ýl¥j¦��$7ç�T{�t�'¥j¦

encodeRedirectURL(String URL) Ñg ���$7ç�k7¥�¦ URL ¨l�7°y�

response �q÷�© ò �gµÍu ³L�jkq�gµ{ú ñ îZuØ«ª[��¬N­

¼g®g��� �

1.setHeader(Header��p

,String Header ¶ )

response.setHeader("contentType","text/html;charset=big5");

£j¤7ë¥ contentType k MIME À�Á7� text/html u¿°7���gnq� big5

Page 39: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

36

2.setIntHeader(Header�p

,int Header ¶ )

response. setIntHeader("Refresh",20);

£j¤�^0_jky¥�¦P® 20 ¯�Ul �� ¦�°�¦ ���

3.addCookie(Cookie cookie)

Cookie mycookie=new Cookie("isLogOk","true");

// ¡ Server ��±�²�ïæ�7� Cookie c�5

response.addCookie(mycookie);

// Ý mycookie [gçL��î Qjk7â�ãgä

4.sendRedirect(String URL) ñ �Ý�³{¢jÙqú�³q¢ITº��´�5jkP��î Qµ�ç�r{�¾�'¥j¦t� u ®l¯��jî Qq¡ login.htm A�}�¶{�· �»u login.htm Ý���î Q�A�}�k�¬tô�[¸ check.jsp X¹*ºVuد�óL¹�ºL�,+u ��[�¸ input.jsp

X�üqý�u�¯lóL¹�ºyú��,Íu �lÝ�jîLQ*��$�^ login.htm u»/��jî Q*� ¦ A�}�u check.jsp ¹�º{kDym{���t¯�� �

if ( ��, )

{

response.sendRedirect("input.jsp") ;

}

else

{

response.sendRedirect("login.htm");

}

5.encodeRedirectURL(String URL)

£j¤ URL  {°y�¼2L�¾��kt®�½qz����y|�&�¾response.sendRedirect(encodeRedirectURL("login.htm"));

|7��¾7µL`����gk�¾¾µ�¿jî�À Á'�0 u('�È�Æt� login.htm olÈ�Ã�Ä u¿ú�Åt ��r�y°y� uÕÔ�÷ù URL ¥�o�È ò ��´lÌ'k�u z�Æ'÷NÇEÄlÙ{³L�g´'Ì/uÕ|�#EÈj|7� URL �ÉÅ� Ê�,g°y�Vu ¯�ólö÷{°7� u;'�ù URL �jí�Ë�K�èt�¼2

� JSP ����������������---session � �� �� �� �

Page 40: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

37

¡j|¾��f�ggr�s����Íu�vyx�Ì< f �{� � Í È�T���¥�Î'kqí�Ï�u=�l �Ð }'¥�Î�Ñl� w c»u;�q¡ login.jsp �{���kL¶g� · �%u;Ò�Ó��,��»u(V�W�ä]� · µ�ç list.jsp âjã¾¥Îg�'k�ÔPc+uÕ)0��S e  IÖ¾k�ÔEc�� �× w ï�uØV�W�ä�Ù� · µ'ç buy.jsp üqý�×*Ôqk�4�Ú�2 Í |7��Û��¾¡ login.htm �g�¶g� · ��uÜV�W�ä0�, login.jspÝ Ò Í Èy��³�µ�Þßjkgí�Ï�u Ô'È list.jsp ` buy.jsp ��î0Q�ú*Åt {�¶l� · �ZuàV�W9ät y¯�á ÝÒ�⾡��l½lk Í �{ÈIã�äåÙlÙ0Q�÷�ÛLæ�@U�ú¾p login.jsp ��}l¥�Î�uç��èL�{p list.jsp Ù buy.jsp

�l½Vu;'�úUé�,�ïå¶l� · ��kP¹*ºCä

 �ê�ë{|¾�ZìYí»uÇ�qµg÷L© ò uJ�'�{î html ´'µlk <input type="hidden"> kg�qµ u Ù Q�Èî cookie u Ô�È'�¾��îtÿ��gµlk ï�Ágª��{ú�ðZuñ_�ò�î session ½ ê�ë{|y�NìPí¢2�ó�Úlk�ìPí%u¯�ó�� session k�D7mj½tå%u Í ��, login.jsp �L}�¥Î+uØV�W�ä7í�¸��j�t�ô��õqé�k7°{��Ó�0��UlÈ Í ( U egf ®g��Ûyo�÷�öL¤Ó�Ò7��us- �qo�ú�í���� ) u�¯lógÈNãE�l½L� uØVW�äßz�¸��¾��ô��õqé'ky°g��2 |¾��ôj�õyéjk7°{��UgÈ sessionID 2 |7� sessionID í0÷�[lçL�jîLQ�kâ�ãgä{Ï�u=)P��î Q�ç{âjãy³L��¥j¦�#�u â�ãlä¾íL�'|y� sessionID [lç V�W�ä uñV�W�ä �����ø Ñ�â7¡�½lk7È Í Ù7ÈZãÉ2

1. ¯�óqì�<q qå�ì'k sessionID ùLú�&�Â�½�uØ´�µ�_�ò'|�&*¾

session.getId();

2.Í Ù�ãE�L}'¥�Î u;VW�äºo�í�û�üL®{��Ûl�¾� session c5»u(®g��Ûqolú�í���� u Í Èlí�Ï�u

A�}�ïý¶g� · ��������,þ�ÓVu |y�V�W�ä0���t¡��jk session ��Xg��ÿ{�Zu ë������,�ï þÓ u

session.setAttribute("LogOk","yes");

|7��Ä��yÈq�+uØV�W9äß¡ Í k session Ï�� ïæ�¾� LogOk k�©lª+u · k7¶lÈ "yes" 2 )�8¾z����������k���u��¾¯{��� Í A�}jk ¶l� · ������\

session.setAttribute("userid","Í ÎA�}�kL¶{� ");

session.setAttribute("userpass","Í Î�A�}jk · � ");

( ÂlÃ�Ä u |{ù Attribute kl¬�­golÈ��{¡ Server Ï u úlí0÷�[�çL�jîLQ�k7â�ãlä{Ï�uÕí�[lçqâjãäyk��q÷ sessionID - C2ǯ���Ú�����¾§�¨{¬�ô�úL÷�Û�����2 ) Í �,�þÓ���u»V�W�ä ��� · $�%qç list.jsp X�ü{ýj2 (response.sendRedirect("list.jsp");) ãæúgÈí*Ï�uÕ)0�qp login.jsp ��\��%u�ö���µ���,�þÓ»uØ¢�È�÷N$�%�^ login.jsp � ¦ A�} · �(response.sendRedirect("login.jsp");)

3.Í ÷I$�%yç list.jsp u list.jsp �E&gÛlÜ Í ��,�ï þÓVu=-P���E&�Ó9� · È Í�� ä ��� ��,g���y�µL��ó�Ú�¡ session �gÎ�X�k ÿg���ÉBt½

String LogOk=(String)session.getAttribute("LogOk");

String userid=(String)session.getAttribute("userid");

String userpass=(String)session.getAttribute("userpass");

��, getAttribute ��� LogOk kt¶�uà\L¹�ºq�{� LogOk È���²º¢ "yes" U{ÛlÜl|7��Û{÷�öy÷��,

Page 41: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

38

þÓ�ï usr�¾z�����ï Í A�}�kL¶{�g« · � u=�'�L\�¬�ôgõ ø Ñ�⾡��l½lk7È��qÈ Í |¾��Ûj2

(  {Ã�Ä{k7È session.getAttribute("") kq���]uÕ¡�|y�{®�½l½��»uw yÅ (String) u Æt��,setAttribute kq�gn0��� session ÏqkyÈy��c�5 (Object) u(�ZB�½�#]u¿ j� Ý e� java

· È�ú�&c�5+uØÎj�y �î (String)session.getAttribute("LogOk") 2��ßý»u¿¯ló7¡���� session #7ÈgÈL���� ResultSet u;'��ZBt½t�j �î (ResultSet)session.getAttribute("....");)

-�ãß|7��Û � uJ�{ú����Íu login.jsp �qú�½Vu;����<����l½]uJèL��� list.jsp u��YÂjkVu�m'n¾psession Ï� ÉBºÈ��q÷ LogOk u · k¾¶lÈlú{È�²�¢ "yes" uد'ó{úgÈ�u(©�!#"»u�Ù � · $�^qçlogin.jsp 2

��, session kg�gnVuJ��� X'çqÑ��7�¾���î0Qq¡�ú$�yky¥j¦P��%{¬�ôjk�û#&j2sk�@g��½7�»utomcat Ñ�®��¾�'¥�¦L�l½lk�Ûyo�í ±�² session u�³{÷�'�#�%{Ïq¤q� 30 û)( uد'ó�6�,{þ*û(��jî Qgo�öy÷��gâjã�+�á�¥�¦uÕ³ sessionID ��í�,�'Vu=)�8�¡ session ϺÎ{£�¤L,q©gªlz'í- , 2J��î Q��*� ¦ ��½Vu��'È�rq�7� session ïÉ2

�y��k session �{µÍu/.Ln�������0{ågå �

session.setAttribute(" ©lª � ", ©gªg¶ )---- Ý�¬�ô���} session

session.getAttribute(" ©gª � ");---- p session ����¬�ô

session.setMaxInactiveInterval(" ¯M ");--- £j¤ session k7÷�'�+q��##% ( 1 n � ¯ )

session.getMaxInactiveInterval();---- ��� session k7÷�'+q��#�% ( 10n � ¯ )

session.isNew();---- 2#3{|7� session È{úlÈ ¦ kVu¿È�k0��t�^ true, ����t�^ false

session.invalidate();---- 4)5 session Ç�3 u ñ î�¡���î Q�Ð*B #

session.getCreateTime();---- ��� session ±�²'k�##%Zu�³y¶�� long ¶ 2

session.getLastAccessedTime();---- ��� session 6L��kP����#7%

r�Vuد�óg÷{ùl¥j¦�uØæ�@�Ugú*Åt �±�² session u¿ {¯�á�� · ¨�83ä _òq¡ page k�9'�¾£j¤session="false"

® � <%@ page contentType="text/html;charset=big5" session="false" %>

¯7�Íu�|7�'¥�¦º��úlí�±�²:+�á session c�5

� JSP ����������������---application � �� �� �� �

¡��t� web _�î7m'n�Ç ( � ñ �¾�9¬�ô�;PU�Èl�¾��_jî7m'n ) í �� g�¾� application c�5»uw|7�_jîtm�nq÷�Æ ò k jsp ¥�¦u |qù jsp ¥j¦ºojíP���<�y�¾� application c�5Vu>=0����î QlúlÈ?��¾�»uØz�í0���g§@�7k application c5%u Æ�� u application c�5�����A'¥j¦ û�&'¬�ô»u�z����A'ú?��B�Ñ ( ú?�yk�Û ) ûC&�¬ºô{2

application k{îqµ

1. Ý�¬ºô���} application

application.setAttribute(" ©gª ��p ", ©gªg¶ );

Page 42: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

39

2. p application �ZBy¬�ô

application.getAttribute(" ©lª �p ");

³Lt*^t¶�UgÈ�*^qk'¬ºô%u¿ú,�t�^t¶lÈc5�ÀjÁ (Object) u Å� yÞ{à�K�D Ý k c�5

À�ÁqÚ����jîVu�®g¯ String str=(String)application.getAttribute(" ©lª �p ");

3.application ¬ºô�k�E��

application.removeAttribute(" ©gª �p ");

�y�yФlm�n��$�¡¯�áFL¿�ÄlÒ�G�M�ä

<%

String strcount=(String)application.getAttribute("count");

// p application Ç]��� count kt¶»uIHqÝ · Þ�K String c5

if (strcount==null)

strcount="0";

// ¹�º appliacion È��y÷ count k¾¶�uKJjöy÷ u»�CB¾½gk��77È null ¶+u�Îj� strcount ¸�Lg¶0

int count=Integer.parseInt(strcount)+1;

// Ý strcount Þ�K int HyÅ 1 u�Ý�³7¶�¸ count Ë0M

strcount=String.valueOf("count");

// �{Ý count ¶{Þgà�K�Ò���ML¸ strcount

application.setAttribute("count",strcount);

// Ý ¦ k strcount kt¶��y£j¤�^ application Ç/uØ/j³L��ÛqÛgÜ count ¶N �O�Ë

out.println(" ìgÈj~ "+strcount+" ½�P�k�QÛ ");

// Ý{ÅSR ��kPMjÒ�T��t¡j¥�¦t�

%>

� JSP ����������������---jspInit() jspDestroy()

USVXWZY�\[����^]^_<`^acb^dZeZf

YNgjsp hji����Xk\lXmonqp@lXmsrut@vonwyxZz lXm|{@}~r��q[����@�Z�X�

gjspInit() {q�<`j�@��� jspInit() �$`�f z

gjsp

hji����Xk\lXmonqp z l\m��:�7�|{�rUSV^Y

�X[����Z]^_�`Sdceg���c�Z�

n�rK�N���\[c�N�Z�X�|]?�Z�o{<}~rK�X[����<�Z�q�g

jspDestroy() �<`X���N���jspDestroy() �<`jf z

gjsp �|�9���S�^�\]�b JSP �|�\�Z�\{qn w p z lXm��

k�� jspInit() ��� jspDestroy() �S 9���<`j¡N¢|£N¤

g<%! %> �¥r§¦X¨

UZ©«ª

Page 43: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

40

<%@ page contentType"text/html;charset=big5" %> <%! public void jspInit() { // �N�c¬^­ jspInit ®\lXm|{����

} public void jspDestroy() { // �N�c¬^­ jspDestroy ®�lXmo{9���

} %> <% // �N�yb

W{ jsp �/�

%>

� JSP ����������������--- � � � � � � � � � � � � � � � � � � � �

�°¯²±Z³@´�{@µq¶ ����·

US©«ª

FileReader fr=new FileReader(" ´|¸q{<¹\ºc»q´^¼ "); // ½c¾���^¼q¿jÀ fr { FileReader Á^ÂÃr§Ä^ÅqÆX´o¸�¹\ºc�^´^¼qÇZÈ BufferedReader bf=new BufferedReader(fr); // ½c¾���^¼q¿jÀ br { BufferedReader ÁqÂÃrÉÄqÅqÆ fr ÇZÈ String str=null; String line=null; while ((line=bf.readLine())!=null) { str=str+line; } //br.readLine() �Xk z µ��@mÊr§µSËN´o¸@ÌZÍ«r line Î zSÏ?Ð null br.close(); fr.close(); // ÑNÒj®\Æ br � fr �Ó ---------------------- Ô �q´o¸@ÌZÍ (line==null) r str {cÕ@�NÖybZ±Z³<´|{ZÕN� ׯ)Ø�Èy±^³@´

(1) � FileWriter

Page 44: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

41

FileWriter fw=new FileWriter(" ®@�Z�|{<´o¸$¹\ºc»^´^¼ "); fw.write(" Ù�Úy±^³<�Z´ "); fw.write(" Û x ÛS� ");

fw.close(); --------------------------------------------------------------------- �N­��Z´|{�´o¸ZÕ@�ZÀ

ª

Ù�ÚS±Z³<�^´SÛ x Ûy�

�^�@­j{qÜ��<�Z´ÃrÝ����� write Ø�È�{\±Z³ z<Þ

gjß���cà\�Êrâá xczqã m¥rä ® ã m¥rÉÛy�^�

©Ü �

( ]�b�åNæ ã mÊr write åNæ#» "\n")

(2) � FileWriter »Z­ BufferedWriter FileWriter fw=new FileWriter(" ®@�Z�|{<´o¸$¹\ºc»^´^¼ ");

BufferedWriter bw=new BufferedWriter(fw); bw.write(" Ù�ÚS±Z³<�^´ ");

bw.newLine(); bw.write(" Û x Ûy� ");

bw.newLine(); bw.close(); fw.close(); --------------------------------------------------------------------- �N­��Z´|{�´o¸ZÕ@�ZÀ

ª

Ù�ÚS±Z³<�^´ Û x Ûy�

(3) � FileOutputStream »c­ PrintWriter FileOutputStream fos=new FileOutputStream(" ®<�Z�o{�´o¸�¹\ºc»^´^¼ ");

PrintWriter pw=new PrintWriter(fos); pw.println(" Ù�Úy±^³<�^´ "); pw.println(" Û x ÛS� ");

pw.close(); fos.close();

Page 45: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

42

5.2���� MySQL+phpmyadmin ç Ë Application Server réè xëê ®Nìîí�ïqðZÌXñ , róò@ô\õo� MySQL í�ï^ðqö°�÷SøSù fSú$ûcü�ýqþÿ����� r

Y� MySQL ����ÕN�qÛ��� MySQL í<ï^ð SOP �

5.2.1���� � �� �� �� � MySQL�0 � 1 2�0 � 1 2�0 � 1 2�0 � 1 2

� service mysqld start ��� MySQLª

[root@ossc tomcat5]# service mysqld start Starting MySQL: [ OK ] ��

��� MySQL � r��<Àyí�ïqð����^ô�����Y��

· r>½��qõo�ß�����

! �"�Zô�·¥r�# �

©�$Ü ����%

�·«�

mysql>c &�'&�'&�'&�'

root (�)(�)(�)(�) mysql>update user set mysql>password=password('1234') mysql>where user='root'; mysql>flush privileges mysql>exit password=password('1234') r+*-,-.^®

�· 1234 r password(1234) b0/�1

1234 2\·�3jp<�54yí<ïqðë�/���|n w�·�6-�

Y-7È ! r>¡�¢ flush privileges

p z�8�9 �

5.2.2���� � �� �� �� � phpMyAdmin

phpMyAdmin byè5:�{ PHP ;-< ����·o{ Web h�=�r�ÛS�X���>�5?��

MySQL @�A � ru�qb��B Web C�DX{ MySQL �"���� rFE"GIH$±Z{�õo�<ô-CD �

phpMyAdmin f5J>K�3-L�Mc��ÎqÛ5��� MySQL @�Aÿ� r+NPO}�Q r x�R

MySQL bS-Tg

Linux ]�b Windows �VU ! rFWSÛy�$õo��þ ���0�

g

Page 46: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

43

MySQL ­X½S¾jí$ï^ð (Database) ¯�í�ï�, (Table) X�2�Y�Z\[ (Record) �

]0^]0^]0^]0^1 __ __©-7

phpMyAdmin ( http://www.phpmyadmin.net ) ra`0b�c\ñj{�d ÷

e ªwww.phpmyadmin.net

]0^]0^]0^]0^

2 __ __§Æ phpMyAdmin-2.6.0-pl2.tar.bz2©-7�f

/tmp , ÄqlXm©�$/�g

ª

# tar jxvf phpMyAdmin-2.6.0-pl2.tar.bz2–C /var/www/html ÆSt0h�i�j

f/var/www �

]0^]0^]0^]0^

3 __ __ À êlk ��Ü�Ö�mVn°r§½S¾ Soft link �

[root@ossc /var/www/html]# ln -s phpMyAdmin-2.6.0-pl2/ phpMyAdmin [root@ossc /var/www/html]# ls -l total 4 lrwxrwxrwx 1 root root 21 Oct 19 04:56 phpMyAdmin -> phpMyAdmin-2.6.0-pl2/ drwxr-xr-x 7 52400 users 4096 Oct 13 01:40 phpMyAdmin-2.6.0-pl2 ]0^]0^]0^]0^

4 __ __Fo�

phpMyadmin ��%<´ config.inc.php # gedit /var/www/html/phpMyAdmin/config.inc.php

Page 47: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

44

e ªconfig.inc.php �p%@´

]0^]0^]0^]0^

5 __ __+��%0q�r@m�s��q��o�

config.inc.php ��%<´

Page 48: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

45

e ª q�r@m�s

]0^]0^]0^]0^6 __ __Fo

�N©�$��% rut<����� WWW server

� 39 m ��% phpMyAdmin { URL � 69 m MySQL Server { ip � 80 m

�"v�w�s\�Z¶ MySQL � 81 m

UcVroot

Y��% password ryx0zp{�|^È root { password

30 * In most cases you can leave this variable empty, as the correct value

31 * will be detected automatically. However, we recommend that you do

32 * test to see that the auto-detection code works in your system. A good

33 * test is to browse a table, then edit a row and save it. There will be

34 * an error message if phpMyAdmin cannot auto-detect the correct value.

35 *

36 * If the auto-detection code does work properly, you can set to TRUE the

37 * $cfg['PmaAbsoluteUri_DisableWarning'] variable below.

38 */

39 $cfg['PmaAbsoluteUri'] = 'http://ossc.cosa.org.tw/phpMyAdmin';

….

….

69 $cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address ….. 80 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user

81 $cfg['Servers'][$i]['password'] = '1234'; // MySQL password (only needed

Page 49: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

46

e ª o�

config.inc.php

e ª o�

config.inc.php

[root@ossc /var/www/html/phpMyAdmin]# service httpd start Starting httpd:

Page 50: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

47

]0^]0^]0^]0^7 __ __~}��}��}��}�� phpMyAdmin

e ª lXm phpMyAdmin

5.3���� - . / 0 � �- . / 0 � �- . / 0 � �- . / 0 � �

5.3.1���� 3 4 5 � � 6 73 4 5 � � 6 73 4 5 � � 6 73 4 5 � � 6 7

���-LpM�ô�LpM Ô���-� C�D 1.news.jsp --------

Ô��� ¤$,

2.view.jsp -------- LpM � ¤�ÕN� �����-��������-��������-��������-���

1.login.htm ------- �"�^ô��NÈ5��D 2.check.jsp ------- ���\w-s

�·����

3.list.jsp -------Ô��� ¤

$,

4.addfrm.jsp -------Ô��5�-������ È5��D

5.add.jsp -------���-���� �Z����

6.editfrm.jsp ------���-� o

� � ���D 7.edit.jsp -------

������ o��Z�����

8.del.jsp ------- ��� � ¤���� 9.topmenu.jsp ------ `-�-��D

Page 51: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

48

10.conn.jsp ------ í$ï^ð��ZÌ���� 11.news ------MySQL í�ï^ð

5.3.2���� 3 4 5 � �3 4 5 � �3 4 5 � �3 4 5 � � 8 98 98 98 9

���� news.jsp �� ��F������5���������5���������5���������5�������� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%! public void jspInit() { String vPath=getServletConfig().getServletContext().getRealPath("/"); String count=null; try { FileReader fr=new FileReader(vPath+"count.txt"); BufferedReader br=new BufferedReader(fr); count=br.readLine(); br.close(); fr.close(); } catch (IOException e) { count="0"; } finally { getServletConfig().getServletContext().setAttribute("count",count); } } public void jspDestroy() {

Page 52: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

49

String vPath=getServletConfig().getServletContext().getRealPath("/"); try { String temp=(String)getServletConfig().getServletContext().getAttribute("count"); FileOutputStream fos=new FileOutputStream(vPath+"count.txt"); PrintWriter pw=new PrintWriter(fos); pw.println(temp); pw.close(); fos.close(); } catch (IOException e) { } } private String getTodayStr() { Calendar cl=Calendar.getInstance(); cl.setTime(new java.util.Date()); String Temp=""; int i=cl.get(Calendar.YEAR); if (i>1911) i=i-1911; Temp=Temp+i+"/"; i=cl.get(Calendar.MONTH)+1; if (i<10) Temp=Temp+"0"+i+"/"; else Temp=Temp+i+"/"; i=cl.get(Calendar.DAY_OF_MONTH); if (i<10) Temp=Temp+"0"+i; else Temp=Temp+i; return Temp; } %>

Page 53: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

50

<% int i; String count=(String)application.getAttribute("count"); i=Integer.parseInt(count); i++; count=""+i; application.setAttribute("count",count); %> <%@ include file="conn.jsp" %> <% String todaystr=getTodayStr(); String qrystr="select A.newsid,A.bdate,A.title,B.unit from news A,user B where A.userid=B.userid and A.bdate<=? and A.edate>=? order by A.bdate desc,A.sdate desc"; PreparedStatement stmt=con.prepareStatement(qrystr); stmt.setString(1,todaystr); stmt.setString(2,todaystr); ResultSet rs=stmt.executeQuery(); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> ������� ������ </title>

</head> <body> <p align="center"> ������� Ô����-� </p> <p align="right"> Ë0 �¡0¢¤£ <%=count%></p>

<hr> <table width="100%" border="1"> <tr> <td width="10%">

�¥§¦</td><td width="80%">

�¥0¨-©</td><td

width="10%"> ª�«5��¬ </td>

</tr> <% while(rs.next()) { %> <tr>

Page 54: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

51

<td><%=rs.getString("bdate")%></td><td><a href="view.jsp?newsid=<%=rs.getString("newsid")%>"><%=rs.getString("title")%></a></td><td><%=rs.getString("unit")%></td> </tr> <% } %> </table> </body> </html> <% rs.close(); stmt.close(); con.close(); %> ���� view.jsp �� ��®­p¯0��p°�±­p¯0��p°�±­p¯0��p°�±­p¯0��p°�±²���� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%! private String getTodayStr() { Calendar cl=Calendar.getInstance(); cl.setTime(new java.util.Date()); String Temp=""; int i=cl.get(Calendar.YEAR); if (i>1911) i=i-1911; Temp=Temp+i+"/"; i=cl.get(Calendar.MONTH)+1; if (i<10) Temp=Temp+"0"+i+"/"; else Temp=Temp+i+"/"; i=cl.get(Calendar.DAY_OF_MONTH);

Page 55: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

52

if (i<10) Temp=Temp+"0"+i; else Temp=Temp+i; return Temp; } %> <% String todaystr=getTodayStr(); String newsid=request.getParameter("newsid"); if (newsid==null) { response.sendRedirect(response.encodeRedirectURL("news.jsp")); } else { %> <%@ include file="conn.jsp" %> <% String qrystr="select A.newsid,A.bdate,A.title,A.content,B.unit from news A,user B where A.userid=B.userid and A.bdate<=? and A.edate>=? and newsid=?"; PreparedStatement stmt=con.prepareStatement(qrystr); stmt.setString(1,todaystr); stmt.setString(2,todaystr); stmt.setString(3,newsid); ResultSet rs=stmt.executeQuery(); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> �������\³ ����� </title>

</head> <body> <p align="center"> ��������³ ���-� </p>

<hr> <% if (rs.next())

Page 56: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

53

{ %> <table width="100%" border="1"> <tr> <td width="10%">

�¥§¦</td><td width="80%">

�¥0¨-©</td><td

width="10%"> ª�«5��¬ </td>

</tr> <tr> <td width="10%"><%=rs.getString("bdate")%></td><td width="80%"><%=rs.getString("title")%></td><td width="10%"><%=rs.getString("unit")%></td> </tr> <tr> <td width="10%">

�¥�´�µ</td><td

colspan="2"><%=rs.getString("content")%></td> </tr> </table> <% } else { out.println("<p align=center> ¶5·�¸�¹�º-»"¼¾½ </p>");

} %> <p align="center"><input type="button" name="b1" onclick="location.href='news.jsp'" value=" ¿\À�Á "></p>

</body> </html> <% rs.close(); stmt.close(); con.close(); } %>

- ! : . /- ! : . /- ! : . /- ! : . /

Page 57: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

54

1.login.htm �� �� ������Â�Ã5Ä�ÅÆ�Ç�È�Â�Ã5Ä�ÅÆ�Ç�È�Â�Ã5Ä�ÅÆ�Ç�È�Â�Ã5Ä�Å �� �� <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> É�Ê5Ë�Ì </title>

</head> <body> <p align="center"> ³�Í�Î�Ï0Ð ¥�Ñ�Ò-Ó É�Ê </p>

<form name="form1" method="post" action="check.jsp"> <p align="center"> Ô-ÕÖ£ <input type="text" name="userid" size="10"

maxlength="10"><br> ×�Ø £ <input type="password" name="userpass" size="10"

maxlength="10"></p> <p align="center"><input type="submit" name="b1" value=" É\Ê "></p>

</form> </body> </html> 2.check.jsp �� ��ÚÙVÛ\Ü-Ý�Þ\ß-à�áÙVÛ\Ü-Ý�Þ\ß-à�áÙVÛ\Ü-Ý�Þ\ß-à�áÙVÛ\Ü-Ý�Þ\ß-à�áâ���� <%@ page contentType="text/html;charset=big5" import="java.sql.*" %> <% request.setCharacterEncoding("MS950"); String userid=request.getParameter("userid"); String userpass=request.getParameter("userpass"); if ((userid==null)||(userpass==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <%@ include file="conn.jsp" %> <% String qrystr="select * from user where userid=? and userpass=?"; PreparedStatement stmt=con.prepareStatement(qrystr); stmt.setString(1,userid); stmt.setString(2,userpass); ResultSet rs=stmt.executeQuery();

Page 58: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

55

if (rs.next()) { session.setAttribute("logok","yes"); session.setAttribute("userid",userid); response.sendRedirect(response.encodeRedirectURL("list.jsp")); } else { response.sendRedirect(response.encodeRedirectURL("login.htm")); } rs.close(); stmt.close(); con.close(); } %> 3.list.jsp �� ��F���5�0�5�����5�0�5�����5�0�5�����5�0�5����� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <%@ include file="conn.jsp" %> <% PreparedStatement stmt=con.prepareStatement("select newsid,bdate,edate,title from news where userid=? order by bdate desc,sdate desc");

Page 59: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

56

stmt.setString(1,userid); ResultSet rs=stmt.executeQuery(); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> Ð ¥�ä0å </title>

</head> <script language="javascript"> function DoEdit(newsid,action) { document.form1.newsid.value=newsid; document.form1.action=action; document.form1.submit(); } function DoDel(newsid,action) { document.form1.newsid.value=newsid; document.form1.action=action; if (confirm(" æ-ç"è�é�ê5ë�ì5º�»"¼îí ")==true)

document.form1.submit(); } </script> <body> <form name="form1" method="post" action=""> <input type="hidden" name="newsid" value=""> </form> <%@ include file="topmenu.jsp" %> <table width="100%" border="1"> <tr> <td width="10%"> Ð ¥§¦ </td><td width="10%"> ï-ð ¦ </td><td width="70%"> Ð ¥0¨-© </td><td width="5%"> ñpò </td><td width="5%"> ê5ë</td> </tr> <% while(rs.next()) { String newsid=rs.getString("newsid");

Page 60: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

57

%> <tr> <td><%=rs.getString("bdate")%></td><td><%=rs.getString("edate")%></td><td><%=rs.getString("title")%></td><td><input type="button" value=" ñVò "

onclick="DoEdit('<%=newsid%>','editfrm.jsp')"></td><td><input type="button" value=" ê5ë " onclick="DoDel('<%=newsid%>','del.jsp')"></td>

</tr> <% } %> </table> </body> </html> <% rs.close(); stmt.close(); con.close(); } %> 4.addfrm.jsp �� ��F����ó-ô\��õ�ö Ã�Ä-Å����ó-ô\��õ�ö Ã�Ä-Å����ó-ô\��õ�ö Ã�Ä-Å����ó-ô\��õ�ö Ã�Ä-Å �� �� <%@ page contentType="text/html;charset=big5" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <html>

Page 61: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

58

<head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> ³�Í�Î-Ï�Í÷ </title>

</head> <script language="javascript"> function CheckFormData(obj,str) { val=obj.value; if (val=="") { validatePrompt(obj," ø0è�éù�Êûú "+str+" üý½ "); return(false); } return(true); } function CheckDate(obj){ val=obj.value; if (val.length!=8) { validatePrompt(obj,"

¦ÿþ��������8Ø

YY/MM/DD");

return(false); } i=0; for (i=0;i<=7;i++) { str=val.charAt(i); if ((i==2)||(i==5)) { if (str!="/") { validatePrompt(obj,"

¦ þ���� ·�� ��� YY/MM/DD");

return(false); } } else { v = parseInt(str); if (isNaN(v)) {

Page 62: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

59

validatePrompt(obj,"¦ÿþ ��� ·��� ��� YY/MM/DD");

return(false); } } } return(true); } function CheckData(form) { if (!CheckFormData(form.bdate," Ð ¥I¦ ")) return(false); if (!CheckFormData(form.edate," ï�ð ¦ ")) return(false); if (!CheckFormData(form.title," Ð ¥���� ")) return(false); if (!CheckFormData(form.content," Ð ¥�´�µ ")) return(false);

if (!CheckDate(form.bdate)) return(false); if (!CheckDate(form.edate)) return(false); return(true); } function validatePrompt(Ctrl,PromptStr) { alert(PromptStr); Ctrl.focus(); return; } </script> <body> <%@ include file="topmenu.jsp" %> <p align="center"> Í�÷5Ð ¥ ��ø�ù��� ä »"¼Ö£ </p>

<form name="formadd" method="post" action="add.jsp" onsubmit="return(CheckData(this))"> <table border="1" width="80%" align="center"> <tr> <td> Ð ¥§¦ </td><td><input type="text" name="bdate" size="8"

maxlength="8"></td> </tr> <tr> <td> ï-ð ¦ </td><td><input type="text" name="edate" size="8"

maxlength="8"></td> </tr>

Page 63: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

60

<tr> <td> Ð ¥���� </td><td><input type="text" name="title" size="60"

maxlength="40"></td> </tr> <tr> <td> Ð ¥�´�µ </td><td><textarea cols="60" rows="6"

name="content"></textarea></td> </tr> </table> <p align="center"><input type="submit" name="bsend" value=" ��� "></p>

</form> </body> </html> <% } %> 5.add.jsp �� ��+���ó-ô\��õ�����à5á���ó-ô\��õ�����à5á���ó-ô\��õ�����à5á���ó-ô\��õ�����à5áV���� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <%@ include file="conn.jsp" %> <% request.setCharacterEncoding("big5");

Page 64: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

61

String content=request.getParameter("content"); content=content.replaceAll("\n","<br>"); String insertstr="insert into news (title,content,bdate,edate,sdate,userid,ip) values(?,?,?,?,now,?,?)"; PreparedStatement stmt=con.prepareStatement(insertstr); stmt.setString(1,request.getParameter("title")); stmt.setString(2,content); stmt.setString(3,request.getParameter("bdate")); stmt.setString(4,request.getParameter("edate")); stmt.setString(5,userid); stmt.setString(6,request.getRemoteAddr()); stmt.executeUpdate(); stmt.close(); con.close(); response.sendRedirect(response.encodeRedirectURL("list.jsp")); } %> 6.editfrm.jsp �� ��+���ó�ô�� �"ö Ã�Ä�Å���ó�ô�� �"ö Ã�Ä�Å���ó�ô�� �"ö Ã�Ä�Å���ó�ô�� �"ö Ã�Ä�Å �� �� <%@ page contentType="text/html;charset=big5" import="java.sql.*" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { String newsid=request.getParameter("newsid"); %> <html> <head>

Page 65: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

62

<meta http-equiv="Content-Type" content="text/html; charset=big5"> <title> ³�Í�Î-Ï ñpò </title>

</head> <script language="javascript"> function CheckFormData(obj,str) { val=obj.value; if (val=="") { validatePrompt(obj," ø0è�éù�Êûú "+str+" üý½ "); return(false); } return(true); } function CheckDate(obj){ val=obj.value; if (val.length!=8) { validatePrompt(obj,"

¦ÿþ��������8Ø

YY/MM/DD");

return(false); } i=0; for (i=0;i<=7;i++) { str=val.charAt(i); if ((i==2)||(i==5)) { if (str!="/") { validatePrompt(obj,"

¦ þ���� ·!� ��� YY/MM/DD");

return(false); } } else { v = parseInt(str); if (isNaN(v)) { validatePrompt(obj,"

¦ÿþ ��� ·��� ��� YY/MM/DD");

Page 66: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

63

return(false); } } } return(true); } function CheckData(form) { if (!CheckFormData(form.bdate," Ð ¥I¦ ")) return(false); if (!CheckFormData(form.edate," ï�ð ¦ ")) return(false); if (!CheckFormData(form.title," Ð ¥���� ")) return(false); if (!CheckFormData(form.content," Ð ¥�´�µ ")) return(false);

if (!CheckDate(form.bdate)) return(false); if (!CheckDate(form.edate)) return(false); return(true); } function validatePrompt(Ctrl,PromptStr) { alert(PromptStr); Ctrl.focus(); return; } </script> <body> <%@ include file="topmenu.jsp" %> <% if (newsid==null) { out.println("<p align='center'> ø�"$# % Ñ'&�( ʤ½ </p>");

} else { %> <%@ include file="conn.jsp" %> <% PreparedStatement stmt=con.prepareStatement("select * from news where newsid=? and userid=?"); stmt.setInt(1,Integer.parseInt(newsid));

Page 67: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

64

stmt.setString(2,userid); ResultSet rs=stmt.executeQuery(); if (rs.next()) { String content=rs.getString("content"); content=content.replaceAll("<br>","\n"); %> <p align="center"> ñVòÐ ¥ ��ø�ù��� ä »"¼Ö£ </p>

<form name="formadd" method="post" action="edit.jsp" onsubmit="return(CheckData(this))"> <input type="hidden" name="newsid" value="<%=newsid%>"> <table border="1" width="80%" align="center"> <tr> <td> Ð ¥§¦ </td><td><input type="text" name="bdate" size="8"

maxlength="8" value="<%=rs.getString("bdate")%>"></td> </tr> <tr> <td> ï-ð ¦ </td><td><input type="text" name="edate" size="8"

maxlength="8" value="<%=rs.getString("edate")%>"></td> </tr> <tr> <td> Ð ¥���� </td><td><input type="text" name="title" size="60"

maxlength="40" value="<%=rs.getString("title")%>"></td> </tr> <tr> <td> Ð ¥�´�µ </td><td><textarea cols="60" rows="6"

name="content"><%=content%></textarea></td> </tr> </table> <p align="center"><input type="submit" name="bsend" value=" ��� "></p>

</form> <% } else { out.println("<p align=center> )�*-¹+�º�»>¼¤½ </p>");

} rs.close();

Page 68: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

65

stmt.close(); con.close(); } %> </body> </html> <% } %> 7.edit.jsp �� ��+���ó-ô,� ������à5á���ó-ô,� ������à5á���ó-ô,� ������à5á���ó-ô,� ������à5áV���� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <%@ include file="conn.jsp" %> <% request.setCharacterEncoding("big5"); String content=request.getParameter("content"); content=content.replaceAll("\n","<br>"); String updatestr="update news set title=?,content=?,bdate=?,edate=?,sdate=now,ip=? where newsid=? and userid=?"; PreparedStatement stmt=con.prepareStatement(updatestr); stmt.setString(1,request.getParameter("title"));

Page 69: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

66

stmt.setString(2,content); stmt.setString(3,request.getParameter("bdate")); stmt.setString(4,request.getParameter("edate")); stmt.setString(5,request.getRemoteAddr()); stmt.setInt(6,Integer.parseInt(request.getParameter("newsid"))); stmt.setString(7,userid); stmt.executeUpdate(); stmt.close(); con.close(); response.sendRedirect(response.encodeRedirectURL("list.jsp")); } %> 8.del.jsp �� ��.-�/��0��à�á-�/��0��à�á-�/��0��à�á-�/��0��à�áV���� <%@ page contentType="text/html;charset=big5" %> <%@ page import="java.sql.*" %> <% String logok=(String)session.getAttribute("logok"); String userid=(String)session.getAttribute("userid"); if ((logok==null)||(userid==null)) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else if (!logok.equals("yes")) { response.sendRedirect(response.encodeRedirectURL("login.htm")); } else { %> <%@ include file="conn.jsp" %> <% String delstr="delete from news where newsid=? and userid=?"; PreparedStatement stmt=con.prepareStatement(delstr); stmt.setInt(1,Integer.parseInt(request.getParameter("newsid"))); stmt.setString(2,userid); stmt.executeUpdate();

Page 70: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

67

stmt.close(); con.close(); response.sendRedirect(response.encodeRedirectURL("list.jsp")); } %> 9.topmenu.jsp �� ��10$2 Ä�Å0$2 Ä�Å0$2 Ä�Å0$2 Ä�Å �� �� <p align="center"> ��������³�Í�Î-Ï Ñ"Ò4365 </p>

<table width="100%" border="0"> <tr> <td> Ô�Õ¾£ <%=userid%></td><td><a href="list.jsp"> Ð ¥�ä�å</a></td><td><a href="addfrm.jsp"> Í�÷�Ð ¥ </a></td><td><a href="logout.jsp"> É�� </a></td>

</tr> </table> <hr> 10.conn.jsp �� ��87:9;<�=?>�@7:9;<�=?>�@7:9;<�=?>�@7:9;<�=?>�@²���� <%

String jdbcstr=" jdbc:mysql://localhost:3306/news?user=root&password=1234";

Class.forName("org.gjt.mm.mysql.Driver");

Connection con=DriverManager.getConnection(jdbcstr,"","");

%>

10. A$BA$BA$BA$B MySQL news 7,9;7,9;7,9;7,9; new »>¼C�D,E�*$F:G å � £uÉ\Ê�Ô-Õ å�� user H�« ¥ »>¼ å news IKJ?L�MN

phpmyadmin O$P�»"¼C�Hâ»"¼ å ø$Q R MySQL SOP �K��S T ä �"¹$F6G»"¼ å�UWV:X$Y�Z ¬ £

Page 71: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

68

S £ userå��UWV�Y[Z ¬

S £ newså ��UWV Y,Z ¬

5.4���� 1 1 1 1 JFreeChart 2 3 4 5 6 72 3 4 5 6 72 3 4 5 6 72 3 4 5 6 7

Install JFreeChart Class \

jfreechart-0.9.4.jar H jcommon-0.7.1.jar ]4^/usr/share/tomcat5/webapps/ROOT/WEB-INF/lib

Page 72: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

69

5.4.1���� ; < = > ? @ A; < = > ? @ A; < = > ? @ A; < = > ? @ A

_ `_ `_ `_ `1 aa aacb�db�db�db�d barchart.html

<title> e'fWS </title> <center><h1> e'f4S </h1></center>

<center><img src="barchart.jsp"></center>

_ `_ `_ `_ `2 aa aacb�db�db�db�d barchart.jsp

<%@page contentType="image/jpeg;charset=MS950"%> <!-- g �?X?h�i S�j , k�l contentType

�image/jpeg -->

<%@page import="java.util.*,java.io.*,java.awt.*"%> <%@page import="com.jrefinery.data.*,com.jrefinery.chart.*,com.jrefinery.chart.ui.*,com.jrefinery.chart.data.*"%> <% String[] xAxisData = {" +�m ", " n�m ", " o�m "}; // k�l:pGWS�j Y"¨-©�q�r

Number[][] data ={ {new Integer(120),new Integer(138),new Integer(300)}, {new Integer(95),new Integer(87),new Integer(99)}, {new Integer(180),new Integer(156),new Integer(173)} }; // s n�t$u äv?� k�l�¢?w String[] year ={"2002 x ","2003 x ","2004 x "}; // k�l�x�y?z?{

DefaultCategoryDataset dataSet = new DefaultCategoryDataset(year,data); //\x�y�z?{H�¢?w�k�l dataSet

dataSet.setCategories(xAxisData); // k�l�S[j Y"¨�©�q�r

JFreeChart chart=null; chart = ChartFactory.createVerticalBarChart(" ³?|�o�x�} +�~\¢�� ", " m,� ", "�

", dataSet, true); // k�l�S å�Y6����q�r ���� ¨���� ����� ¨���� � dateSet;true � h�i �6xy Y S���� false ��·��

OutputStream ostream = response.getOutputStream();

Page 73: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

70

// �?� responseY

OutputStream

ChartUtilities.writeChartAsJPEG(ostream, chart, 300, 200); //reder

5�� S���k�l�S�� Y�� � 300, � � 200, �����6� ostream

ostream.close(); // ��� ostream

%> _ `_ `_ `_ `

3 aa aac�������  �������  �������  �������  

5.4.2���� ; <; <; <; < 3D = > ? @ A= > ? @ A= > ? @ A= > ? @ A

_ `_ `_ `_ `1 aa aacb�db�db�db�d 3d.html

<title>jsp ��¡ 3D e'f4S </title> <center><h1> ��¡ 3D e�f4S </h1></center>

<center><img src="3d.jsp"></center> _ `_ `_ `_ `

2 aa aacbb bb4dd dd 3d.jsp

<%@page contentType="image/jpeg;charset=MS950"%> <!-- g �?X?h�i S�j , k�l contentType

�image/jpeg -->

<%@page import="java.util.*,java.io.*,java.awt.*"%> <%@page import="com.jrefinery.data.*,com.jrefinery.chart.*,com.jrefinery.chart.ui.*,com.jr

Page 74: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

71

efinery.chart.data.*"%> <% String[] xAxisData = {" +�m ", " n�m ", " o�m "}; // k�l:pGWS�j Y"¨-©�q�r

Number[][] data ={ {new Integer(120),new Integer(138),new Integer(300)}, {new Integer(95),new Integer(87),new Integer(99)}, {new Integer(180),new Integer(156),new Integer(173)} }; // s n�t$u äv?� k�l�¢?w String[] year ={"2002 x ","2003 x ","2004 x "}; // k�l�x�y?z?{

DefaultCategoryDataset dataSet = new DefaultCategoryDataset(year,data); //\x�y�z?{H�¢?w�k�l dataSet

dataSet.setCategories(xAxisData); // k�l�S[j Y"¨�©�q�r

JFreeChart chart=null; chart = ChartFactory.createVerticalBarChart3D(" ³�|?o�x$}�+�~"¢�� ", " m6�", "�

", dataSet, true); // k�l�S å�Y6����q�r ���� ¨���� ����� ¨���� � dateSet;true � h�i �6xy Y S���� false ��·��

OutputStream ostream = response.getOutputStream(); // �?� response

YOutputStream

ChartUtilities.writeChartAsJPEG(ostream, chart, 300, 200); //reder

5�� S���k�l�S�� Y�� � 300, � � 200, �����6� ostream

ostream.close(); // ��� ostream

%>

_ `_ `_ `_ `3 aa aac�������  �������  �������  �������  

Page 75: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

72

5.4.3���� ; < B C A A; < B C A A; < B C A A; < B C A A

_ `_ `_ `_ `1 aa aacb�db�db�db�d line.html

<title>jsp ¢�£�S </title> <center><h1> ¢�£ S </h1></center>

<center><img src="line.jsp"></center>

_ `_ `_ `_ `

2 aa aacb�db�db�db�d line.jsp <%@page contentType="image/jpeg;charset=MS950"%> <!-- g �?X?h�i S�j , k�l contentType

�image/jpeg -->

<%@page import="java.util.*,java.io.*,java.awt.*"%> <%@page import="com.jrefinery.data.*,com.jrefinery.chart.*,com.jrefinery.chart.ui.*,com.jrefinery.chart.data.*"%> <% String[] xAxisData = {" +�m ", " n�m ", " o�m "}; // k�l:pGWS�j Y"¨-©�q�r

Number[][] data ={ {new Integer(120),new Integer(138),new Integer(300)}, {new Integer(95),new Integer(87),new Integer(99)}, {new Integer(180),new Integer(156),new Integer(173)} }; // s n�t$u äv?� k�l�¢?w

Page 76: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

73

String[] year ={"2002 x ","2003 x ","2004 x "}; // k�l�x�y?z?{

DefaultCategoryDataset dataSet = new DefaultCategoryDataset(year,data); //\x�y�z?{H�¢?w�k�l dataSet

dataSet.setCategories(xAxisData); // k�l�S[j Y"¨�©�q�r

JFreeChart chart=null; chart = ChartFactory.createLineChart(" ³?|�o�x�}�+~\¢�� ", " m,� ", "

�",

dataSet, true); // k�l�S å�Y6����q�r ���� ¨���� ����� ¨���� � dateSet;true � h�i �6xy Y S���� false ��·��

OutputStream ostream = response.getOutputStream(); // �?� response

YOutputStream

ChartUtilities.writeChartAsJPEG(ostream, chart, 300, 200); //reder

5�� S���k�l�S�� Y�� � 300, � � 200, �����6� ostream

ostream.close(); // ��� ostream

%> _ `_ `_ `_ `

3 aa aac�������  �������  �������  �������  

5.4.4���� ; < D E A; < D E A; < D E A; < D E A

_ `_ `_ `_ `1 aa aacb�db�db�db�d half.html

Page 77: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

74

<title>jsp 5�� S </title>

<center><h1>5�� S </h1></center>

<center><img src="half.jsp"></center>

_ `_ `_ `_ `

2 aa aacb�db�db�db�d half.jsp <%@page contentType="image/jpeg;charset=MS950" import="java.util.*,java.io.*,java.awt.*,com.jrefinery.data.*,com.jrefinery.chart.*,com.jrefinery.chart.ui.*,com.jrefinery.chart.data.*"%><% String[] xAxisData = {" +�m ", " n�m ", " o�m "," ¤m "," ¥�m "," ¦�m "};

Number[][] data ={{new Integer(300),new Integer(99),new Integer(173),new Integer(250),new Integer(279),new Integer(340)}}; String[] year ={"2004 x "};

DefaultCategoryDataset dataSet = new DefaultCategoryDataset(year,data); dataSet.setCategories(xAxisData); JFreeChart chart=null; chart = ChartFactory.createVerticalBarChart("2004 x§¨?x0¢�� ", "", "",

dataSet, true); chart.setBackgroundPaint(new GradientPaint(0, 0, new Color(163,202,214), 0, 300,new Color(252,203,252))); // k�l�©�ª�«�¬ ,GradientPaint

��­'® ¬ , ¯ X k�l�°�+ «�¬ , ± N

//chart.setBackgroundPaint(new Color(100,100,100)); CategoryPlot plot = chart.getCategoryPlot(); plot.setSeriesPaint(0,new Color(208,185,102)); //plot

��5�� S�D Y bar,N

setSeriesPaint k�l:p�G barY «�¬ , ²$± N ­ ® ¬

plot.setLabelFont(new Font("sansserif",Font.PLAIN,10)); plot.setLabelPaint(Color.red); plot.setLabelsVisible(true); // k�l:p?³´´�À�Ì�æ-ç X ��µ¢ r , s:H?k�l r jH�«�¬

ValueAxis va=plot.getRangeAxis(); va.setUpperMargin(0.1); plot.setRangeAxis(va); // k�l:´?´ Y À v�¶· , s¸�)�*�¹º��,µ0¢ r�¨�»

Page 78: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

75

plot.setCategoryGapsPercent(0.4); // k�l:p?³´´ Y�� y , s¸,´´�¼�½¿¾

OutputStream ostream = response.getOutputStream(); ChartUtilities.writeChartAsJPEG(ostream, chart, 400, 300); ostream.close(); %>

_ `_ `_ `_ `3 aa aac�������  �������  �������  �������  

Page 79: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

76

Page 80: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

77

�� ��� ��� ��� ����� � � ! " � �� � ! " � �� � ! " � �� � ! " � �

��À ¦ % Y t�Á�s6H�Â�Í�Ã?Ä-ø�Q�R-ì?Å$��Æ�� SOP q'Ç �1J ú Linux È�É 350¨�Ê È É6Ã?Ä�Ë5ü�Ì úÎÍ?Ï ÐÑ4Ò:Ó'k ¨�Ê È É6Ã?Ä�Ë�ü�Ì ú~»"¼?C?ÐÑWÒ�Ó'k ¨Ê È�É:Ã?Ä�Ë�üÔI

6.1���� 8 9 : ;8 9 : ;8 9 : ;8 9 : ;

3,55Ñ�Ò�Õ ³���l þ s root Ö'�pÉ\Ê×��Ø?ØÙ Ç IcÚ RedHat Linux D[*+�Û logwatch à � ��l�Ü�Ý�Þ ß log file �àJ�á0ª$µ�â�%ã�àä��\ª�Ù�å root I+ëæ�ç$è � º Ó O?éê Ó�ë Ü ì í�î log file (/var/log/tomcat5/) æ�ç�*�â�%6ï�j!I

6.2���� < = � >< = � >< = � >< = � >

ê Ó ±�� http://rpmfind.net ð�¶ Tomcat ÆW�:ñ Ç �8�'À�ò?ó Y ÆW�'ô'õ-øQ�R Linux OS SOP } 5.4 ö÷I

6.3���� ? @ A B C D? @ A B C D? @ A B C D? @ A B C D

ø k TomcatY k�l�� ù\æ úÚ /etc/tomcat5

´, û�%[��l þ�ü �!I

Page 81: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

78

�# ��# ��# ��# � $ % & ' ($ % & ' ($ % & ' ($ % & ' (

Q1 aa aacý�þ�ÿ������ý�þ�ÿ������ý�þ�ÿ������ý�þ�ÿ������ IP Address ������������������������ Tomcat Server

Ans aa aa ±�Q R�� ä Í��

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/context.html

Q2 aa aa Linux+Tomcat+MySQL ������������ ������������ ������������ ������������

ø$Q R�� ä�q�� http://www.javaworld.com.tw/jute/post/view?bid=6&id=26954&tpg=1&ppg=1&sty=1&age=0#26954 http://www.javaworld.com.tw/jute/post/view?bid=6&id=21986&tpg=1&ppg=1&sty=1&age=0#21986

Q3 aa aa Tomcat ýý ýýþ��þ��þ��þ�� Apache ������������

ø$Q R�� ä�q��

http://www.meritonlinesystems.com/docs/apache_tomcat_redhat.html

Q4 aa aa Tomcat ý�þ��ý�þ��ý�þ��ý�þ�� IIS ������������

ø$Q R�� ä�q��

http://www.javaworld.com.tw/jute/post/view?bid=9&id=42794&sty=1&tpg=1&age=0

Page 82: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

79

Q5 aa aacý�þ����ý�þ����ý�þ����ý�þ���� Tomcat 5 ��� "!$#�%'&�( ��� "!$#�%'&�( ��� "!$#�%'&�( ��� "!$#�%'&�(

é�)"* N Tomcat 5. � Ú5·�ñVò Tomcat +, Ø Y�-�. ���0/ N Ó�1�2 Form submit

Y »>¼\+43�s ISO8859-1 5 Ò ��à � k �76$8�9;:=<

\ r?> \$@�A�

Big5( B�C4D q ) or GB2312/GBK( D�C4D q ) �FE�G�Ú � N à � D¿�IH U * Y request.getParameter("xx"); È¿¾ toBig5String()

Y 5 Ò � Ò$J À�� U * Y Dq�K ©�L ·�����µNM�H��aï�á!�PO�æ�ª�µ�Q�R -�. �!� D q O�æTS"UTV Ø I W 2 Þ ßNX Ò � ª�µ K © � Ú QueryString

Y�Y ß÷�às�§'Ú Tomcat 4.x Ü�Z �[ J SUBMIT Ü]\ N GET or POST � Tomcat server H parameters

Y 5Ò�^ \ N Æ`_ Y�a Ø �Fb?Ú Tomcat 5.x c��a·$d�L�e �gf\

QueryString Y

Y ß�h�P �4i �kj §�èNl � Form Y

Method \ N GET H�m]n\Q�o?p�Ú U

RL À Y D q ��À�q5¸ Tomcat Ü � [ J J�L@ Ø � ^ �S"UTV Ø �sr�t�u�vw È 2 URLEncode ²�+�x I

Í?Ï�À��c*y"zH�¹'G K�{ ��O?é

\ U *4D q ò]\ N base64 a Ø �a¸4¾ serv

er À ��à �\ :|<~}

base64 decode ¿�i!� èT� D q ·���ª~� K�{ I ¹�xÈ�N��� ±�s Y�� ¹'G K�{ �Fb5æ U *�Í5Á�S"UN��l X \ N POST ����à � k �6�X�� Ü�Þ$�T� ��r?G�Q�o�æ�\ N GET À�q���r?G�Q�o�æ�\ N POST À�q������ zH�·'_ Y�v� \ N ·'_ Y�Y ß�� ¹"x Y à � +"���"����� ^ )�* �ÎÂ]��� ë � Ì ��� )��T��¾�I �`�

Tomcat Y�q Ç H$+�, Ø �PE"G�¶�¸4¾ K�{?U Ú�H Y���Y�v � � T�*"���

s � Y È � ��M��]/ Form submit Y »"¼��� ���� ISO8859-1

Y�a Ø � �� ��¯�æ$ �¡�� Tomcat Y�q Ç��� Ý�È×�£¢�l�O�æ�· < ��uO�æ ��¤�À�¹'G

Q"o�¸ server.xml D4M < I ���$¥�¦���$¥�¦���$¥�¦���$¥�¦ aa aa ø w

�`� $TOMCAT_HOME/webapps/tomcat-docs/config/http.html ¹ G ���

���g§$¨�©]��J$�«ª URIEncoding ª This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used. useBodyEncodingForURI ª This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x,

Page 83: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

80

where the encoding specified in the contentType, or explicitely set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false. À¬?n�G Tomcat Q�o��~æ k�l:Ú server.xml D Y http <Connector /> ­® � X�Y�� QueryString D q S"U�V Ø Y�K¯{ �su 8"9 ��°�k�l�¹?n G�Q"oT±D ç +�I

URIEncoding ø�k�l � URIEncoding="ISO-8859-1" ²�l � "ISO-8859-1" a Ø �F³ QueryString

Y?r$´"a Ø�µ post body ƶ_ I

useBodyEncodingForURI ¹�æ N i:Æ µ Tomcat 4.x c Y � k�l Y�· æ "true" or "false" �¹¸�º0æ"² "

X$»�X ³ QueryString µ

POST BODY \ N ƶ_ Y?r´"a Ø ?" ��¯�æ�kTU true �sr?²�±$¼�½ "ISO-8859-1"

a Ø Y�V"¾ I O?é×��\ N URIEncoding

Y k�l �À¿$Á useBodyEncodingForURI Y È � æ� ¾ Æ� Tomcat 4.X I »$2 ¯�¡�+ q�Y���� � Ò�J À�Ã�n�G�Q�o ^T» k!� Tom

cat ² L \ N "ISO-8859-1" Y�a Ø �Är ��ÅÆ O�æ���* K�{�Ç ? E�G'È Tom

cat Source Code i Ø�ì�T� ¾�I

// ÉËÊÀÌËÍ|Î Tomcat ÏÑÐÓÒ QueryString Ô�Õ=Ö$× // Ø org.apache.tomcat.util.http.Parameters ÉÑÙ class Ú$Û private String urlDecode(ByteChunk bc, String enc)

throws IOException {

if( urlDec==null ) {

urlDec=new UDecoder();

}

urlDec.convert(bc);

String result = null;

if (enc != null) {

bc.setEncoding(enc);

result = bc.toString();

}

else {

CharChunk cc = tmpNameC;

cc.allocate(bc.getLength(), -1);

// Default encoding: fast conversion

byte[] bbuf = bc.getBuffer();

Page 84: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

81

char[] cbuf = cc.getBuffer();

int start = bc.getStart();

for (int i = 0; i < bc.getLength(); i++) {

cbuf[i] = (char) (bbuf[i + start] & 0xff);

}

cc.setChars(cbuf, 0, bc.getLength());

result = cc.toString();

cc.recycle();

}

return result;

}

� Tomcat Ü$µ QueryString ��) *�k�l encode Ü�� ��Ý�Þ q Ç D U�� ø k

\ N ISO-8859-1 Y�a Ø �Óß\æ N +�à fast conversion i"5 Ò ��M?�"áU4Dq�K�{ � U s �gO�æ 8�9 Ú Server.xml D �â¤-À URLEncoding

Y Q"ok�lM<Tã I Connector

Y k�l"ä��åª

<Connector

debug="0"

acceptCount="100"

connectionTimeout="20000"

disableUploadTimeout="true"

port="80"

redirectPort="8443"

enableLookups="false"

minSpareThreads="25"

maxSpareThreads="75"

maxThreads="150"

maxPostSize="0"

URIEncoding="ISO-8859-1"

>

</Connector>

Page 85: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

82

Q6 aa aaÓæ�çæ�çæ�çæ�ç Tomcat Æ\Ç�È Ü-Ý�Þ\ßÆ\Ç�È Ü-Ý�Þ\ßÆ\Ç�È Ü-Ý�Þ\ßÆ\Ç�È Ü-Ý�Þ\ßNè�ý?þ����è�ý?þ����è�ý?þ����è�ý?þ����

Ans aa aaIéê ������� ë�ìîíðï ������������� ��ñòôóöõ÷�øù«ú

Q7 ûû ûû ���������� ü�ýþü�ýþü�ýþü�ýþ � ��������� ÿÿ ÿÿ ���� ������������ Ans ûû ûû Crystal Report � Java(Tomcat Server) �������� ���� 1.Crystal Report Java Reporting Component (Crystal Report 10) �����������

http://support.businessobjects.com/library/kbase/articles/c2014756.asp 2.Report Application Server 9 (v10 ���� Crystal Enterprise Embedded) �����������

http://support.businessobjects.com/library/kbase/articles/c2012210.asp �� �!

��"�#%$ ��� http://www.businessobjects.com/products/dev_zone/java/default.asp?ref=devzone_main Q8 ûû ûû Tomcat &�')(+*-,�.�/10+243)5�6�7&�')(+*-,�.�/10+243)5�6�7&�')(+*-,�.�/10+243)5�6�7&�')(+*-,�.�/10+243)5�6�7 8)9 �:�;%<�=

�������> �������������������� ��� �� ��? <Host name="localhost" ...>

...

<Valve className="org.apache.catalina.valves.AccessLogValve"

prefix="localhost_access_log." suffix=".txt"

pattern="common"/>

...

</Host>

Q9 ûû ûû@*�,*�,*�,*�, Tomcat Connection Pool AB�C�DAB�C�DAB�C�DAB�C�D $ �����E�F�G �http://www.aoindustries.com/servlet/com.aoindustries.website.clientarea.FAQ?category=jvms&page=recommended_pool �http://forum.java.sun.com/thread.jsp?thread=555635&forum=45&message=

Page 86: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

83

2723349 �http://lists.mysql.com/java/7741 Q10 ûû ûû@H�IKJH�IKJH�IKJH�IKJ Tomcat LM,LM,LM,LM, Clustering NN NN Load Balancing $ �����E�F�G

http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html http://jakarta.apache.org/tomcat/tomcat-5.0-doc/balancer-howto.html Q11 ûû ûû@H�IKJH�IKJH�IKJH�IKJ Tomcat O)PO)PO)PO)P Session Replication $ �����E�F�G

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/cluster-howto.html Session failure and cluster Connection pool

Page 87: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

84

�)��)��)��)� * + , -* + , -* + , -* + , -

Q%RS�T

� Jakarta Tomcat U�V�W%X�Y�U)V)W%XKZM[%\^]@_%`+�)a%bK�Mc jakarta projectd)e4f^gihkj4lKmon

http://jakarta.apache.org/site/mail.html http://jakarta.apache.org/site/mail2.html � Jakarta Tomcat p�q F)r Jakarta Tomcat

d p�q F)r ]s� Tomcatd ! ��t gsu c R�v g FAQ w S�T ]sx

Tomcat yz�{ d F�r n

http://jakarta.apache.org/tomcat � Jpackge p�q F�r | F)r)}4~���� d���� ]

java

h�j ]@����� l package ]�� h�j1�-���

z�� h�j%�-� { d)� v n

http://www.jpackage.org/ � MySQL p�q F�r MySQL

d p�q F)r ]�� | 8 �%�)���K��� Y4� %����� d MySQL

d ! ��tY u c R�v n

http://www.mysql.com/ � phpMyAdmin p�q F�r phpMyAdmin ����� MySQL

� 84��  d+¡�¢ ]£� | F)r 8 �K�K¤�� ���¥+¦d¡�¢§n

http://www.phpmyadmin.net � Sun Java p�q F�r Java

d�¦ �4¨ ] � � Javad p�q R+v ]

!��t g@©�ª%d�jK« Y �)¬%­k®M¯�° �¤��F�r n

http://java.sun.com ± RS�T

Page 88: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

85

� Tomcat ²�³-´�µ ¤ x�¶·�¸4¹-º)» � d ²�³ R�v ]¼ck½ ¤)�1¾ 84¿ � http://www.oreilly.com/catalog/tomcat À4ÁÂ]�ÃKÄ1Å�Æ F�r4Ç 8 �http://tomcatbook.brittainweb.org ]sÀ1Á1c�½ | ¾ d S�È n ���%��É�Ê d Apache web Ë�ÌÎÍ d F�r ��� � ] � {�� ¦�Ï F�r�Ð)Ñ)Ò servlet

� JSP ] � Ä%x)Ó�� h�j Java web

� v ]@�Ô ¯�Õ)Ö ¿ Tomcat ×à web

�M +!� h�jM��d

!� �

� JSP 2.0 ²�³-´�µ Ú Ð�Û g ÚKÜݺ / Þ JSP 2.0 ²�³�´�µ4��� JSP ß-àkY4áKâ d�ã Ää]æåç�{�èé Java Web

h�j ²�³- JSP 2.0 � JAVA2 êq�ë1ìMí - î�ï Û �1¾ � JAVA ð)ñ

= dkòó Ð �Kô)ßõ�» d ��� , �%öK÷�½%øù)ú � � ��û ¦dü+ý, þ1ÿ�����ö�����

!� Рd ~)����

� SCWCD ������

� �����- ����� �1¾������ z�{ d Java Webhkj ²�³�� ����� �U � SCWCD ��

� Java ²�³%W%X F�r � http://www.javaworld.com.tw �"!Ky ¦d Java ²�³KW%X F�r ] � ¾ èé , #�à"$ ® , W%X �"% … w u c&$ ® ]�� ¯ � n

Page 89: Tomcat Application Server Standard Operation …ebooks.lib.ntu.edu.tw/1_file/oss/67/93doc4-9.pdfTomcat Server KL Ä 3M Apache-Jakarta @)Ñ N OP RQTSU ~ b W V X $ W 2 XY[Z]\ È É

'' '')(+*(+*(+*(+*-,, ,,&.0/2143.0/2143.0/2143.0/21436587587587587 9;:=<>:=?+@;:9;:=<>:=?+@;:9;:=<>:=?+@;:9;:=<>:=?+@;:

( ���������MyFirstServlet.java ( ��javac ��MyFirstServlet ( �MyFirstServlet.class � � Tomcat � � �� � � � � � ( � � Tomcat � � � ( � � � �� � � MyFirstServlet

! 1"�MyFirstServlet.java

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyFirstServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>Servlet Exercise</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2>This is my first Servlet!</h2>"); out.println("</body>"); } } ! 2"��MyFirstServlet.java

# javac MyFirstServlet.java