{"id":675,"date":"2013-01-20T15:14:00","date_gmt":"2013-01-20T07:14:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=675"},"modified":"2024-11-06T16:01:36","modified_gmt":"2024-11-06T08:01:36","slug":"tomcat","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/675","title":{"rendered":"Tomcat"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>\u5b89\u88ddopenJDK<\/strong><\/h2>\n\n\n\n<p><strong>CentOS 5\u4ee5yum\u5b89\u88ddopenjdk<\/strong><br>#yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel<br>ps:<br>\u900f\u904eyum makecache &amp;&amp; yum search openjdk\u53ef\u627e\u5230\u53ef\u7528\u7684\u7248\u672c<\/p>\n\n\n\n<p><strong>\u9a57\u8b49\u76ee\u524d\u7248\u672c<\/strong><br>#java -version<br>java version &#8220;1.6.0_20&#8221;<br>OpenJDK Runtime Environment (IcedTea6 1.9.8) (rhel-1.22.1.9.8.el5_6-i386)<br>OpenJDK Client VM (build 19.0-b09, mixed mode)<br>ps:<br>\u82e5\u7248\u672c\u4ecd\u70ba\u820a\u7248,\u53ef\u624b\u52d5\u5207\u63db<br>#update-alternatives &#8211;config java<br>1 \/usr\/lib\/jvm\/jre-1.4.2-gcj\/bin\/java<br>*+ 2 \/usr\/lib\/jvm\/jre-1.6.0-openjdk\/bin\/java<\/p>\n\n\n\n<p><strong>\u8a2d\u5b9a\u74b0\u5883\u8b8a\u6578<\/strong><br>#vi \/etc\/profile<br>JAVA_HOME=\/usr\/lib\/jvm\/java-1.6.0<br>PATH=$PATH:$JAVA_HOME\/bin<br>CLASSPATH=.:$JAVA_HOME\/lib\/tools.jar:$JAVA_HOME\/lib\/dt.jar<br>export PATH JAVA_HOME CLASSPATH<\/p>\n\n\n\n<p><strong>\u91cd\u958b\u6a5f<\/strong><br>#reboot<\/p>\n\n\n\n<p>refer:<br>http:\/\/iammic.pixnet.net\/blog\/post\/5533593<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u5b89\u88ddTOMCAT<\/strong><\/h2>\n\n\n\n<p><strong>1\u4ee5configurate\u5b89\u88dd<\/strong><br>\u4e0b\u8f09\u4f4d\u7f6e\u70bahttp:\/\/tomcat.apache.org\/download-60.cgi<br>ex:install tomcat-6.0.29<br>#wget http:\/\/apache.ntu.edu.tw\/\/tomcat\/tomcat-6\/v6.0.29\/bin\/apache-tomcat-6.0.29.tar.gz<br>#tar -zxvf apache-tomcat-6.0.29.tar.gz<br>#mv apache-tomcat-6.0.29 \/usr\/local\/tomcat6<br>#\/usr\/local\/tomcat6\/bin\/startup.sh<br>Using CATALINA_BASE: \/usr\/local\/tomcat6<br>Using CATALINA_HOME: \/usr\/local\/tomcat6<br>Using CATALINA_TMPDIR: \/usr\/local\/tomcat6\/temp<br>Using JRE_HOME: \/usr<br>Using CLASSPATH: \/usr\/local\/tomcat6\/bin\/bootstrap.jar<\/p>\n\n\n\n<p><strong>2\u6e2c\u8a66\u662f\u5426\u5b89\u88dd\u5b8c\u6210<\/strong><br>\u958b\u555f http:\/\/&lt; tomcat ip&gt;:8080<\/p>\n\n\n\n<p>ps:<br>\u5b89\u88dd\u4f4d\u7f6e\u6703\u5132\u5b58\u5728$CATALINA_HOME<br>\u82e5\u53ea\u6709\u55ae\u4e00instances,\u5247CATALINA_BASE\u6703\u7b49\u65bcCATALINA_HOME<\/p>\n\n\n\n<p>ps:<br><strong>$CATALINA_HOME\u7d50\u69cb\u5982\u4e0b<\/strong><br><strong>\/bin<\/strong><br>\u5b58\u653e\u555f\u52d5\u548c\u95dc\u9589\u7b49\u5176\u4ed6\u6307\u4ee4<br>.sh\u7d50\u5c3e\u8868\u793aunix system,.bat\u7d50\u5c3e\u8868\u793awin system<br><strong>\/conf<\/strong><br>\u5b58\u653e\u7d44\u614b\u6a94\u548c\u76f8\u95dcDTDs,\u5176\u4e2dserver.xml\u662fcontainer\u4e3b\u8981\u7684\u7d44\u614b\u6a94,\u975e\u5e38\u91cd\u8981<br><strong>\/logs<\/strong><br>log\u5b58\u653e\u7684\u5730\u65b9<br><strong>\/webapps<\/strong><br>This is where your webapps go.<\/p>\n\n\n\n<p>ps:<br><strong>startup.sh\u57f7\u884c\u5f8c\u6703\u57f7\u884c\u4ee5\u4e0b<\/strong><br>\/usr\/lib\/jvm\/java-1.6.0\/bin\/java -Djava.util.logging.config.file=\/usr\/local\/tomcat\/conf\/logging.properties<br>-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=\/usr\/local\/tomcat\/endorsed<br>-classpath \/usr\/local\/tomcat\/bin\/bootstrap.jar<br>-Dcatalina.base=\/usr\/local\/tomcat<br>-Dcatalina.home=\/usr\/local\/tomcat<br>-Djava.io.tmpdir=\/usr\/local\/tomcat\/temp org.apache.catalina.startup.Bootstrap start<\/p>\n\n\n\n<p><strong>3\u7de8\u8f2f\u74b0\u5883\u6a94<\/strong><br>#vi \/etc\/profile<br>export CATALINA_HOME=\/usr\/local\/tomcat<br>export CLASSPATH=.:$JAVA_HOME\/lib:$CATALINA_HOME\/lib<br>export PATH=$PATH:$CATALINA_HOME\/bin<br>#source \/etc\/profile<br>#\/usr\/local\/tomcat6\/catalina.sh start<\/p>\n\n\n\n<p><br>ps<br>yum\u5b89\u88dd\u65b9\u6cd5<br>#cd \/etc\/yum.repos.d<br>#wget http:\/\/www.jpackage.org\/jpackage50.repo<br>#yum update<br>#yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps<br>#service tomcat6 \u0455t\u0430rt<br>\u9810\u8a2d\u5b89\u88dd\u5728\/usr\/share\/tomcat6<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u5e38\u898b\u64cd\u4f5c&nbsp;<\/strong><\/h2>\n\n\n\n<p><strong>\u7db2\u9801\u7ba1\u7406\u4ecb\u9762<\/strong><br>Status<br><code>https:\/\/ ip \/manager\/status<\/code><br>Tomcat Manager<br><code>https:\/\/ ip \/manager\/html<\/code><\/p>\n\n\n\n<p><strong>\u7ba1\u7406tomcat\u7684\u865b\u64ec\u4e3b\u6a5f<\/strong><br><code>https:\/\/ ip \/host-manager\u00a0<\/code><\/p>\n\n\n\n<p><strong>\u8a2d\u5b9atomcat\u7db2\u9801\u7ba1\u7406\u4ecb\u9762\u7684\u5e33\u865f\u5bc6\u78bc<\/strong><br>#vi conf\/tomcat-user.xml<br>\u52a0\u5165\u4ee5\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt; role rolename=\"manager\"\/>\n&lt; user username=\"ray\" password=\"pass\" roles=\"manager\"\/><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>\u9650\u5236\u9032\u5165manager\u7684ip<\/strong><br>vi $CATALINA_HOME\/conf\/Catalina\/localhost\/manager.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt; Context path=\"\/manager\" privileged=\"true\"\ndocBase=\"\/usr\/local\/kinetic\/tomcat6\/server\/webapps\/manager\">\n&lt; Valve className=\"org.apache.catalina.valves.RemoteAddrValve\"\nallow=\"127.0.0.1\"\/>\n&lt; \/Context><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>\u66f4\u6539\/manager \u548c \/host-manager\u7684\u8a2a\u554fPort<\/strong><\/p>\n\n\n\n<p>\u7de8\u8f2f$CATALINA_HOME\/conf\/server.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Connector port=\"8080\" protocol=\"HTTP\/1.1\"\n           connectionTimeout=\"20000\"\n           redirectPort=\"8443\" \/><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>SSL\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p><strong>\u81ea\u5efa\u6191\u8b49\u7684\u8a2d\u5b9a\u65b9\u5f0f&nbsp;<\/strong><\/p>\n\n\n\n<p>1<br>Create a priviate key<br>$JAVA_HOME\/bin\/keytool -genkey -alias tomcat -keyalg RSA -keystore \/root\/server.jks<br>\u8f38\u5165keystore\u5bc6\u78bc,\u5728\u8a2d\u5b9aserver.xml\u7684keystorePass\u6703\u7528\u5230<br>enter keystore password:<br>\u60a8\u7684\u540d\u7a31\u70ba\u4f55\uff1f<br>[Unknown]\uff1a manager<br>\u60a8\u7684\u7de8\u5236\u55ae\u4f4d\u540d\u7a31\u70ba\u4f55\uff1f<br>[Unknown]\uff1a it<br>\u60a8\u7684\u7d44\u7e54\u540d\u7a31\u70ba\u4f55\uff1f<br>[Unknown]\uff1a sys<br>\u60a8\u6240\u5728\u7684\u57ce\u5e02\u6216\u5730\u5340\u540d\u7a31\u70ba\u4f55\uff1f<br>[Unknown]\uff1a taipei<br>\u60a8\u6240\u5728\u7684\u5dde\u53ca\u7701\u4efd\u540d\u7a31\u70ba\u4f55\uff1f<br>[Unknown]\uff1a taiwan<br>\u8a72\u55ae\u4f4d\u7684\u4e8c\u5b57\u570b\u78bc\u70ba\u4f55<br>[Unknown]\uff1a tw<br>CN=localhost, OU=localhost, O=localhost, L=taipei, ST=taiwan, C=tw \u6b63\u78ba\u55ce\uff1f<br>[\u5426]\uff1a y<br>\u8f38\u5165 &lt; localhost&gt; \u7684\u4e3b\u5bc6\u78bc<br>\uff08RETURN \u5982\u679c\u548c keystore \u5bc6\u78bc\u76f8\u540c\uff09\uff1a<\/p>\n\n\n\n<p>\u9019\u6a23\u6703\u7522\u751f\u4e00\u500bserver.jks\u6a94\u6848\uff0c\u5177\u5728\u7576\u4e2d\u7684tomcat\u5225\u540d\u7ba1\u7406\u4e0b\u5132\u5b58\u6709\u4e00\u5c0d\u516c\u3001\u79c1\u9470\u3002<br>\u63a5\u4e0b\u4f86\u7de8\u8f2fTomcat\u7684conf\u76ee\u9304\u4e2dserver.xml\uff0c\u627e\u5230\u4ee5\u4e0b\u9019\u6bb5\u8a3b\u89e3\u6240\u5728\uff1a<br>&lt; Connector port=&#8221;443&#8243; protocol=&#8221;HTTP\/1.1&#8243;<br>SSLEnabled=&#8221;true&#8221; maxThreads=&#8221;150&#8243; scheme=&#8221;https&#8221;<br>secure=&#8221;true&#8221; clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221;<br>keystorePass=&#8221;\u4f60\u7684\u5bc6\u78bc&#8221; \/&gt;<\/p>\n\n\n\n<p>refer:<br>http:\/\/tomcat.apache.org\/tomcat-6.0-doc\/ssl-howto.htmlps:<\/p>\n\n\n\n<p>&#8230;&nbsp;<\/p>\n\n\n\n<p><strong>\u8cfc\u8cb7\u6191\u8b49\u7684\u8a2d\u5b9a\u65b9\u5f0f<\/strong><\/p>\n\n\n\n<p>\u5047\u8a2d\u53c3\u6578\u5982\u4e0b<br>keyalias\u70bakeynameidp1<br>keystore\u70bakeystoreidp1.jks<br>certificatereq\u70bacsridp1.txt<br>keystorePass\u70bathisispassword<\/p>\n\n\n\n<p>1<br>make key<br><strong>#keytool -genkey -alias keynameidp1 -keyalg RSA -keysize 2048 -keystore keystoreidp1.jks<\/strong><br>\u6210\u529f\u5f8c\u6703\u7522\u751fkey\u6a94keystoreidp1.jks<\/p>\n\n\n\n<p>2<br>make CSR(certificate requset)<br><strong>#keytool -certreq -alias keynameidp1 -file csridp1.txt -keystore keystoreidp1.jks<\/strong><br>\u6210\u529f\u5f8c\u6703\u7522\u751fCSR\u6a94csridp1.txt<\/p>\n\n\n\n<p>3<br>CSR\u6a94(certificatereq)\u8981\u7d66ssl\u55ae\u4f4d<br>\u4e26\u5411ssl\u55ae\u4f4d\u53d6\u5f97cer\u6a94(\u53ef\u80fd\u662f4\u500b\u62163\u500b),\u5982\u4e0b<br>root.cer<br>uca_1.cer<br>uca_2.cer<br>server.cer<\/p>\n\n\n\n<p>4<br>\u5c07\u4e0a\u8ff0.cer\u6a94\u585e\u5230key\u88e1<\/p>\n\n\n\n<p><strong># keytool -import -trustcacerts -alias root -file root.cer -keystore keystoreidp1.jks<br><\/strong>Enter keystore password:<br>Certificate already exists in system-wide CA keystore under alias &lt;83httpwwwusertrustcomutndatacorpsgc&gt;<br>Do you still want to add it to your own keystore? [no]: y<br>Certificate was added to keystore<\/p>\n\n\n\n<p><strong># keytool -import -trustcacerts -alias uca1 -file uca_1.cer -keystore keystoreidp1.jks<\/strong><br>Enter keystore password:<br>Certificate was added to keystore<\/p>\n\n\n\n<p><strong># keytool -import -trustcacerts -alias uca2 -file uca_2.cer -keystore keystoreidp1.jks<\/strong><br>Enter keystore password:<br>Certificate was added to keystore<\/p>\n\n\n\n<p><strong># keytool -import -trustcacerts -alias keynameidp1 -file server.cer -keystore keystoreidp1.jks<\/strong><br>Enter keystore password:<br>Certificate was added to keystore<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p>&nbsp;<br><strong>\u57f7\u884c\u7a0b\u5f0f<\/strong><br>\u65b9\u6cd5\u6709 jsp \u53ca servlet<\/p>\n\n\n\n<p><strong>servlet<\/strong><br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">hello<\/mark>.class\u5b58\u653e\u5728webapps\/&lt; dir&gt;\/WEB-INF\/classes\/<br>\u4e26\u5728WEB-INF\/web.xml\u5b9a\u7fa9\u597d\u4ee5\u4e0b<br>&lt; servlet&gt;<br>&lt; servlet-name&gt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">HelloServlet<\/mark>&lt; \/servlet-name&gt;<br>&lt; servlet-class&gt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Hello<\/mark>&lt; \/servlet-class&gt;<br>&lt; \/servlet&gt;<br>&lt; servlet-mapping&gt;<br>&lt; servlet-name&gt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">HelloServlet<\/mark>&lt; \/servlet-name&gt;<br>&lt; url-pattern&gt;\/hello&lt; \/url-pattern&gt;<br>&lt; \/servlet-mapping&gt;<br>ps:<br>url-pattern\u662f\u958b\u7db2\u9801\u7684\u8def\u5f91\u8981\u5c0d\u61c9\u5230servlet-name , \u7576\u8a2a\u554f http:\/\/&lt;server&gt;:&lt;port&gt;\/&lt;dir&gt;\/hello \u6642\u624d\u6703\u52a0\u8f09HelloServlet<br>servlet-class\u662f.class\u7684\u8def\u5f91\u8981\u5c0d\u61c9\u5230servlet-name<br><\/p>\n\n\n\n<p>ps:<br>hello.class\u7522\u751f\u65b9\u5f0f<br>\u5728classes\u76ee\u9304\u4e0b\u7de8\u8f2f\u597d.java\u5f8c,\u57f7\u884cjavac &lt; name&gt;.java<br>ps:\u78ba\u5b9aCLASSPATH\u8b8a\u6578\u6709\u5305\u542bCATALINA_HOME%libservlet-api.jar,\u5426\u5247\u57f7\u884cjavac\u6642\u6703\u51fa\u73fepackage javax.servlet.http does not exist<br>ex:<br><code>#vi hello.java<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.io.*;\nimport javax.servlet.*;\nimport javax.servlet.http.*;\npublic class testservlet extends HttpServlet\n{\npublic void doGet(HttpServletRequest request,HttpServletResponse response)\nthrows ServletException,IOException\n{\nresponse.setContentType(\"text\/html\");\nPrintWriter out = response.getWriter();\nout.println(\"&lt; h1&gt;Hello world\");\n}\n}<\/code><\/pre>\n\n\n\n<p><code>#javac hello.java<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>ps:<br>\u5982\u679c\u60f3\u5c07\u4e0a\u9762\u7684helloServelt\u6253\u5305\u6210war\uff0c\u53ef\u5728webapps\/&lt; dir&gt;\u76ee\u9304\u4e0b\u57f7\u884c <code>jar -cvf myapp.war *<\/code><br>\u63a5\u8457\u53ea\u8981\u5c07myapp.war\u653e\u5230\u76ee\u6a19\u4e3b\u6a5f\u7684webapps\u76ee\u9304\u4e0b\u5373\u53ef<\/p>\n\n\n\n<p>ps:<br>war\u5305\u88dd\u7684\u6a94\u6848\u7528\u4ee5\u4e0b\u57f7\u884c\u89e3\u958b<br><code>jar -xvf myapp.war<\/code><\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p>&nbsp;<br><strong>\u8a2d\u6210daemon,\u9632\u6b62\u6b0a\u9650\u904e\u5927<\/strong><br>\u5b89\u88ddjsvc.tar.gz<br>SHELL&gt; tar -zxvf jsvc.tar.gz<br>SHELL&gt; cd jsvc.src #\u6e96\u5099\u9032\u884c\u5b89\u88dd<br>SHELL&gt; chmod +x configure<br>SHELL&gt; .\/configure -with-java= \/usr\/java\/jdk1.0.6_14 #\u6307\u5b9ajdk\u5b89\u88dd\u4f4d\u5740<br>SHELL&gt; make #\u7de8\u8b6f<br>\u4f7f\u7528\u8005\u7528\u6236\u5efa\u7acb(\u5efa\u7acb\u7fa4\u7d44\u8207OWNER)<br>SHELL&gt; useradd tomcat6<br>SHELL&gt; groupadd tomcat<br>SHELL&gt;usermod -G tomcat tomcat6<br>SHELL&gt; chown -R tomcat6 \/usr\/local\/tomcat6<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">WEB-INF <\/h3>\n\n\n\n<p>WEB-INF \u76ee\u9304\u5728 Java Web \u61c9\u7528\u4e2d\u662f\u4e00\u500b\u7279\u6b8a\u7684\u76ee\u9304\uff0c\u7528\u4f86\u5b58\u653e\u61c9\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u3001\u5eab\u6587\u4ef6\u548c\u79c1\u6709\u8cc7\u6e90\u3002WEB-INF \u76ee\u9304\u7684\u5167\u5bb9\u7121\u6cd5\u76f4\u63a5\u901a\u904e URL \u8a2a\u554f\uff0c\u50c5\u5728\u61c9\u7528\u5167\u90e8\u6216\u4f3a\u670d\u5668\u4e0a\u4f7f\u7528\u3002\u4ee5\u4e0b\u662f WEB-INF \u76ee\u9304\u4e2d\u4e3b\u8981\u5305\u542b\u7684\u5167\u5bb9\u53ca\u5176\u7528\u9014\uff1a<\/p>\n\n\n\n<p>WEB-INF \u76ee\u9304\u7684\u4e3b\u8981\u7d44\u6210\u548c\u7528\u9014<\/p>\n\n\n\n<p>1. web.xml<strong> \u914d\u7f6e\u6587\u4ef6<\/strong>\uff1a<\/p>\n\n\n\n<p>\u2022 WEB-INF \u4e2d\u7684 web.xml \u6587\u4ef6\u7a31\u70ba<strong>\u90e8\u7f72\u63cf\u8ff0\u7b26<\/strong>\uff0c\u662f Java Web \u61c9\u7528\u7684\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u2022 \u5b9a\u7fa9\u61c9\u7528\u7684 URL \u8def\u7531\u3001Servlet\u3001\u904e\u6ffe\u5668\u3001\u521d\u59cb\u5316\u53c3\u6578\u3001\u5b89\u5168\u914d\u7f6e\u7b49\u3002<\/p>\n\n\n\n<p>\u2022 \u5e38\u898b\u914d\u7f6e\u9805\u76ee\u5305\u62ec\uff1aservlet \u914d\u7f6e\u3001servlet-mapping\u3001filter\u3001security-constraint \u7b49\u3002<\/p>\n\n\n\n<p>2. classes<strong> \u76ee\u9304<\/strong>\uff1a<\/p>\n\n\n\n<p>\u2022 WEB-INF\/classes \u662f\u61c9\u7528\u4e2d\u6240\u6709\u7de8\u8b6f\u5f8c\u7684 Java \u985e\u548c\u8cc7\u6e90\u6587\u4ef6\u7684\u5b58\u653e\u4f4d\u7f6e\u3002<\/p>\n\n\n\n<p>\u2022 \u4e00\u822c\u653e\u7f6e\u61c9\u7528\u7684 .class \u6587\u4ef6\u3001\u5c6c\u6027\u6587\u4ef6\uff08\u5982 .properties\uff09\uff0c\u9019\u4e9b\u6587\u4ef6\u53ef\u4ee5\u88ab\u61c9\u7528\u5167\u7684 Servlet\u3001JSP \u7b49\u8cc7\u6e90\u8abf\u7528\u3002<\/p>\n\n\n\n<p>\u2022 classes \u76ee\u9304\u4e2d\u7684\u985e\u548c\u8cc7\u6e90\u6703\u81ea\u52d5\u5305\u542b\u5728\u61c9\u7528\u7684\u985e\u52a0\u8f09\u8def\u5f91\u4e2d\uff0c\u56e0\u6b64\u53ef\u4ee5\u5728\u61c9\u7528\u4e2d\u8f15\u9b06\u4f7f\u7528\u3002<\/p>\n\n\n\n<p>3. lib<strong> \u76ee\u9304<\/strong>\uff1a<\/p>\n\n\n\n<p>\u2022 WEB-INF\/lib \u7528\u4f86\u5b58\u653e\u61c9\u7528\u6240\u4f9d\u8cf4\u7684\u7b2c\u4e09\u65b9 JAR \u5305\u3002<\/p>\n\n\n\n<p>\u2022 \u6240\u6709\u653e\u5728 lib \u76ee\u9304\u4e2d\u7684 JAR \u6587\u4ef6\u6703\u81ea\u52d5\u52a0\u5165\u5230\u61c9\u7528\u7684\u985e\u52a0\u8f09\u8def\u5f91\uff0c\u4f9b\u61c9\u7528\u7a0b\u5e8f\u4e2d\u7684\u4ee3\u78bc\u8abf\u7528\u3002<\/p>\n\n\n\n<p>\u2022 \u9019\u6a23\u53ef\u4ee5\u8b93\u61c9\u7528\u4f9d\u8cf4\u7684\u5eab\u6587\u4ef6\u8207\u5176\u4ed6\u61c9\u7528\u9694\u96e2\uff0c\u907f\u514d\u56e0\u5eab\u7248\u672c\u4e0d\u540c\u800c\u5c0e\u81f4\u7684\u76f8\u5bb9\u6027\u554f\u984c\u3002<\/p>\n\n\n\n<p>4. web.xml<strong> \u6587\u4ef6\u4e2d\u7684\u984d\u5916\u914d\u7f6e<\/strong>\uff1a<\/p>\n\n\n\n<p>\u2022 WEB-INF\/web.xml \u4e2d\u9084\u53ef\u4ee5\u5305\u542b\u5176\u4ed6\u914d\u7f6e\u6587\u4ef6\uff0c\u4f8b\u5982 applicationContext.xml \u6216\u5176\u4ed6 Spring \u914d\u7f6e\u6587\u4ef6\uff0c\u7528\u65bc\u7ba1\u7406\u61c9\u7528\u7684\u914d\u7f6e\u6216\u53c3\u6578\u3002<\/p>\n\n\n\n<p>5. <strong>\u79c1\u6709\u8cc7\u6e90\u6587\u4ef6<\/strong>\uff1a<\/p>\n\n\n\n<p>\u2022 \u653e\u7f6e\u5728 WEB-INF \u76ee\u9304\u4e2d\u7684\u6587\u4ef6\u7121\u6cd5\u76f4\u63a5\u88ab\u5916\u90e8\u901a\u904e URL \u8a2a\u554f\uff0c\u56e0\u6b64\u53ef\u7528\u65bc\u5b58\u653e\u654f\u611f\u7684\u8cc7\u6e90\uff0c\u5982\u914d\u7f6e\u6587\u4ef6\u3001\u6191\u8b49\u3001\u5bc6\u9470\u7b49\u3002<\/p>\n\n\n\n<p>\u2022 \u53ea\u6709\u61c9\u7528\u4e2d\u7684 Servlet \u6216 JSP \u7b49\u6587\u4ef6\u53ef\u4ee5\u901a\u904e\u5167\u90e8\u8def\u5f91\u8a2a\u554f WEB-INF \u4e2d\u7684\u6587\u4ef6\uff0c\u9019\u6a23\u53ef\u4ee5\u4fdd\u8b77\u654f\u611f\u6578\u64da\u4e0d\u88ab\u76f4\u63a5\u516c\u958b\u3002<\/p>\n\n\n\n<p><strong>WEB-INF \u76ee\u9304\u7684\u7279\u6027<\/strong><\/p>\n\n\n\n<p>\u2022 <strong>\u4e0d\u53ef\u76f4\u63a5\u901a\u904e URL \u8a2a\u554f<\/strong>\uff1aWEB-INF \u76ee\u9304\u7121\u6cd5\u76f4\u63a5\u901a\u904e URL \u9032\u884c\u8a2a\u554f\uff0c\u9019\u6a23\u53ef\u4ee5\u4fdd\u8b77\u5176\u4e2d\u7684\u6587\u4ef6\uff0c\u907f\u514d\u76f4\u63a5\u66b4\u9732\u7d66\u7528\u6236\u3002<\/p>\n\n\n\n<p>\u2022 <strong>\u5c08\u70ba\u4f3a\u670d\u5668\u914d\u7f6e\u548c\u79c1\u6709\u8cc7\u6e90\u8a2d\u8a08<\/strong>\uff1a\u9069\u5408\u5b58\u653e\u61c9\u7528\u7684\u79c1\u6709\u914d\u7f6e\u548c\u985e\u5eab\uff0c\u4f7f\u61c9\u7528\u66f4\u52a0\u5b89\u5168\u548c\u7d50\u69cb\u5316\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b89\u88ddopenJDK CentOS 5\u4ee5yum\u5b89\u88ddopenjd &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[21],"tags":[],"class_list":["post-675","post","type-post","status-publish","format-standard","hentry","category-linuxservice"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=675"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/675\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}