{"id":60579,"date":"2026-01-15T22:57:18","date_gmt":"2026-01-15T14:57:18","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/60579.html"},"modified":"2026-01-15T22:57:18","modified_gmt":"2026-01-15T14:57:18","slug":"%e3%80%90%e5%8d%8e%e5%b7%a52025%e7%89%88%e3%80%91%e7%bd%91%e7%bb%9c%e5%ba%94%e7%94%a8%e6%9e%b6%e6%9e%84ppt%e7%ac%94%e8%ae%b0%ef%bc%88%e5%8f%af%e4%bb%a5%e5%9c%a8%e4%b8%93%e6%a0%8f%e4%b8%8b%e8%bd%bd","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/60579.html","title":{"rendered":"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09"},"content":{"rendered":"<p>                    <span style=\"color:#1f2329\">\u590d\u4e60\u8bfe\u6572\u91cd\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u8003\u8bd5\u6838\u2f3c\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8003\u8bd5\u65f6\u95f4&#xff1a;2026\u5e741\u2f4912\u2f47&#xff08;\u661f\u671f\u2f00&#xff09;9:00-11:00 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8003\u8bd5\u5730\u70b9&#xff1a;A1-201\u3001A1-202 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7b54\u9898\u8981\u6c42&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bd5\u5377\u542b\u8bd5\u9898\u5377&#xff08;4\u2eda&#xff09;\u548c\u7b54\u9898\u5377&#xff08;6\u2eda&#xff09;&#xff0c;\u7b54\u6848\u5fc5\u987b\u5199\u5728\u7b54\u9898\u5377\u4e0a&#xff0c;\u8bd5\u9898\u5377\u7b54\u9898\u2f46\u6548 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9700\u5728\u8bd5\u9898\u5377\u548c\u7b54\u9898\u5377\u6307\u5b9a\u4f4d\u7f6e\u586b\u5199\u59d3\u540d\u3001\u5b66\u53f7\u3001\u4e13\u4e1a\u73ed\u7ea7\u3001\u5ea7\u4f4d\u53f7&#xff08;\u5ea7\u4f4d\u53f7\u8003\u524d\u516c\u5e03&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u9898\u578b\u7ed3\u6784&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5355\u9879\u9009\u62e9\u9898&#xff08;10\u9053&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u586b\u7a7a\u9898&#xff08;5\u4e2a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u7b54\u9898&#xff08;4-5\u9053&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u7a0b\u9898 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u6838\u2f3c\u590d\u4e60\u6a21\u5757 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;Web\u57fa\u7840\u77e5\u8bc6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">HTML\u57fa\u672c\u6982\u5ff5&#xff08;\u6838\u2f3c\u6807\u7b7e\u3001\u2f42\u6863\u7ed3\u6784\u3001\u5e38\u2f64\u5c5e\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">HTTP\u534f\u8bae&#xff08;\u8bf7\u6c42\u2f45\u6cd5\u3001\u54cd\u5e94\u72b6\u6001\u7801\u3001\u8bf7\u6c42\/\u54cd\u5e94\u5934\u7ed3\u6784\u3001\u2f46\u72b6\u6001\u7279\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">Tomcat\u76f8\u5173&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;Java Web\u670d\u52a1\u5668\u7684\u4f5c\u2f64\u3001\u6838\u2f3c\u529f\u80fd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e&#xff08;\u7aef\u2f1d\u914d\u7f6e\u3001\u865a\u62df\u4e3b\u673a\u914d\u7f6e\u3001\u73af\u5883\u53d8\u91cf\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u90e8\u7f72&#xff08;war\u5305\u90e8\u7f72\u3001\u2f6c\u5f55\u90e8\u7f72\u2f45\u5f0f\u3001\u90e8\u7f72\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;Servlet <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;\u5b9a\u4e49\u3001\u4f5c\u2f64\u3001\u4e0eJava\u7c7b\u7684\u533a\u522b\u3001\u6838\u2f3c\u7279\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">HttpServlet\u7c7b&#xff08;\u7ee7\u627f\u5173\u7cfb\u3001\u6838\u2f3c\u2f45\u6cd5\u3001\u8bf7\u6c42\u5904\u7406\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u63a5\u2f1d&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletConfig\u63a5\u2f1d&#xff08;\u83b7\u53d6Servlet\u914d\u7f6e\u53c2\u6570\u3001\u83b7\u53d6ServletContext\u5bf9\u8c61&#xff09;<\/span><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContext\u63a5\u2f1d&#xff08;\u5168\u5c40\u4e0a\u4e0b\u2f42\u3001\u5171\u4eab\u6570\u636e\u3001\u83b7\u53d6\u8d44\u6e90\u8def\u5f84&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u5bf9\u8c61&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletRequest\u5bf9\u8c61&#xff08;\u83b7\u53d6\u8bf7\u6c42\u53c2\u6570\u3001\u8bf7\u6c42\u5934\u3001Cookie\u3001Session\u5173\u8054&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletResponse\u5bf9\u8c61&#xff08;\u8bbe\u7f6e\u54cd\u5e94\u5934\u3001\u54cd\u5e94\u6570\u636e\u3001Cookie\u5199\u2f0a\u3001\u91cd\u5b9a\u5411&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">doGet()\u2f45\u6cd5&#xff08;\u8bf7\u6c42\u5904\u7406\u903b\u8f91\u3001\u53c2\u6570\u4f20\u9012\u2f45\u5f0f\u3001\u9002\u2f64\u573a\u666f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">doPost()\u2f45\u6cd5&#xff08;\u4e0edoGet()\u7684\u533a\u522b\u3001\u53c2\u6570\u4f20\u9012\u7279\u70b9\u3001\u6570\u636e\u5b89\u5168\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">\u5176\u4ed6\u5173\u952e\u7ec4\u4ef6&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">RequestDispatch\u5bf9\u8c61&#xff08;\u8bf7\u6c42\u8f6c\u53d1\u3001\u8d44\u6e90\u8df3\u8f6c\u3001\u6570\u636e\u5171\u4eab&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u5bf9\u8c61&#xff08;\u521b\u5efa\u3001\u8bbe\u7f6e\u5c5e\u6027\u3001\u53d1\u9001\u4e0e\u83b7\u53d6\u3001\u2f63\u547d\u5468\u671f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u5bf9\u8c61&#xff08;\u521b\u5efa\u673a\u5236\u3001\u4f1a\u8bdd\u7ef4\u6301\u3001\u6570\u636e\u5b58\u50a8\u4e0e\u83b7\u53d6\u3001\u5931\u6548\u7b56\u7565&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">7. <\/span><span style=\"color:#1f2329\">Servlet\u7684\u2f63\u547d\u5468\u671f&#xff08;\u521d\u59cb\u5316init()\u3001\u670d\u52a1service()\u3001\u9500\u6bc1destroy()\u3001\u5404\u9636\u6bb5\u89e6\u53d1\u6761\u4ef6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">8. <\/span><span style=\"color:#1f2329\">Filter\u8fc7\u6ee4\u5668&#xff08;\u5b9a\u4e49\u3001\u4f5c\u2f64\u3001\u2f63\u547d\u5468\u671f\u3001\u914d\u7f6e\u2f45\u5f0f\u3001\u8fc7\u6ee4\u94fe\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">9. <\/span><span style=\"color:#1f2329\">Listener\u76d1\u542c\u5668&#xff08;\u6838\u2f3c\u7c7b\u578b\u3001\u76d1\u542c\u4e8b\u4ef6\u3001\u4f5c\u2f64\u573a\u666f\u3001\u914d\u7f6e\u2f45\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;JSP <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;\u5b9a\u4e49\u3001\u4f5c\u2f64\u3001\u4e0eServlet\u7684\u5173\u7cfb\u3001\u4f18\u52bf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">JSP\u8bed\u6cd5&#xff08;\u811a\u672c\u2f5a\u6bb5&lt;% %&gt;\u3001\u8868\u8fbe\u5f0f&lt;%&#061; %&gt;\u3001\u58f0\u660e&lt;%! %&gt;\u3001\u6ce8\u91ca\u683c\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6267\u2f8f\u8fc7\u7a0b&#xff08;\u7ffb\u8bd1\u9636\u6bb5\u3001\u7f16\u8bd1\u9636\u6bb5\u3001\u8fd0\u2f8f\u9636\u6bb5\u3001\u7ed3\u679c\u8f93\u51fa\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u4e0eServlet\u7684\u533a\u522b&#xff08;\u5f00\u53d1\u2f45\u5f0f\u3001\u8fd0\u2f8f\u673a\u5236\u3001\u9002\u2f64\u573a\u666f\u3001\u4f18\u7f3a\u70b9\u5bf9\u2f50&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">JSP\u6307\u4ee4&#xff08;page\u6307\u4ee4\u3001include\u6307\u4ee4\u3001taglib\u6307\u4ee4&#xff0c;\u5404\u6307\u4ee4\u6838\u2f3c\u5c5e\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">JSP\u5185\u7f6e\u5bf9\u8c61&#xff08;request\u3001response\u3001session\u3001application\u3001out\u3001config\u3001page\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">pageContext\u3001exception&#xff0c;\u6bcf\u4e2a\u5bf9\u8c61\u7684\u4f5c\u2f64\u4e0e\u5e38\u2f64\u2f45\u6cd5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">7. <\/span><span style=\"color:#1f2329\">JSP\u52a8\u4f5c&#xff08;&lt;jsp:include&gt;\u3001&lt;jsp:forward&gt;\u3001&lt;jsp:useBean&gt;\u3001&lt;jsp:setProperty&gt;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:getProperty&gt;&#xff0c;\u52a8\u4f5c\u6807\u7b7e\u7684\u2f64\u6cd5\u4e0e\u7279\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">8. <\/span><span style=\"color:#1f2329\">include\u4e0eforward\u7684\u533a\u522b&#xff08;\u9759\u6001\u5305\u542bvs\u52a8\u6001\u5305\u542b\u3001\u8bf7\u6c42\u8f6c\u53d1\u7684\u8df3\u8f6c\u673a\u5236\u3001\u6570\u636e\u4f20\u9012\u5dee\u5f02&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;EL\u548cJSTL <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">JavaBean\u7684\u57fa\u672c\u6982\u5ff5&#xff08;\u5b9a\u4e49\u89c4\u8303\u3001\u5c5e\u6027\u5c01\u88c5\u3001getter\/setter\u2f45\u6cd5\u3001\u4f5c\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">EL\u8868\u8fbe\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;\u4f5c\u2f64\u3001\u8bed\u6cd5\u683c\u5f0f\u3001\u4f18\u52bf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u8bc6\u7b26\u3001\u4fdd\u7559\u5b57&#xff08;\u5408\u6cd5\u6807\u8bc6\u7b26\u89c4\u5219\u3001\u5e38\u2ec5\u4fdd\u7559\u5b57&#xff09;<\/span><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d8\u91cf\u3001\u5e38\u91cf&#xff08;\u6570\u636e\u7c7b\u578b\u3001\u53d6\u503c\u2f45\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fd0\u7b97\u7b26&#xff08;\u7b97\u672f\u8fd0\u7b97\u7b26\u3001\u2f50\u8f83\u8fd0\u7b97\u7b26\u3001\u903b\u8f91\u8fd0\u7b97\u7b26\u3001empty\u8fd0\u7b97\u7b26\u3001\u4e09\u5143\u8fd0\u7b97\u7b26&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">JSTL&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;JSP\u6807\u51c6\u6807\u7b7e\u5e93\u7684\u4f5c\u2f64\u3001\u6838\u2f3c\u6807\u7b7e\u5e93\u5206\u7c7b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6807\u7b7e&#xff08;\u5faa\u73af\u6807\u7b7e&lt;c:forEach&gt;\u3001\u6761\u4ef6\u6807\u7b7e&lt;c:if&gt;\u3001&lt;c:choose&gt;\u3001URL\u6807\u7b7e&lt;c:url&gt;\u7b49\u7684\u2f64\u6cd5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u7b7e\u4f7f\u2f64\u524d\u63d0&#xff08;\u5f15\u2f0ataglib\u6307\u4ee4\u3001\u4f9d\u8d56jar\u5305&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;JDBC <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;\u5b9a\u4e49\u3001\u4f5c\u2f64\u3001Java\u8bbf\u95ee\u6570\u636e\u5e93\u7684\u6838\u2f3c\u6280\u672f\u3001\u4f18\u52bf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5e38\u2f64API&#xff08;DriverManager\u3001Connection\u3001Statement\u3001PreparedStatement\u3001ResultSet&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7a0b\u5e8f\u5b9e\u73b0\u6d41\u7a0b&#xff08;\u52a0\u8f7d\u9a71\u52a8\u3001\u5efa\u2f74\u8fde\u63a5\u3001\u521b\u5efaStatement\u5bf9\u8c61\u3001\u6267\u2f8fSQL\u8bed\u53e5\u3001\u5904\u7406\u7ed3\u679c\u96c6\u3001\u5173\u95ed\u8d44 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6e90&#xff0c;\u5404\u6b65\u9aa4\u5f02\u5e38\u5904\u7406&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5173\u952e\u7ec6\u8282&#xff08;SQL\u6ce8\u2f0a\u9632\u8303\u3001\u4e8b\u52a1\u5904\u7406\u3001\u6279\u5904\u7406\u64cd\u4f5c\u3001\u8fde\u63a5\u6c60\u6982\u5ff5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u516d&#xff09;MVC\u8bbe\u8ba1\u6a21\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;Model\u3001View\u3001Controller\u7684\u804c\u8d23\u5212\u5206\u3001\u6838\u2f3c\u601d\u60f3&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4e24\u79cd\u5e38\u2f64\u8bbe\u8ba1\u6a21\u5f0f&#xff08;\u5177\u4f53\u6a21\u5f0f\u540d\u79f0\u3001\u5b9e\u73b0\u539f\u7406\u3001\u9002\u2f64\u573a\u666f\u3001\u4f18\u7f3a\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">MVC\u5728Java Web\u4e2d\u7684\u5e94\u2f64&#xff08;\u5404\u5c42\u5bf9\u5e94\u7ec4\u4ef6\u3001\u6570\u636e\u6d41\u8f6c\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e03&#xff09;Spring <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u57fa\u672c\u6982\u5ff5&#xff08;\u5b9a\u4e49\u3001\u6838\u2f3c\u7279\u6027\u3001\u4f18\u52bf\u3001\u9002\u2f64\u573a\u666f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4f9d\u8d56\u6ce8\u2f0a&#xff08;DI\u7684\u6982\u5ff5\u3001\u5b9e\u73b0\u2f45\u5f0f\u3001\u4f5c\u2f64\u3001\u6ce8\u2f0a\u7c7b\u578b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u2faf\u5411\u5207\u2faf\u7684\u7f16\u7a0b&#xff08;AOP\u7684\u6982\u5ff5\u3001\u6838\u2f3c\u672f\u8bed\u3001\u4f5c\u2f64\u3001\u5b9e\u73b0\u539f\u7406&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u4fa7\u91cd\u57fa\u7840\u77e5\u8bc6&#xff1a;\u91cd\u70b9\u638c\u63e1\u5404\u6a21\u5757\u6838\u2f3c\u6982\u5ff5\u3001\u5b9a\u4e49\u3001\u6838\u2f3c\u2f45\u6cd5\/\u6807\u7b7e\/API\u7684\u4f5c\u2f64&#xff0c;\u786e\u4fdd\u9009\u62e9\u9898\u3001\u586b\u7a7a\u9898 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0d\u4e22\u5206\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5f3a\u5316\u5b9e\u8df5\u7f16\u7a0b&#xff1a;\u9488\u5bf9Servlet\u3001JSP\u3001JDBC\u76f8\u5173\u77e5\u8bc6\u70b9&#xff0c;\u7ed3\u5408\u6848\u4f8b\u7ec3\u4e60\u7f16\u7a0b\u9898&#xff08;\u5982\u8868\u5355\u63d0\u4ea4\u5904\u7406\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u589e\u5220\u6539\u67e5\u3001\u4f1a\u8bdd\u7ba1\u7406\u7b49\u573a\u666f&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u68b3\u7406\u903b\u8f91\u5173\u8054&#xff1a;\u660e\u786eServlet\u4e0eJSP\u7684\u534f\u4f5c\u6d41\u7a0b\u3001MVC\u5404\u5c42\u7684\u4ea4\u4e92\u5173\u7cfb\u3001HTTP\u8bf7\u6c42\u4ece\u5ba2\u2f3e\u7aef\u5230\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5668\u7684\u5904\u7406\u94fe\u8def\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5173\u6ce8\u7ec6\u8282\u5dee\u5f02&#xff1a;\u5982doGet()\u4e0edoPost()\u7684\u533a\u522b\u3001include\u6307\u4ee4\u4e0e\u52a8\u4f5c\u7684\u5dee\u5f02\u3001Cookie\u4e0eSession\u7684\u9002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u573a\u666f\u7b49&#xff0c;\u5e94\u5bf9\u7b80\u7b54\u9898\u3002<\/span><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u89c4\u8303\u7b54\u9898\u4e60\u60ef&#xff1a;\u7262\u8bb0\u7b54\u9898\u5377\u4e66\u5199\u8981\u6c42&#xff0c;\u7f16\u7a0b\u9898\u6ce8\u610f\u4ee3\u7801\u683c\u5f0f\u89c4\u8303\u3001\u6ce8\u91ca\u6e05\u6670&#xff0c;\u907f\u514d\u56e0\u683c\u5f0f\u95ee\u9898\u4e22 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5206\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Web\u57fa\u7840\u77e5\u8bc6\u590d\u4e60\u7b14\u8bb0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf4\u660e&#xff1a;\u672c\u7b14\u8bb0\u805a\u7126Web\u5f00\u53d1\u6838\u2f3c\u57fa\u7840\u77e5\u8bc6\u70b9&#xff0c;\u6db5\u76d6HTML\u3001HTTP\u534f\u8bae\u3001Tomcat\u4e09\u2f24\u6838\u2f3c\u6a21\u5757&#xff0c;\u68b3\u7406\u5404 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6a21\u5757\u6838\u2f3c\u6982\u5ff5\u3001\u91cd\u70b9\u5185\u5bb9\u53ca\u5173\u952e\u8003\u70b9&#xff0c;\u52a9\u2f12\u590d\u4e60\u5de9\u56fa\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch1 \u2f79\u7edc\u5e94\u2f64\u67b6\u6784\u8bbe\u8ba1\u4e0e\u5f00\u53d1\u6982\u8bba <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u8003\u8bd5\u6838\u2f3c\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8003\u8bd5\u65f6\u95f4&#xff1a;12\u2f4916\u2f47&#xff08;\u6682\u5b9a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6210\u7ee9\u6784\u6210&#xff1a;\u671f\u672b\u5377\u2faf\u6210\u7ee960% &#043; \u5b9e\u9a8c\u62a5\u544a40% <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u8003\u8bd5\u5185\u5bb9&#xff1a;\u57fa\u7840\u7406\u8bba\u548c\u6982\u5ff5 &#043; \u7f16\u7a0b\u80fd\u2f12&#xff08;\u4e0e\u5b9e\u9a8c\u7d27\u5bc6\u5173\u8054&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5173\u952e\u6ce8\u610f\u4e8b\u9879&#xff1a;\u8003\u8bd5\u524d\u52a1\u5fc5\u6309\u65f6\u63d0\u4ea4\u5b9e\u9a8c\u62a5\u544a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u6838\u2f3c\u77e5\u8bc6\u70b9\u68b3\u7406 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u2f79\u7edc\u57fa\u7840\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u4e92\u8054\u2f79\u4e0e\u56e0\u7279\u2f79 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e92\u8054\u2f79&#xff1a;\u6cdb\u6307\u4efb\u4f55\u80fd\u5f7c\u6b64\u901a\u4fe1\u7684\u8bbe\u5907\u7ec4\u6210\u7684\u2f79\u7edc\u96c6\u5408 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56e0\u7279\u2f79&#xff08;Internet&#xff09;&#xff1a;\u7279\u6307\u91c7\u2f64TCP\/IP\u534f\u8bae\u6784\u5efa\u7684\u5168\u7403\u6027\u3001\u5f00\u653e\u7684\u8ba1\u7b97\u673a\u4e92\u8054\u2f79\u7edc <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d1\u5c55\u5173\u952e\u8282\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1960\u5e74&#xff1a;ARPA\u2f79&#xff08;DARPA\u4e3b\u5bfc&#xff09;\u5960\u57fa <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1974\u5e74&#xff1a;\u7f57\u4f2f\u7279\u00b7\u5361\u6069\u4e0e\u2f42\u987f\u00b7\u745f\u592b\u63d0\u51faTCP\/IP\u534f\u8bae&#xff08;\u83b72004\u5e74\u56fe\u7075\u5956&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1983\u5e74&#xff1a;ARPA\u2f79\u6b63\u5f0f\u91c7\u2f64TCP\/IP\u4f5c\u4e3a\u6838\u2f3c\u534f\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1991\u5e74&#xff1a;\u8482\u59c6\u00b7\u4f2f\u7eb3\u65af-\u674e\u63a8\u51fa\u4e07\u7ef4\u2f79&#xff08;WWW&#xff09;\u516c\u5171\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1994\u5e74&#xff1a;\u4e07\u7ef4\u2f79\u8054\u76df&#xff08;W3C&#xff09;\u6210\u2f74 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u2f79\u7edc\u5c42\u7ed3\u6784\u6a21\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6a21\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c42\u7ea7\u5212\u5206&#xff08;\u2f83\u4e0a\u2f7d\u4e0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">OSI\u53c2\u8003\u6a21\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u5c42\u2192\u8868\u2f70\u5c42\u2192\u4f1a\u8bdd\u5c42\u2192\u4f20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f93\u5c42\u2192\u2f79\u7edc\u5c42\u2192\u6570\u636e\u94fe\u8def\u5c42\u2192 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7269\u7406\u5c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u5c42&#xff1a;\u63d0\u4f9b\u5e94\u2f64\u670d\u52a1&#xff1b;\u8868\u2f70 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c42&#xff1a;\u6570\u636e\u683c\u5f0f\u8f6c\u6362\/\u52a0\u5bc6&#xff1b;\u4f20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f93\u5c42&#xff1a;\u7aef\u5230\u7aef\u8fde\u63a5\u7ba1\u7406&#xff1b;\u2f79\u7edc <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c42&#xff1a;IP\u9009\u5740\u4e0e\u8def\u7531<\/span><span style=\"color:#1f2329\">TCP\/IP\u6a21\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u5c42\u2192\u4f20\u8f93\u5c42\u2192\u2f79\u7edc\u5c42\u2192\u94fe <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8def\u5c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5404\u5c42\u57fa\u4e8e\u4e0b\u5c42\u670d\u52a1&#xff0c;\u4e3a\u4e0a\u5c42\u63d0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9b\u2f40\u6491&#xff0c;\u901a\u8fc7\u534f\u8bae\u6808\u534f\u540c\u2f2f\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. TCP\/IP\u534f\u8bae\u7c07\u6838\u2f3c\u534f\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">TCP&#xff08;\u4f20\u8f93\u63a7\u5236\u534f\u8bae&#xff09;&#xff1a;\u2faf\u5411\u8fde\u63a5\u3001\u53ef\u9760\u3001\u5168\u53cc\u2f2f\u901a\u4fe1&#xff0c;\u8d1f\u8d23\u6570\u636e\u5206\u5272\u3001\u91cd\u7ec4&#xff0c;\u9002\u2f64\u4e8e\u9700\u8981\u53ef\u9760\u4f20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f93\u7684\u573a\u666f&#xff08;\u5982HTTP&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">UDP&#xff08;\u2f64\u2f3e\u6570\u636e\u62a5\u534f\u8bae&#xff09;&#xff1a;\u2f46\u8fde\u63a5\u3001\u7b80\u5355\u3001\u53ef\u9760\u6027\u4f4e&#xff0c;\u9002\u2f64\u4e8e\u5b9e\u65f6\u901a\u4fe1&#xff08;\u5982\u89c6\u9891\u901a\u8bdd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">IP&#xff08;\u2f79\u9645\u534f\u8bae&#xff09;&#xff1a;\u2f46\u8fde\u63a5&#xff0c;\u8d1f\u8d23\u8ba1\u7b97\u673a\u95f4\u6570\u636e\u5305\u8def\u7531&#xff0c;IPv4\u91c7\u2f6432\u4f4d\u5730\u5740&#xff08;\u70b9\u5206\u2f17\u8fdb\u5236\u8868\u2f70&#xff0c;\u517142 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ebf&#043;\u5730\u5740&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f85\u52a9\u534f\u8bae&#xff1a;ICMP&#xff08;\u9519\u8bef\u4e0e\u72b6\u6001\u53cd\u9988&#xff09;\u3001DHCP&#xff08;\u52a8\u6001\u5bfb\u5740&#xff09;\u3001DNS&#xff08;\u57df\u540d\u89e3\u6790&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u4e07\u7ef4\u2f79&#xff08;WWW&#xff09;\u6838\u2f3c\u6280\u672f <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u4e07\u7ef4\u2f79\u57fa\u7840 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u57fa\u4e8e\u4e92\u8054\u2f79\u7684\u8d85\u2f42\u672c\u7cfb\u7edf&#xff0c;\u901a\u8fc7URI\u6807\u8bc6\u8d44\u6e90&#xff0c;\u91c7\u2f64HTTP\u534f\u8bae\u901a\u4fe1&#xff0c;\u662f\u4fe1\u606f\u7a7a\u95f4\u2f7d\u2fae\u2f79\u7edc\u672c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f9d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4e09\u8981\u7d20&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">URI&#xff08;\u7edf\u2f00\u8d44\u6e90\u6807\u8bc6\u7b26&#xff09;&#xff1a;\u6807\u8bc6\u8d44\u6e90\u7684\u5b57\u7b26\u4e32&#xff08;\u542bURL\u3001URN\u2f26\u7c7b\u578b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTTP&#xff08;\u8d85\u2f42\u672c\u4f20\u8f93\u534f\u8bae&#xff09;&#xff1a;\u5ba2\u2f3e\u7aef\u4e0e\u670d\u52a1\u5668\u901a\u4fe1\u6807\u51c6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTML&#xff08;\u8d85\u2f42\u672c\u6807\u8bb0\u8bed\u2f94&#xff09;&#xff1a;\u5b9a\u4e49\u2f79\u2eda\u7ed3\u6784\u4e0e\u683c\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. URL\u4e0eURI <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">URL&#xff08;\u7edf\u2f00\u8d44\u6e90\u5b9a\u4f4d\u5668&#xff09;&#xff1a;\u7ec4\u6210&#061;\u534f\u8bae\u540d\u79f0&#043;\u4e3b\u673a\u5730\u5740&#043;\u7aef\u2f1d\u53f7&#043;\u8d44\u6e90\u540d\u79f0&#xff08;\u4f8b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#336df4\">http:\/\/www.scut.edu.cn:80\/index.html<\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9ed8\u8ba4\u7aef\u2f1d&#xff1a;HTTP\u4e3a80&#xff0c;HTTPS\u4e3a443&#xff0c;\u53ef\u7701\u7565 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e3b\u673a\u5730\u5740&#xff1a;\u2f40\u6301\u57df\u540d&#xff08;\u5982<\/span><span style=\"color:#336df4\">www.google.com<\/span><span style=\"color:#1f2329\">&#xff09;\u6216IP\u5730\u5740&#xff08;\u5982[12.45.56.67](12.45.56.67)&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">URI\u4e0eURL\u5173\u7cfb&#xff1a;URL\u662fURI\u7684\u2f26\u96c6&#xff0c;\u6240\u6709URL\u90fd\u662fURI&#xff0c;\u4f46URI\u4e0d\u2f00\u5b9a\u662fURL <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. HTTP\u534f\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u6027&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u8fde\u63a5&#xff1a;\u2f00\u6b21\u8fde\u63a5\u5904\u7406\u2f00\u4e2a\u8bf7\u6c42&#xff0c;\u54cd\u5e94\u540e\u65ad\u5f00 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5a92\u4f53\u72ec\u2f74&#xff1a;\u2f40\u6301\u4efb\u610f\u6570\u636e\u7c7b\u578b&#xff08;\u901a\u8fc7MIME-type\u6307\u5b9a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u72b6\u6001&#xff1a;\u534f\u8bae\u2f46\u4e8b\u52a1\u8bb0\u5fc6\u80fd\u2f12&#xff0c;\u9700\u901a\u8fc7Cookie\/Session\u8865\u5145\u72b6\u6001 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42-\u54cd\u5e94\u6d41\u7a0b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef&#xff08;\u6d4f\u89c8\u5668&#xff09;\u5efa\u2f74TCP\u8fde\u63a5&#xff0c;\u53d1\u9001HTTP\u8bf7\u6c42<\/span><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u5904\u7406\u8bf7\u6c42&#xff0c;\u8fd4\u56deHTTP\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u63a5\u6536\u54cd\u5e94&#xff0c;\u5173\u95ed\u8fde\u63a5\u5e76\u6e32\u67d3\u5185\u5bb9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u6d88\u606f\u7ed3\u6784&#xff1a;\u8bf7\u6c42\u2f8f&#xff08;\u2f45\u6cd5&#043;URL&#043;\u534f\u8bae\u7248\u672c&#xff09;&#043; \u8bf7\u6c42\u5934\u90e8 &#043; \u7a7a\u2f8f &#043; \u8bf7\u6c42\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u54cd\u5e94\u6d88\u606f\u7ed3\u6784&#xff1a;\u72b6\u6001\u2f8f &#043; \u6d88\u606f\u62a5\u5934 &#043; \u7a7a\u2f8f &#043; \u54cd\u5e94\u6b63\u2f42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">8\u79cd\u8bf7\u6c42\u2f45\u6cd5&#xff08;\u5e38\u2f64\u6838\u2f3c&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">GET&#xff1a;\u83b7\u53d6\u8d44\u6e90&#xff08;\u53c2\u6570\u5728URL\u4e2d&#xff0c;\u2ed3\u5ea6\u6709\u9650&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">POST&#xff1a;\u63d0\u4ea4\u6570\u636e&#xff08;\u53c2\u6570\u5728\u8bf7\u6c42\u4f53&#xff0c;\u2f40\u6301\u2f24\u2f42\u4ef6\/\u654f\u611f\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">PUT&#xff1a;\u66f4\u65b0\u8d44\u6e90&#xff1b;DELETE&#xff1a;\u5220\u9664\u8d44\u6e90 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2ec5\u72b6\u6001\u7801&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">200&#xff1a;\u8bf7\u6c42\u6210\u529f&#xff1b;301&#xff1a;\u8d44\u6e90\u6c38\u4e45\u91cd\u5b9a\u5411 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">404&#xff1a;\u8bf7\u6c42\u8d44\u6e90\u4e0d\u5b58\u5728&#xff1b;500&#xff1a;\u670d\u52a1\u5668\u5185\u90e8\u9519\u8bef <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;Web\u524d\u7aef\u5f00\u53d1\u6280\u672f <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. HTML&#xff08;\u8d85\u2f42\u672c\u6807\u8bb0\u8bed\u2f94&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f5c\u2f64&#xff1a;\u5b9a\u4e49\u2f79\u2eda\u7ed3\u6784\u4e0e\u5185\u5bb9&#xff0c;\u2fae\u7f16\u7a0b\u8bed\u2f94 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64\u6807\u7b7e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u6863\u7ed3\u6784&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;html&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u6839\u6807\u7b7e&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;head&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u5934\u90e8&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;body&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u4e3b\u4f53&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5185\u5bb9\u6807\u7b7e&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;h1&gt;-&lt;h6&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u6807\u9898&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;p&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u6bb5\u843d&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;a&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u8d85\u94fe\u63a5&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;img&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u56fe <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f5a&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;table&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u8868\u683c&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;form&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u8868\u5355&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTML5\u65b0\u7279\u6027&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5a92\u4f53\u5143\u7d20&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;canvas&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u7ed8\u753b&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&lt;video&gt; <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">&lt;audio&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u2fb3\u89c6\u9891&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u4e49\u6807\u7b7e&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;article&gt; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&lt;footer&gt; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&lt;header&gt; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&lt;nav&gt; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&lt;section&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u65b0\u8868\u5355\u63a7\u4ef6&#xff1a;calendar\u3001date\u3001email\u3001url\u3001search <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fdAPI&#xff1a;\u5730\u7406\u5b9a\u4f4d&#xff08;Geolocation&#xff09;\u3001\u672c\u5730\u5b58\u50a8&#xff08;localStorage\/sessionStorage&#xff09;\u3001\u8bbe\u5907\u4f20\u611f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. CSS&#xff08;\u5c42\u53e0\u6837\u5f0f\u8868&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u601d\u60f3&#xff1a;\u5206\u79bb\u5185\u5bb9&#xff08;HTML&#xff09;\u4e0e\u8868\u73b0&#xff08;\u6837\u5f0f&#xff09;&#xff0c;\u2f40\u6301\u6837\u5f0f\u91cd\u2f64\u4e0e\u5c42\u53e0 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u79cd\u5f15\u2f0a\u2f45\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u5185\u8054\u6837\u5f0f&#xff1a;\u901a\u8fc7\u5143\u7d20 <\/span><span style=\"color:#1f2329\">style <\/span><span style=\"color:#1f2329\">\u5c5e\u6027&#xff08;\u4f18\u5148\u7ea7\u6700\u2fbc&#xff0c;\u4ec5\u4f5c\u2f64\u4e8e\u5f53\u524d\u5143\u7d20&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u5185\u90e8\u6837\u5f0f\u8868&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;style&gt; <\/span><span style=\"color:#1f2329\">\u6807\u7b7e&#xff08;\u4f5c\u2f64\u4e8e\u5f53\u524d\u2eda\u2faf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u5916\u90e8\u6837\u5f0f\u8868&#xff1a; <\/span><span style=\"color:#1f2329\">.css <\/span><span style=\"color:#1f2329\">\u2f42\u4ef6&#043; <\/span><span style=\"color:#1f2329\">&lt;link&gt; <\/span><span style=\"color:#1f2329\">\u5f15\u2f0a&#xff08;\u4f18\u5148\u7ea7\u6700\u4f4e&#xff0c;\u53ef\u590d\u2f64&#xff09;<\/span><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u77e5\u8bc6\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9009\u62e9\u5668&#xff1a;\u7c7b\u578b\u9009\u62e9\u5668&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">p <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u7c7b\u9009\u62e9\u5668&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">.class <\/span><span style=\"color:#1f2329\">&#xff09;\u3001ID\u9009\u62e9\u5668&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">#id <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u4f2a\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">a:hover <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u76d2\u6a21\u578b&#xff1a;content&#xff08;\u5185\u5bb9\u533a&#xff09;\u2192 padding&#xff08;\u5185\u8fb9\u8ddd&#xff09;\u2192 border&#xff08;\u8fb9\u6846&#xff09;\u2192 margin&#xff08;\u5916\u8fb9\u8ddd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u7279\u6027&#xff1a;\u7ee7\u627f\u6027\u3001\u4f18\u5148\u7ea7\u3001\u54cd\u5e94\u5f0f\u8bbe\u8ba1&#xff08;\u5a92\u4f53\u67e5\u8be2&#xff09;\u3001\u52a8\u753b\u4e0e\u8fc7\u6e21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. JavaScript&#xff08;JS&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u5b9a\u4f4d&#xff1a;\u5ba2\u2f3e\u7aef\u811a\u672c\u8bed\u2f94&#xff0c;\u4e3a\u2f79\u2eda\u6dfb\u52a0\u52a8\u6001\u4ea4\u4e92\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ec4\u6210\u90e8\u5206&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ECMAScript&#xff1a;\u8bed\u6cd5\u4e0e\u57fa\u7840\u5bf9\u8c61&#xff08;\u6838\u2f3c\u6807\u51c6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DOM&#xff08;\u2f42\u6863\u5bf9\u8c61\u6a21\u578b&#xff09;&#xff1a;\u64cd\u4f5c\u2f79\u2eda\u5185\u5bb9\/\u7ed3\u6784\/\u6837\u5f0f\u7684API <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">BOM&#xff08;\u6d4f\u89c8\u5668\u5bf9\u8c61\u6a21\u578b&#xff09;&#xff1a;\u4e0e\u6d4f\u89c8\u5668\u4ea4\u4e92\u7684API <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u64cd\u4f5cDOM&#xff1a;\u83b7\u53d6\u5143\u7d20&#xff08; <\/span><span style=\"color:#1f2329\">getElementById <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u4fee\u6539\u5185\u5bb9&#xff08; <\/span><span style=\"color:#1f2329\">textContent <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u7ed1\u5b9a\u4e8b\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">onclick <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">BOM\u5bf9\u8c61&#xff1a; <\/span><span style=\"color:#1f2329\">window <\/span><span style=\"color:#1f2329\">&#xff08;\u6838\u2f3c&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">location <\/span><span style=\"color:#1f2329\">&#xff08;URL\u4fe1\u606f&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">navigator <\/span><span style=\"color:#1f2329\">&#xff08;\u6d4f\u89c8\u5668\u4fe1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u606f&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">history <\/span><span style=\"color:#1f2329\">&#xff08;\u5386\u53f2\u8bb0\u5f55&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u573a\u666f&#xff1a;\u8868\u5355\u9a8c\u8bc1\u3001\u52a8\u6001\u66f4\u65b0\u2eda\u2faf\u3001\u52a8\u753b\u6548\u679c\u3001AJAX\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;Web\u540e\u7aef\u4e0e\u52a8\u6001\u2f42\u6863\u6280\u672f <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u52a8\u6001\u2f42\u6863\u4e0e\u9759\u6001\u2f42\u6863 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9759\u6001\u2f42\u6863&#xff1a;\u56fa\u5b9a\u5185\u5bb9&#xff0c;\u670d\u52a1\u5668\u76f4\u63a5\u8fd4\u56de\u2f42\u4ef6&#xff08;\u5982\u9759\u6001HTML&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a8\u6001\u2f42\u6863&#xff1a;\u5185\u5bb9\u6309\u9700\u2f63\u6210&#xff0c;\u5206\u4e24\u7c7b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u7aef&#xff1a;CGI\u3001<\/span><span style=\"color:#336df4\">ASP.NET<\/span><span style=\"color:#1f2329\">\u3001PHP\u3001JSP\u3001Servlet&#xff08;\u6838\u2f3c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef&#xff1a;JavaScript&#043;DOM&#xff08;\u2f46\u9700\u670d\u52a1\u5668\u53c2\u4e0e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. Servlet\u4e0eJSP <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Servlet&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u8fd0\u2f8f\u5728Web\u5bb9\u5668&#xff08;\u5982Tomcat&#xff09;\u4e2d\u7684Java\u7a0b\u5e8f&#xff0c;\u4f5c\u4e3a\u5ba2\u2f3e\u7aef\u4e0e\u670d\u52a1\u5668\u8d44\u6e90\u7684\u4e2d\u95f4\u5c42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f18\u52bf&#xff1a;\u76f8\u2f50CGI\u6027\u80fd\u66f4\u2fbc&#xff08;\u5e38\u9a7b\u5185\u5b58&#xff09;\u3001\u8de8\u5e73\u53f0&#xff08;Java\u7279\u6027&#xff09;\u3001\u5b89\u5168\u53ef\u9760 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd&#xff1a;\u5904\u7406HTTP\u8bf7\u6c42\u3001\u4e0e\u6570\u636e\u5e93\u4ea4\u4e92\u3001\u52a8\u6001\u2f63\u6210\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP&#xff08;Java Server Pages&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;HTML\u4e2d\u5d4c\u2f0aJava\u811a\u672c\u7684\u52a8\u6001\u2f79\u2eda\u6280\u672f&#xff0c;\u2f42\u4ef6\u540e\u7f00 <\/span><span style=\"color:#1f2329\">.jsp<\/span><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f18\u52bf&#xff1a;\u517c\u987eHTML\u7684\u2eda\u2faf\u5c55\u2f70\u4e0eJava\u7684\u4e1a\u52a1\u5904\u7406&#xff0c;\u79fb\u690d\u6027\u5f3a&#xff08;\u8de8\u5e73\u53f0&#xff09;\u3001\u2f40\u6301\u4f01\u4e1a\u7ea7Java API <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;JDBC\u3001EJB\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0eServlet\u5173\u7cfb&#xff1a;JSP\u672c\u8d28\u4f1a\u88ab\u7f16\u8bd1\u4e3aServlet\u6267\u2f8f&#xff0c;\u4e92\u8865\u5206\u2f2f&#xff08;JSP\u4fa7\u91cd\u89c6\u56fe&#xff0c;Servlet\u4fa7\u91cd\u63a7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5236&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. MVC\u8bbe\u8ba1\u6a21\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u601d\u60f3&#xff1a;\u5c06\u5e94\u2f64\u5206\u4e3a\u4e09\u2f24\u7ec4\u4ef6&#xff0c;\u677e\u8026\u5408\u8bbe\u8ba1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Model&#xff08;\u6a21\u578b&#xff09;&#xff1a;\u5904\u7406\u4e1a\u52a1\u903b\u8f91\u4e0e\u6570\u636e\u7ba1\u7406&#xff08;\u5982JavaBean&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">View&#xff08;\u89c6\u56fe&#xff09;&#xff1a;\u5c55\u2f70\u6570\u636e&#xff08;\u5982JSP\u2eda\u2faf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Controller&#xff08;\u63a7\u5236\u5668&#xff09;&#xff1a;\u63a5\u6536\u8bf7\u6c42\u3001\u8f6c\u53d1\u5904\u7406\u3001\u8fd4\u56de\u54cd\u5e94&#xff08;\u5982Servlet&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e24\u79cd\u4f53\u7cfb\u7ed3\u6784&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Model 1&#xff1a;JSP&#043;JavaBean&#xff08;\u2f46\u72ec\u2f74\u63a7\u5236\u5668&#xff0c;\u9002\u2f64\u4e8e\u2f29\u578b\u9879\u2f6c&#xff0c;\u7ef4\u62a4\u6027\u5dee&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Model 2&#xff1a;JSP&#xff08;View&#xff09;&#043; Servlet&#xff08;Controller&#xff09;&#043; JavaBean&#xff08;Model&#xff09;&#xff08;\u63a8\u8350&#xff0c;\u7ed3\u6784\u6e05\u6670&#xff0c;\u53ef <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6269\u5c55\u6027\u5f3a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">4. Tomcat\u670d\u52a1\u5668 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4f4d&#xff1a;\u5f00\u6e90Web\u5bb9\u5668&#xff08;\u2f40\u6301Servlet\/JSP&#xff09;&#xff0c;\u517c\u5177Web\u670d\u52a1\u5668\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u914d\u7f6e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0b\u8f7d\u5b89\u88c5&#xff1a;\u9700\u5148\u5b89\u88c5Java\u8fd0\u2f8f\u65f6\u73af\u5883&#xff08;JRE\/JDK&#xff09;&#xff0c;\u5b98\u2f79&#xff1a;<\/span><span style=\"color:#336df4\">http:\/\/tomcat.apache.org\/ <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7aef\u2f1d\u914d\u7f6e&#xff1a;\u9ed8\u8ba4HTTP\u7aef\u2f1d8080&#xff0c;\u53ef\u4fee\u6539 <\/span><span style=\"color:#1f2329\">conf\/server.xml <\/span><span style=\"color:#1f2329\">\u7684Connector\u7aef\u2f1d\u5c5e\u6027&#xff08;\u5982\u6539\u4e3a <\/span><\/p>\n<p><span style=\"color:#1f2329\">80&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f6c\u5f55&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">bin&#xff1a;\u53ef\u6267\u2f8f\u2f42\u4ef6\u4e0e\u811a\u672c&#xff1b;conf&#xff1a;\u914d\u7f6e\u2f42\u4ef6&#xff1b;lib&#xff1a;\u4f9d\u8d56jar\u5305&#xff1b;webapps&#xff1a;\u90e8\u7f72\u5e94\u2f64\u7a0b\u5e8f&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1f2329\">logs&#xff1a;\u2f47\u5fd7\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;AJAX\u6280\u672f <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u5f02\u6b65JavaScript\u548cXML&#xff08;\u73b0\u4e3b\u6d41\u2f64JSON&#xff09;&#xff0c;\u2f46\u9700\u5237\u65b0\u6574\u4e2a\u2eda\u2faf\u5373\u53ef\u4e0e\u670d\u52a1\u5668\u4ea4\u6362\u6570\u636e\u5e76\u5c40 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u90e8\u66f4\u65b0 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u539f\u7406&#xff1a;\u57fa\u4e8e <\/span><span style=\"color:#1f2329\">XMLHttpRequest <\/span><span style=\"color:#1f2329\">\u5bf9\u8c61\u6216 <\/span><span style=\"color:#1f2329\">Fetch API <\/span><span style=\"color:#1f2329\">&#xff0c;\u5b9e\u73b0\u5f02\u6b65\u901a\u4fe1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f2f\u4f5c\u6d41\u7a0b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u521b\u5efa\u8bf7\u6c42\u5bf9\u8c61&#xff08; <\/span><span style=\"color:#1f2329\">new XMLHttpRequest() <\/span><span style=\"color:#1f2329\">\u6216 <\/span><span style=\"color:#1f2329\">fetch() <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u914d\u7f6e\u8bf7\u6c42\u53c2\u6570&#xff08;\u2f45\u6cd5\u3001URL\u3001\u5f02\u6b65\u6807\u8bc6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u7ed1\u5b9a\u56de\u8c03\u51fd\u6570&#xff08;\u76d1\u542c\u8bf7\u6c42\u72b6\u6001\u53d8\u5316&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">d. <\/span><span style=\"color:#1f2329\">\u53d1\u9001\u8bf7\u6c42&#xff08; <\/span><span style=\"color:#1f2329\">send() <\/span><span style=\"color:#1f2329\">&#xff0c;POST\u53ef\u9644\u5e26\u6570\u636e&#xff09;<\/span><span style=\"color:#1456f0\">e. <\/span><span style=\"color:#1f2329\">\u5904\u7406\u54cd\u5e94&#xff08;\u89e3\u6790JSON\/XML&#xff0c;\u901a\u8fc7DOM\u66f4\u65b0\u2eda\u2faf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4ef7\u503c&#xff1a;\u63d0\u5347\u2f64\u2f3e\u4f53\u9a8c&#xff08;\u2f46\u5237\u65b0&#xff09;\u3001\u51cf\u5c11\u2f79\u7edc\u5e26\u5bbd\u6d88\u8017 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7406\u8bba\u91cd\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5403\u900fTCP\/IP\u534f\u8bae\u6808\u3001HTTP\u534f\u8bae&#xff08;\u8bf7\u6c42\u2f45\u6cd5\u3001\u72b6\u6001\u7801\u3001\u6d88\u606f\u7ed3\u6784&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u638c\u63e1MVC\u8bbe\u8ba1\u6a21\u5f0f\u3001Servlet\/JSP\u2f2f\u4f5c\u539f\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u533a\u5206\u6838\u2f3c\u6982\u5ff5&#xff1a;\u4e92\u8054\u2f79vs\u4e07\u7ef4\u2f79\u3001TCPvsUDP\u3001URIvsURL\u3001DOMvsBOM <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7f16\u7a0b\u5b9e\u8df5&#xff08;\u4e0e\u5b9e\u9a8c\u7d27\u5bc6\u5173\u8054&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u524d\u7aef&#xff1a;HTML\/CSS\u5e03\u5c40\u3001JavaScript DOM\u64cd\u4f5c\u3001\u7b80\u5355BOM\u5e94\u2f64 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540e\u7aef&#xff1a;Servlet\u63a5\u6536\u8bf7\u6c42\/\u5904\u7406\u54cd\u5e94\u3001JSP\u2eda\u2faf\u52a8\u6001\u6e32\u67d3 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7efc\u5408&#xff1a;AJAX\u5f02\u6b65\u8bf7\u6c42&#xff08;\u539f\u2f63XHR\u6216Fetch API&#xff09;\u3001\u524d\u540e\u7aef\u6570\u636e\u4ea4\u4e92 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5b9e\u9a8c\u62a5\u544a\u5173\u8054&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u70b9\u56de\u987e\u5b9e\u9a8c\u4e2d\u6d89\u53ca\u7684\u7f16\u7a0b\u6848\u4f8b&#xff08;\u5982Servlet\u914d\u7f6e\u3001AJAX\u8bf7\u6c42\u5b9e\u73b0\u3001MVC\u7ed3\u6784\u642d\u5efa&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u786e\u4fdd\u5b9e\u9a8c\u62a5\u544a\u4e2d\u6838\u2f3c\u4ee3\u7801\u4e0e\u7406\u8bba\u77e5\u8bc6\u70b9\u5bf9\u5e94&#xff08;\u5982HTTP\u8bf7\u6c42\u5904\u7406\u3001\u6570\u636e\u5e93\u8fde\u63a5\u903b\u8f91&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u6613\u9519\u70b9\u63d0\u9192&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTTP\u2f46\u72b6\u6001\u7279\u6027\u7684\u5f71\u54cd\u4e0e\u89e3\u51b3\u2f45\u6848 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">CSS\u9009\u62e9\u5668\u4f18\u5148\u7ea7\u4e0e\u5c42\u53e0\u89c4\u5219 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Servlet\u2f63\u547d\u5468\u671f\u4e0eTomcat\u90e8\u7f72\u6ce8\u610f\u4e8b\u9879 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">AJAX\u5f02\u6b65\u56de\u8c03\u7684\u6267\u2f8f\u987a\u5e8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u795d\u5404\u4f4d\u540c\u5b66\u590d\u4e60\u987a\u5229&#xff0c;\u8003\u8bd5\u6210\u529f&#xff01;\u5982\u9700\u8fdb\u2f00\u6b65\u7b54\u7591&#xff0c;\u53ef\u901a\u8fc7\u8bfe\u7a0bQQ\u7fa4&#xff08;\u7fa4\u53f7&#xff1a;1041862736&#xff09;\u4ea4\u6d41\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch2 Servlet <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. Servlet\u5b9a\u4e49\u4e0e\u5b9a\u4f4d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u8d28&#xff1a;\u8fd0\u2f8f\u5728Web\u670d\u52a1\u5668\u7aef&#xff08;\u5982Tomcat&#xff09;\u7684Java\u7a0b\u5e8f&#xff0c;\u57fa\u4e8eHTTP\u534f\u8bae&#xff0c;\u662fJava Web\u5f00\u53d1\u7684\u57fa <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7840\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0eJSP\u7684\u5173\u7cfb&#xff1a;JSP\u2eda\u2faf\u8fd0\u2f8f\u524d\u4f1a\u88abJSP\u5bb9\u5668\u7ffb\u8bd1\u6210Servlet&#xff0c;\u670d\u52a1\u5668\u7aef\u5b9e\u9645\u8fd0\u2f8f\u7684\u662fServlet\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f9d\u8d56&#xff1a;Servlet API&#xff08;\u2f00\u7ec4\u63a5\u2f1d\u548c\u7c7b&#xff09;&#xff0c;\u63d0\u4f9bServlet\u4e0e\u5bb9\u5668\u7684\u6807\u51c6\u901a\u4fe1\u6846\u67b6&#xff0c;\u72ec\u2f74\u4e8e\u5e73\u53f0\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u4e3b\u8981\u529f\u80fd<\/span><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8bfb\u53d6\u5ba2\u2f3e\u63d0\u4ea4\u7684\u663e\u5f0f\u6570\u636e&#xff08;HTML\u8868\u5355\u8f93\u2f0a\u3001hidden\u6807\u7b7e\u6570\u636e&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8bfb\u53d6\u6d4f\u89c8\u5668\u53d1\u9001\u7684\u9690\u5f0f\u8bf7\u6c42\u6570\u636e&#xff08;HTTP\u62a5\u2f42\u5934\u3001Cookie\u3001\u6d4f\u89c8\u5668\u2f40\u6301\u7684\u5a92\u4f53\u7c7b\u578b\u7b49&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u2f63\u6210\u54cd\u5e94\u7ed3\u679c&#xff08;\u8bbf\u95ee\u6570\u636e\u5e93\u3001\u8c03\u2f64Web\u670d\u52a1\u3001\u76f4\u63a5\u8ba1\u7b97&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5411\u5ba2\u2f3e\u53d1\u9001\u663e\u5f0f\u6570\u636e&#xff08;HTML\u3001XML\u3001\u2f06\u8fdb\u5236\u56fe\u50cf\u7b49&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u53d1\u9001\u9690\u5f0fHTTP\u54cd\u5e94\u6570\u636e&#xff08;\u54cd\u5e94\u5934\u3001Cookie\u3001\u7f13\u5b58\u53c2\u6570\u7b49&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001Servlet\u4f18\u52bf <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u2f83\u2f9d\u6838\u2f3c\u4f18\u52bf <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u4e8eJava\u8bed\u2f94&#xff1a;\u7ee7\u627f\u8de8\u5e73\u53f0\u3001\u2faf\u5411\u5bf9\u8c61\u3001\u5f3a\u7c7b\u578b\u3001\u5783\u573e\u56de\u6536\u3001\u4e30\u5bcc\u7c7b\u5e93\u7b49\u7279\u6027&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6a21\u5757\u5316\u4e0e\u53ef\u6269\u5c55\u6027&#xff1a;\u4fbf\u4e8e\u529f\u80fd\u6269\u5c55\u548c\u4ee3\u7801\u91cd\u2f64&#xff0c;\u53ef\u7ef4\u62a4\u6027\u5f3a&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b89\u5168\u53ef\u9760&#xff1a;Java\u5b89\u5168\u7ba1\u7406\u5668\u9650\u5236\u8d44\u6e90\u8bbf\u95ee&#xff0c;\u53ef\u4fe1\u5ea6\u2fbc\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u4e0eCGI\u7684\u5bf9\u2f50\u4f18\u52bf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Servlet <\/span><\/p>\n<p><span style=\"color:#1f2329\">CGI <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ebf\u7a0b\u6a21\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u7ebf\u7a0b&#xff08;\u6bcf\u4e2a\u8bf7\u6c42\u2f00\u4e2a\u7ebf\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u8fdb\u7a0b&#xff08;\u6bcf\u4e2a\u8bf7\u6c42\u2f00\u4e2a\u8fdb\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fd0\u2f8f\u72b6\u6001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u542f\u52a8\u65f6\u52a0\u8f7d&#xff0c;\u9a7b\u7559\u670d\u52a1\u5668\u5185\u5b58 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6bcf\u6b21\u8bf7\u6c42\u91cd\u65b0\u521b\u5efa\u8fdb\u7a0b&#xff0c;\u6548\u7387 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f4e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fd0\u2f8f\u7a7a\u95f4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Web\u670d\u52a1\u5668\u5730\u5740\u7a7a\u95f4\u5185\u6267\u2f8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u72ec\u2f74\u8fdb\u7a0b&#xff0c;\u8d44\u6e90\u6d88\u8017\u2f24 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e73\u53f0\u4f9d\u8d56\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8de8\u5e73\u53f0&#xff08;Java\u7f16\u5199&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56\u5e73\u53f0&#xff0c;\u53ef\u79fb\u690d\u6027\u5dee <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001Servlet\u2f2f\u4f5c\u539f\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">Web\u670d\u52a1\u5668&#xff08;Servlet\u5bb9\u5668&#xff09;\u63a5\u6536\u5ba2\u2f3e\u7aef\u8bf7\u6c42&#xff0c;\u521b\u5efa\u201c\u8bf7\u6c42&#xff08;HttpServletRequest&#xff09;\u201d\u548c\u201c\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;HttpServletResponse&#xff09;\u201d\u5bf9\u8c61&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5224\u65ad\u8bf7\u6c42\u5bf9\u5e94\u7684Servlet\u5bf9\u8c61\u662f\u5426\u5b58\u5728&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u5728&#xff1a;\u76f4\u63a5\u8c03\u2f64\u5176 <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff08;\u95f4\u63a5\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">doGet() <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">doPost() <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u4f20\u2f0a\u8bf7\u6c42\u548c\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u8c61&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0d\u5b58\u5728&#xff1a;\u52a0\u8f7dServlet\u7c7b\u2192\u521b\u5efa\u5b9e\u4f8b\u2192\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">init() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u521d\u59cb\u5316\u2192\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u5904\u7406\u8bf7\u6c42&#xff08;\u83b7\u53d6\u5ba2\u2f3e\u7aef\u6570\u636e\u3001\u4e1a\u52a1\u903b\u8f91\u5904\u7406&#xff09;&#xff0c;\u901a\u8fc7\u54cd\u5e94\u5bf9\u8c61\u8fd4\u56de\u7ed3\u679c&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u8bf7\u6c42\u5904\u7406\u5b8c\u6210\u540e&#xff0c;\u7ebf\u7a0b\u9500\u6bc1\u6216\u56de\u6536\u5230\u7ebf\u7a0b\u6c60&#xff0c;\u8bf7\u6c42\/\u54cd\u5e94\u5bf9\u8c61\u5931\u6548\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001Servlet API\u6838\u2f3c\u7ec4\u4ef6<\/span><span style=\"color:#1f2329\">1. \u56db\u2f24\u6838\u2f3c\u5305 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5305\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd\u63cf\u8ff0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">javax.servlet <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49\u534f\u8bae\u2f46\u5173\u7684Servlet\u63a5\u2f1d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u548c\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">javax.servlet.http <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49HTTP\u534f\u8bae\u76f8\u5173\u7684Servlet <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5\u2f1d\u548c\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">javax.servlet.annotat <\/span><\/p>\n<p><span style=\"color:#1f2329\">ion <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e499\u4e2a\u6ce8\u89e3\u7c7b\u578b\u548c2\u4e2a\u679a\u4e3e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">javax.servlet.descrip <\/span><\/p>\n<p><span style=\"color:#1f2329\">tor <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49\u8bbf\u95eeWeb\u5e94\u2f64\u914d\u7f6e\u4fe1\u606f\u7684 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6838\u2f3c\u63a5\u2f1d\u4e0e\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Servlet<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">\u5b9e\u73b0 <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">GenericServlet<\/span><span style=\"color:#2b2f36\">\u62bd\u8c61\u7c7b <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">\u7ee7\u627f <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">HttpServlet<\/span><span style=\"color:#2b2f36\">\u62bd\u8c61\u7c7b <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletConfig<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">\u5b9e\u73b0 <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">GenericServlet<\/span><span style=\"color:#2b2f36\">\u62bd\u8c61\u7c7b <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletRequest<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">\u6269\u5c55 <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">HttpServletRequest<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletResponse<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">\u6269\u5c55 <\/span><span style=\"color:#2b2f36\">\u2190 <\/span><span style=\"color:#2b2f36\">HttpServletResponse<\/span><span style=\"color:#2b2f36\">\u63a5\u2f1d <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u63a5\u2f1d\u8be6\u89e3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;Servlet\u63a5\u2f1d&#xff08;\u6838\u2f3c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6240\u6709Servlet\u5fc5\u987b\u76f4\u63a5\/\u95f4\u63a5\u5b9e\u73b0&#xff0c;\u5b9a\u4e495\u4e2a\u6838\u2f3c\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd\u63cf\u8ff0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">init(ServletConfig <\/span><\/p>\n<p><span style=\"color:#1f2329\">config) <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521d\u59cb\u5316Servlet\u5b9e\u4f8b&#xff0c;\u4ec5\u8c03\u2f641 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">service(ServletRequest <\/span><\/p>\n<p><span style=\"color:#1f2329\">req, ServletResponse <\/span><\/p>\n<p><span style=\"color:#1f2329\">res) <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5904\u7406\u5ba2\u2f3e\u7aef\u8bf7\u6c42&#xff0c;\u6bcf\u6b21\u8bf7\u6c42\u8c03 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f641\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">destroy() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9500\u6bc1Servlet&#xff0c;\u91ca\u653e\u8d44\u6e90&#xff0c;\u4ec5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8c03\u2f641\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getServletConfig() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u666e\u901a\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6Servlet\u914d\u7f6e\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4<\/span><span style=\"color:#1f2329\">getServletInfo() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u666e\u901a\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fd4\u56deServlet\u63cf\u8ff0\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;GenericServlet\u62bd\u8c61\u7c7b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0 <\/span><span style=\"color:#1f2329\">Servlet <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">ServletConfig <\/span><span style=\"color:#1f2329\">\u63a5\u2f1d&#xff0c;\u63d0\u4f9b\u9664 <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u5916\u7684\u6240\u6709\u2f45\u6cd5\u9ed8\u8ba4\u5b9e\u73b0&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f5c\u2f64&#xff1a;\u5c06 <\/span><span style=\"color:#1f2329\">ServletConfig <\/span><span style=\"color:#1f2329\">\u8d4b\u7ed9\u7c7b\u7ea7\u53d8\u91cf&#xff0c;\u53ef\u76f4\u63a5\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">ServletConfig <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6781\u5c11\u76f4\u63a5\u4f7f\u2f64&#xff0c;\u9700\u91cd\u5199 <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;3&#xff09;HttpServlet\u62bd\u8c61\u7c7b&#xff08;\u6700\u5e38\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6269\u5c55 <\/span><span style=\"color:#1f2329\">GenericServlet <\/span><span style=\"color:#1f2329\">&#xff0c;\u9488\u5bf9HTTP\u534f\u8bae\u5c01\u88c5&#xff0c;\u65b0\u589e <\/span><span style=\"color:#1f2329\">service(HttpServletRequest, <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletResponse) <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9488\u5bf9HTTP\u8bf7\u6c42\u7c7b\u578b&#xff08;GET\u3001POST\u3001PUT\u3001DELETE&#xff09;\u63d0\u4f9b\u5bf9\u5e94\u5904\u7406\u2f45\u6cd5&#xff0c;\u5e38\u2f64&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">doGet(HttpServletRequest req, HttpServletResponse resp) <\/span><span style=\"color:#1f2329\">&#xff1a;\u5904\u7406GET\u8bf7 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><span style=\"color:#1f2329\">\u6c42<\/span><span style=\"color:#1f2329\">do<\/span><span style=\"color:#1f2329\">&#xff1b;<\/span><span style=\"color:#1f2329\">Post(HttpServletRequest req, HttpServletResponse resp) <\/span><span style=\"color:#1f2329\">&#xff1a;\u5904\u7406POST <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f00\u53d1\u65f6\u2f46\u9700\u91cd\u5199 <\/span><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">&#xff0c;\u76f4\u63a5\u91cd\u5199 <\/span><span style=\"color:#1f2329\">doGet() <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">doPost() <\/span><span style=\"color:#1f2329\">\u5373\u53ef\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001Servlet\u521b\u5efa\u2f45\u5f0f&#xff08;\u542b\u4ee3\u7801\u2f70\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u5b9e\u73b0Servlet\u63a5\u2f1d&#xff08;\u57fa\u7840\u2f45\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">ServletDemo <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">Servlet <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u521d\u59cb\u5316&#xff1a;\u4ec5\u8c03\u2f64<\/span><span style=\"color:#a0a1a7\">1<\/span><span style=\"color:#a0a1a7\">\u6b21 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">init<\/span><span style=\"color:#2b2f36\">(ServletConfig arg0) <\/span><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;&#061;&#061;&#061;&#061;&#061;&#061;&#061;init&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5904\u7406\u8bf7\u6c42&#xff1a;\u6bcf\u6b21\u8bf7\u6c42\u8c03\u2f64<\/span><span style=\"color:#a0a1a7\">1<\/span><span style=\"color:#a0a1a7\">\u6b21 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">service<\/span><span style=\"color:#2b2f36\">(ServletRequest arg0, ServletResponse arg1) <\/span><span style=\"color:#a626a4\">throws <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5904\u7406\u8bf7\u6c42<\/span><span style=\"color:#50a14f\">&#8230;&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u9500\u6bc1&#xff1a;\u4ec5\u8c03\u2f64<\/span><span style=\"color:#a0a1a7\">1<\/span><span style=\"color:#a0a1a7\">\u6b21&#xff08;\u670d\u52a1\u5668\u5173\u95ed\u65f6&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">destroy<\/span><span style=\"color:#2b2f36\">() { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;******destroy**********&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18<\/span><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">ServletConfig <\/span><span style=\"color:#4078f2\">getServletConfig<\/span><span style=\"color:#2b2f36\">() { <\/span><span style=\"color:#a626a4\">return <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">; } <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">String <\/span><span style=\"color:#4078f2\">getServletInfo<\/span><span style=\"color:#2b2f36\">() { <\/span><span style=\"color:#a626a4\">return <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">; } <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u7ee7\u627fGenericServlet\u7c7b&#xff08;\u6781\u5c11\u4f7f\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">ServletDemo <\/span><span style=\"color:#a626a4\">extends <\/span><span style=\"color:#4078f2\">GenericServlet <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">service<\/span><span style=\"color:#2b2f36\">(ServletRequest arg0, ServletResponse arg1) <\/span><span style=\"color:#a626a4\">throws <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u901a\u8fc7<\/span><span style=\"color:#50a14f\">GenericServlet<\/span><span style=\"color:#50a14f\">\u5904\u7406\u8bf7\u6c42<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u7ee7\u627fHttpServlet\u7c7b&#xff08;\u4e3b\u6d41\u2f45\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">ServletDemo <\/span><span style=\"color:#a626a4\">extends <\/span><span style=\"color:#4078f2\">HttpServlet <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5904\u7406<\/span><span style=\"color:#a0a1a7\">GET<\/span><span style=\"color:#a0a1a7\">\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">protected void <\/span><span style=\"color:#4078f2\">doGet<\/span><span style=\"color:#2b2f36\">(HttpServletRequest req, HttpServletResponse resp) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5904\u7406<\/span><span style=\"color:#50a14f\">GET<\/span><span style=\"color:#50a14f\">\u8bf7\u6c42<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5904\u7406<\/span><span style=\"color:#a0a1a7\">POST<\/span><span style=\"color:#a0a1a7\">\u8bf7\u6c42&#xff08;\u53ef\u8c03\u2f64<\/span><span style=\"color:#a0a1a7\">doGet<\/span><span style=\"color:#a0a1a7\">\u7edf\u2f00\u5904\u7406&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">protected void <\/span><span style=\"color:#4078f2\">doPost<\/span><span style=\"color:#2b2f36\">(HttpServletRequest req, HttpServletResponse resp) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5904\u7406<\/span><span style=\"color:#50a14f\">POST<\/span><span style=\"color:#50a14f\">\u8bf7\u6c42<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">doGet(req, resp); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001Servlet\u2f63\u547d\u5468\u671f&#xff08;\u91cd\u70b9\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14<\/span><span style=\"color:#1f2329\">1. \u56db\u4e2a\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u89e6\u53d1\u65f6\u673a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8c03\u2f64\u6b21\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a0\u8f7d\u4e0e\u5b9e\u4f8b\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u542f\u52a8\u65f6\u6216\u7b2c\u2f00\u6b21\u8bbf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u95ee\u65f6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u6784\u9020\u2f45\u6cd5&#xff08;\u5bb9\u5668\u8c03\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521d\u59cb\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u4f8b\u521b\u5efa\u540e\u2f74\u5373\u6267\u2f8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">init(ServletConfig <\/span><\/p>\n<p><span style=\"color:#1f2329\">) <\/span><\/p>\n<p><span style=\"color:#1f2329\">1\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6bcf\u6b21\u63a5\u6536\u5ba2\u2f3e\u7aef\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">service() <\/span><span style=\"color:#1f2329\">\u2192 <\/span><span style=\"color:#1f2329\">doGet( <\/span><\/p>\n<p><span style=\"color:#1f2329\">) <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">doPost() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9500\u6bc1\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u5173\u95ed\u6216\u5e94\u2f64\u5378\u8f7d\u65f6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">destroy() <\/span><\/p>\n<p><span style=\"color:#1f2329\">1\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u5173\u952e\u8bf4\u660e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f\u5b8c\u5168\u7531Web\u5bb9\u5668\u7ba1\u7406&#xff0c;\u7a0b\u5e8f\u5458\u2f46\u6cd5\u76f4\u63a5\u8c03\u2f64\u2f63\u547d\u5468\u671f\u2f45\u6cd5&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">init() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u2f64\u4e8e\u521d\u59cb\u5316\u8d44\u6e90&#xff08;\u5982\u6570\u636e\u5e93\u8fde\u63a5&#xff09;&#xff0c; <\/span><span style=\"color:#1f2329\">destroy() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u2f64\u4e8e\u91ca\u653e\u8d44\u6e90&#xff08;\u5982\u5173\u95ed\u8fde <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Servlet\u5b9e\u4f8b\u5728\u2f63\u547d\u5468\u671f\u5185\u552f\u2f00&#xff08;\u5355\u4f8b\u6a21\u5f0f&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u6838\u2f3c\u8f85\u52a9\u63a5\u2f1d&#xff1a;ServletConfig\u4e0eServletContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. ServletConfig\u63a5\u2f1d&#xff08;Servlet\u4e13\u5c5e\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u5c01\u88c5\u5355\u4e2aServlet\u7684\u521d\u59cb\u5316\u914d\u7f6e\u4fe1\u606f&#xff08;Servlet\u540d\u79f0\u3001\u521d\u59cb\u5316\u53c2\u6570\u3001ServletContext\u5bf9\u8c61&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">String getServletName() <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6Servlet\u5728web.xml\u4e2d\u7684\u914d\u7f6e\u540d\u79f0&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">String getInitParameter(String name) <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6\u6307\u5b9a\u540d\u79f0\u7684\u521d\u59cb\u5316\u53c2\u6570\u503c&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Enumeration&lt;String&gt; getInitParameterNames() <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6\u6240\u6709\u521d\u59cb\u5316\u53c2\u6570\u540d\u79f0&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContext getServletContext() <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6Web\u5e94\u2f64\u7684ServletContext\u5bf9\u8c61&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u2f45\u5f0f&#xff08;web.xml&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">servlet<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">servlet-name<\/span><span style=\"color:#2b2f36\">&gt;ServletConfigDemo&lt;\/<\/span><span style=\"color:#e45649\">servlet-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">servlet-class<\/span><span style=\"color:#2b2f36\">&gt;gacl.servlet.study.ServletConfigDemo&lt;\/<\/span><span style=\"color:#e45649\">servlet-class<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u521d\u59cb\u5316\u53c2\u6570 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5<\/span><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt;name&lt;\/<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt;gacl&lt;\/<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt;charset&lt;\/<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt;UTF-8&lt;\/<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">servlet<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. ServletContext\u63a5\u2f1d&#xff08;Web\u5e94\u2f64\u5168\u5c40\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u4ee3\u8868\u6574\u4e2aWeb\u5e94\u2f64&#xff0c;\u5c01\u88c5Web\u5e94\u2f64\u7684\u5168\u5c40\u4fe1\u606f&#xff0c;\u5168\u5c40\u5171\u4eab&#xff08;\u6240\u6709Servlet\u53ef\u8bbf\u95ee&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f18\u52bf&#xff1a;\u914d\u7f6e\u4fe1\u606f\u53ef\u901a\u8fc7web.xml\u4fee\u6539&#xff0c;\u2f46\u9700\u6539\u52a8\u4ee3\u7801&#xff0c;\u7ef4\u62a4\u6027\u5f3a&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">String getInitParameter(String name) <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6\u5168\u5c40\u521d\u59cb\u5316\u53c2\u6570\u503c&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">void setAttribute(String name, Object obj) <\/span><span style=\"color:#1f2329\">&#xff1a;\u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5c5e\u6027&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Object getAttribute(String name) <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6\u5168\u5c40\u5171\u4eab\u5c5e\u6027&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6\u2f45\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f45\u5f0f<\/span><span style=\"color:#a0a1a7\">1<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u901a\u8fc7<\/span><span style=\"color:#a0a1a7\">ServletConfig<\/span><span style=\"color:#a0a1a7\">\u83b7\u53d6 <\/span><\/p>\n<p><span style=\"color:#986801\">ServletContext context <\/span><span style=\"color:#2b2f36\">&#061; getServletConfig().getServletContext(); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f45\u5f0f<\/span><span style=\"color:#a0a1a7\">2<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u76f4\u63a5\u83b7\u53d6&#xff08;<\/span><span style=\"color:#a0a1a7\">GenericServlet<\/span><span style=\"color:#a0a1a7\">\u63d0\u4f9b&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">ServletContext context <\/span><span style=\"color:#2b2f36\">&#061; getServletContext(); <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5168\u5c40\u914d\u7f6e&#xff08;web.xml&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">context-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt;dname&lt;\/<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt;com.mysql.jdbc.Driver&lt;\/<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">context-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u4e24\u8005\u533a\u522b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletConfig <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64\u8303\u56f4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5355\u4e2aServlet\u4e13\u5c5e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6574\u4e2aWeb\u5e94\u2f64\u5168\u5c40\u5171\u4eab <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4<\/span><span style=\"color:#1f2329\">\u914d\u7f6e\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;init-param&gt; <\/span><span style=\"color:#1f2329\">&#xff08;Servlet\u5185 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u90e8&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;context-param&gt; <\/span><span style=\"color:#1f2329\">&#xff08;Web <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u6839\u8282\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u4f8b\u6570\u91cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6bcf\u4e2aServlet\u5bf9\u5e941\u4e2a\u5b9e\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6bcf\u4e2aWeb\u5e94\u2f64\u5bf9\u5e941\u4e2a\u5b9e\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f0b\u3001Request\u4e0eResponse\u6838\u2f3c\u64cd\u4f5c&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. HttpServletRequest\u63a5\u2f1d&#xff08;\u5c01\u88c5\u5ba2\u2f3e\u7aef\u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd&#xff1a;\u83b7\u53d6HTTP\u8bf7\u6c42\u7684\u6240\u6709\u4fe1\u606f&#xff08;\u8bf7\u6c42\u2f8f\u3001\u8bf7\u6c42\u5934\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u5ba2\u2f3e\u673a\u4fe1\u606f\u7b49&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64\u2f45\u6cd5\u5206\u7c7b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd\u7c7b\u522b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u8868\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u673a\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">getRemoteAddr() <\/span><span style=\"color:#1f2329\">&#xff08;IP\u5730 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5740&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">getRequestURL() <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u5b8c\u6574URL&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u2f8f\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">getMethod() <\/span><span style=\"color:#1f2329\">&#xff08;\u8bf7\u6c42\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">GET\/POST&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getRequestURI() <\/span><span style=\"color:#1f2329\">&#xff08;\u8d44\u6e90 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8def\u5f84&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u53c2\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameter(String <\/span><\/p>\n<p><span style=\"color:#1f2329\">name) <\/span><span style=\"color:#1f2329\">&#xff08;\u5355\u4e2a\u53c2\u6570&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameterValues(Str <\/span><\/p>\n<p><span style=\"color:#1f2329\">ing name) <\/span><span style=\"color:#1f2329\">&#xff08;\u591a\u4e2a\u540c\u540d\u53c2 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u5934\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">getHeader(String <\/span><\/p>\n<p><span style=\"color:#1f2329\">name) <\/span><span style=\"color:#1f2329\">&#xff08;\u5355\u4e2a\u8bf7\u6c42\u5934&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getHeaderNames() <\/span><span style=\"color:#1f2329\">&#xff08;\u6240\u6709 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u5934&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">GET\u4e0ePOST\u8bf7\u6c42\u533a\u522b&#xff08;\u91cd\u70b9&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">GET\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">POST\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u4f4d\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9644\u5728URL\u540e&#xff08;?\u5206\u5272&#xff0c;&amp;\u8fde\u63a5\u53c2 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c01\u88c5\u5728HTTP\u8bf7\u6c42\u4f53\u4e2d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u2ec5\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5730\u5740\u680f\u53ef\u2ec5&#xff0c;\u5b89\u5168\u6027\u4f4e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5730\u5740\u680f\u4e0d\u53ef\u2ec5&#xff0c;\u5b89\u5168\u6027\u2fbc <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u7c7b\u578b\u9650\u5236 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ec5\u2f40\u6301ASCII\u5b57\u7b26 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f40\u6301ISO10646\u5168\u5b57\u7b26\u96c6<\/span><span style=\"color:#1f2329\">\u4e3b\u8981\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ece\u670d\u52a1\u5668\u83b7\u53d6\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5411\u670d\u52a1\u5668\u63d0\u4ea4\u6570\u636e&#xff08;\u589e\u5220\u6539&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. HttpServletResponse\u63a5\u2f1d&#xff08;\u5c01\u88c5\u670d\u52a1\u5668\u54cd\u5e94&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd&#xff1a;\u5411\u5ba2\u2f3e\u7aef\u53d1\u9001\u54cd\u5e94&#xff08;\u54cd\u5e94\u5934\u3001\u72b6\u6001\u7801\u3001\u54cd\u5e94\u4f53&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64\u64cd\u4f5c&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u8f93\u51fa\u6570\u636e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25aa <\/span><\/p>\n<p><span style=\"color:#1f2329\">getOutputStream() <\/span><span style=\"color:#1f2329\">&#xff1a;\u8f93\u51fa\u2f06\u8fdb\u5236\u6570\u636e&#xff08;\u5982\u2f42\u4ef6\u4e0b\u8f7d&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25aa <\/span><\/p>\n<p><span style=\"color:#1f2329\">getWriter() <\/span><span style=\"color:#1f2329\">&#xff1a;\u8f93\u51fa\u5b57\u7b26\u6570\u636e&#xff08;\u5982HTML\u3001\u4e2d\u2f42&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25aa <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f&#xff1a;\u4e24\u8005\u4e92\u76f8\u6392\u65a5&#xff0c;\u8c03\u2f64\u2f00\u4e2a\u540e\u4e0d\u80fd\u518d\u8c03\u2f64\u53e6\u2f00\u4e2a&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u4e2d\u2f42\u4e71\u7801\u89e3\u51b3&#xff1a;\u786e\u4fdd\u670d\u52a1\u7aef\u4e0e\u5ba2\u2f3e\u7aef\u7f16\u7801\u2f00\u81f4&#xff08;\u5982UTF-8&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u72b6\u6001\u7801\u8bbe\u7f6e&#xff1a; <\/span><span style=\"color:#1f2329\">setStatus(int sc) <\/span><span style=\"color:#1f2329\">&#xff08;\u5982200\u6210\u529f\u3001404\u672a\u627e\u5230&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">d. <\/span><span style=\"color:#1f2329\">Cookie\u64cd\u4f5c&#xff1a; <\/span><span style=\"color:#1f2329\">addCookie(Cookie cookie) <\/span><span style=\"color:#1f2329\">&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">e. <\/span><span style=\"color:#1f2329\">\u2f42\u4ef6\u4e0b\u8f7d&#xff1a;\u8bbe\u7f6e\u54cd\u5e94\u5934 <\/span><span style=\"color:#1f2329\">Content-Type <\/span><span style=\"color:#1f2329\">&#xff08;MIME\u7c7b\u578b&#xff09;\u548c <\/span><span style=\"color:#1f2329\">Content-Disposition <\/span><span style=\"color:#1f2329\">&#xff08;\u9644\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0b\u8f7d&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u4ef6\u4e0b\u8f7d\u2f70\u4f8b\u4ee3\u7801&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">ResponseDemo02 <\/span><span style=\"color:#a626a4\">extends <\/span><span style=\"color:#4078f2\">HttpServlet <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">protected void <\/span><span style=\"color:#4078f2\">doGet<\/span><span style=\"color:#2b2f36\">(HttpServletRequest req, HttpServletResponse resp) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8bbe\u7f6e\u54cd\u5e94\u5934&#xff1a;\u9644\u4ef6\u4e0b\u8f7d <\/span><\/p>\n<p><span style=\"color:#2b2f36\">resp.setHeader(<\/span><span style=\"color:#50a14f\">&#034;Content-Disposition&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;attachment;filename&#061;&#034; <\/span><span style=\"color:#2b2f36\">&#043; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">URLEncoder.encode(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u4e2d\u2f42\u2f42\u4ef6<\/span><span style=\"color:#50a14f\">.txt&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;UTF-8&#034;<\/span><span style=\"color:#2b2f36\">)); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8bbe\u7f6e<\/span><span style=\"color:#a0a1a7\">MIME<\/span><span style=\"color:#a0a1a7\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#2b2f36\">resp.setContentType(<\/span><span style=\"color:#50a14f\">&#034;text\/plain&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8bfb\u53d6\u2f42\u4ef6\u5e76\u8f93\u51fa <\/span><\/p>\n<p><span style=\"color:#986801\">InputStream in <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">FileInputStream<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u2f42\u4ef6\u8def\u5f84<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#986801\">OutputStream out <\/span><span style=\"color:#2b2f36\">&#061; resp.getOutputStream(); <\/span><\/p>\n<p><span style=\"color:#986801\">byte<\/span><span style=\"color:#2b2f36\">[] buf &#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">byte<\/span><span style=\"color:#2b2f36\">[<\/span><span style=\"color:#986801\">1024<\/span><span style=\"color:#2b2f36\">]; <\/span><\/p>\n<p><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">len; <\/span><\/p>\n<p><span style=\"color:#a626a4\">while <\/span><span style=\"color:#2b2f36\">((len &#061; in.read(buf)) !&#061; &#8211;<\/span><span style=\"color:#986801\">1<\/span><span style=\"color:#2b2f36\">) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">out.write(buf, <\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">, len); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">in.close(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">out.close(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19<\/span><span style=\"color:#1f2329\">\u4e5d\u3001\u2fbc\u9891\u8003\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">Servlet\u2f63\u547d\u5468\u671f&#xff1a;\u4e09\u4e2a\u2f63\u547d\u5468\u671f\u2f45\u6cd5&#xff08;init\u3001service\u3001destroy&#xff09;\u7684\u8c03\u2f64\u65f6\u673a\u548c\u6b21\u6570&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">Servlet\u4e0eCGI\u7684\u533a\u522b&#xff1a;\u591a\u7ebf\u7a0bvs\u591a\u8fdb\u7a0b\u3001\u9a7b\u7559\u5185\u5b58vs\u4e34\u65f6\u8fdb\u7a0b&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">HttpServlet\u6838\u2f3c\u2f45\u6cd5&#xff1a;doGet()\u4e0edoPost()\u7684\u4f5c\u2f64\u53ca\u8c03\u2f64\u5173\u7cfb&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">ServletConfig\u4e0eServletContext\u7684\u533a\u522b&#xff1a;\u4f5c\u2f64\u8303\u56f4&#xff08;\u5355\u4e2aServlet vs \u5168\u5c40\u5e94\u2f64&#xff09;\u3001\u914d\u7f6e\u6807\u7b7e&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">GET\u4e0ePOST\u8bf7\u6c42\u7684\u533a\u522b&#xff1a;\u6570\u636e\u4f4d\u7f6e\u3001\u5b89\u5168\u6027\u3001\u5b57\u7b26\u2f40\u6301\u3001\u2f64\u9014&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">Response\u8f93\u51fa\u6d41&#xff1a;getOutputStream\u4e0egetWriter\u7684\u533a\u522b&#xff0c;\u4e2d\u2f42\u4e71\u7801\u89e3\u51b3&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">7. <\/span><span style=\"color:#1f2329\">\u4ee3\u7801\u9898&#xff1a;\u7f16\u5199\u57fa\u7840HttpServlet&#xff08;\u91cd\u5199doGet\/doPost&#xff09;\u3001\u83b7\u53d6\u521d\u59cb\u5316\u53c2\u6570\u3001\u2f42\u4ef6\u4e0b\u8f7d\u529f\u80fd\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f17\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u91cd\u70b9\u638c\u63e1\u2f63\u547d\u5468\u671f\u3001\u6838\u2f3c\u63a5\u2f1d\/\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u3001Request\/Response\u5e38\u2f64\u2f45\u6cd5&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u719f\u8bb0\u5173\u952e\u914d\u7f6e&#xff08;web.xml\u4e2d\u7684Servlet\u6ce8\u518c\u3001\u521d\u59cb\u5316\u53c2\u6570\u3001\u5168\u5c40\u53c2\u6570&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7ed3\u5408\u4ee3\u7801\u2f70\u4f8b\u7406\u89e3\u5b9e\u9645\u5e94\u2f64\u573a\u666f&#xff08;\u5982\u8868\u5355\u63d0\u4ea4\u5904\u7406\u3001\u2f42\u4ef6\u4e0b\u8f7d\u3001Cookie\u64cd\u4f5c&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u533a\u5206\u6613\u6df7\u6dc6\u6982\u5ff5&#xff08;ServletConfig vs ServletContext\u3001GET vs POST\u3001\u4e24\u79cd\u8f93\u51fa\u6d41&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch3 Servlet\u2fbc\u7ea7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u8003\u70b9\u6846\u67b6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u6b21\u671f\u672b\u8003\u67e5\u91cd\u70b9\u56f4\u7ed5Servlet\u2fbc\u7ea7\u7279\u6027\u5c55\u5f00&#xff0c;\u6838\u2f3c\u6a21\u5757\u5305\u62ec&#xff1a;\u8bf7\u6c42\u8f6c\u53d1\u4e0e\u91cd\u5b9a\u5411\u3001\u8fc7\u6ee4\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;Filter&#xff09;\u3001\u76d1\u542c\u5668&#xff08;Listener&#xff09;&#xff0c;\u5360\u2f50\u7ea670%&#xff0c;\u9700\u91cd\u70b9\u638c\u63e1\u4e09\u8005\u7684\u5b9a\u4e49\u3001\u2f64\u6cd5\u3001\u2f63\u547d\u5468\u671f\u3001\u6838\u2f3c\u533a\u522b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ca\u5b9e\u6218\u914d\u7f6e\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u6a21\u5757\u2f00&#xff1a;\u8bf7\u6c42\u8f6c\u53d1&#xff08;RequestDispatcher&#xff09;\u4e0e\u91cd\u5b9a\u5411 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;sendRedirect&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u5b9a\u4e49 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411&#xff08;sendRedirect&#xff09;&#xff1a;\u5ba2\u2f3e\u7aef\u8bf7\u6c42\u670d\u52a1\u5668\u540e&#xff0c;\u670d\u52a1\u5668\u8fd4\u56de\u65b0\u7684URL\u5730\u5740&#xff0c;\u5ba2\u2f3e\u7aef\u91cd\u65b0\u53d1\u8d77\u65b0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42&#xff08;\u4e24\u6b21\u72ec\u2f74\u8bf7\u6c42&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8bf7\u6c42\u8f6c\u53d1&#xff08;RequestDispatcher&#xff09;&#xff1a;\u670d\u52a1\u5668\u5185\u90e8\u5c06\u8bf7\u6c42\u4f20\u9012\u7ed9\u5176\u4ed6\u8d44\u6e90&#xff08;Servlet\/JSP\/HTML&#xff09;&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5168\u7a0b\u4ec5\u2f00\u6b21\u5ba2\u2f3e\u7aef\u8bf7\u6c42&#xff0c;\u5ba2\u2f3e\u7aef\u2f46\u611f\u77e5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u5b9e\u73b0\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u91cd\u5b9a\u5411&#xff08;sendRedirect&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u76f4\u63a5\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">response <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff08;\u63a8\u8350&#xff09;&#xff1a;<\/span><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.sendRedirect(<\/span><span style=\"color:#50a14f\">&#034;http:\/\/www.scut.edu.cn&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u53ef\u8de8\u57df <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u95f4\u63a5\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">setStatus&#043;setHeader <\/span><span style=\"color:#1f2329\">\u5b9e\u73b0&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); <\/span><span style=\"color:#a0a1a7\">\/\/ 302<\/span><span style=\"color:#a0a1a7\">\u4e34\u65f6\u91cd\u5b9a <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\u5411 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.setHeader(<\/span><span style=\"color:#50a14f\">&#034;Location&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u2f6c\u6807<\/span><span style=\"color:#50a14f\">URL&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u8bf7\u6c42\u8f6c\u53d1&#xff08;RequestDispatcher&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6b65\u9aa4&#xff1a;\u83b7\u53d6\u5bf9\u8c61 \u2192 \u8c03\u2f64 <\/span><span style=\"color:#1f2329\">forward <\/span><span style=\"color:#1f2329\">\u6216 <\/span><span style=\"color:#1f2329\">include <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 1. <\/span><span style=\"color:#a0a1a7\">\u901a\u8fc7<\/span><span style=\"color:#a0a1a7\">request<\/span><span style=\"color:#a0a1a7\">\u83b7\u53d6<\/span><span style=\"color:#a0a1a7\">RequestDispatcher<\/span><span style=\"color:#a0a1a7\">\u5bf9\u8c61&#xff08;\u8def\u5f84\u4e3a\u670d\u52a1\u5668\u5185\u90e8\u76f8\u5bf9\u8def\u5f84&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">RequestDispatcher rd <\/span><span style=\"color:#2b2f36\">&#061; request.getRequestDispatcher(<\/span><span style=\"color:#50a14f\">&#034;\/servlet2&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 2. <\/span><span style=\"color:#a0a1a7\">\u8f6c\u53d1\u8bf7\u6c42&#xff08;\u8bf7\u6c42\u4e0e\u54cd\u5e94\u5bf9\u8c61\u4f20\u9012\u7ed9\u2f6c\u6807\u8d44\u6e90&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">rd.forward(request, response); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6216\u5305\u542b\u2f6c\u6807\u8d44\u6e90\u5185\u5bb9&#xff08;\u5f53\u524d\u54cd\u5e94\u4e2d\u62fc\u63a5\u2f6c\u6807\u8d44\u6e90\u8f93\u51fa&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">rd.include(request, response); <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u6838\u2f3c\u533a\u522b&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u2f50\u7ef4\u5ea6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u8f6c\u53d1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;RequestDispatcher&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411&#xff08;sendRedirect&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u8bf7\u6c42\u6b21\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1\u6b21&#xff08;\u670d\u52a1\u5668\u5185\u90e8\u8f6c\u53d1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2\u6b21&#xff08;\u5ba2\u2f3e\u7aef\u91cd\u65b0\u53d1\u8d77\u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">URL\u5730\u5740\u680f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u663e\u2f70\u521d\u59cb\u8bf7\u6c42URL&#xff08;\u4e0d\u6539\u53d8&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u663e\u2f70\u2f6c\u6807URL&#xff08;\u6539\u53d8&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5171\u4eab <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u901a\u8fc7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.setAttribute( <\/span><\/p>\n<p><span style=\"color:#1f2329\">) <\/span><span style=\"color:#1f2329\">\u5171\u4eab <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e24\u6b21\u8bf7\u6c42\u72ec\u2f74&#xff0c;\u2f46\u6cd5\u5171\u4eab <\/span><\/p>\n<p><span style=\"color:#1f2329\">request\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9002\u2f64\u8303\u56f4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ec5\u670d\u52a1\u5668\u5185\u90e8\u8d44\u6e90&#xff08;\u540cWeb\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u8de8\u57df\u3001\u8de8Web\u5e94\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f45\u6cd5\u8c03\u2f64\u8005 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request <\/span><span style=\"color:#1f2329\">\u5bf9\u8c61 <\/span><\/p>\n<p><span style=\"color:#1f2329\">response <\/span><span style=\"color:#1f2329\">\u5bf9\u8c61 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d44\u6e90\u8bbf\u95ee\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u76f4\u63a5\u8bbf\u95ee\u2f6c\u6807\u8d44\u6e90 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u91cd\u65b0\u8bbf\u95ee\u2f6c\u6807\u8d44\u6e90 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6<\/span><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u5b9e\u6218\u573a\u666f <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411&#xff1a;\u767b\u5f55\u6210\u529f\u540e\u8df3\u8f6c\u5230\u4e3b\u2eda&#xff08;\u9700\u6539\u53d8URL&#xff0c;\u907f\u514d\u5237\u65b0\u91cd\u590d\u63d0\u4ea4&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u8f6c\u53d1&#xff1a;\u767b\u5f55\u9a8c\u8bc1\u5931\u8d25\u540e&#xff0c;\u8f6c\u53d1\u56de\u767b\u5f55\u2eda\u5e76\u4fdd\u7559\u9519\u8bef\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">request.setAttribute(&#034;error&#034;, &#034;<\/span><span style=\"color:#1f2329\">\u5bc6\u7801\u9519\u8bef<\/span><span style=\"color:#1f2329\">&#034;) <\/span><span style=\"color:#1f2329\">&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001\u6a21\u5757\u2f06&#xff1a;\u8fc7\u6ee4\u5668&#xff08;Filter&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u5b9a\u4e49 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Filter\u662fServlet\u6280\u672f\u7684\u62e6\u622a\u5668&#xff0c;\u2f64\u4e8e\u9884\u5904\u7406\u8bf7\u6c42&#xff08;\u5982\u6743\u9650\u6821\u9a8c\u3001\u654f\u611f\u8bcd\u8fc7\u6ee4&#xff09;\u548c\u540e\u5904\u7406\u54cd\u5e94&#xff08;\u5982\u6570\u636e\u538b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f29\u3001\u5b57\u7b26\u7f16\u7801\u8bbe\u7f6e&#xff09;&#xff0c;\u4e0d\u76f4\u63a5\u2f63\u6210\u54cd\u5e94&#xff0c;\u4ec5\u5bf9\u8bf7\u6c42\/\u54cd\u5e94\u8fdb\u2f8f\u4fee\u6539\u6216\u62e6\u622a\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u6838\u2f3c\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u62e6\u622a\u8303\u56f4&#xff1a;\u53ef\u5173\u8054Servlet\u3001JSP\u3001HTML&#xff0c;\u2f40\u6301URL\u6a21\u5f0f\u5339\u914d&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">\/* <\/span><span style=\"color:#1f2329\">\u62e6\u622a\u6240\u6709\u8bf7\u6c42&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4e32\u8054\u6548\u5e94&#xff1a;\u591a\u4e2aFilter\u53ef\u6309\u914d\u7f6e\u987a\u5e8f\u5f62\u6210\u8fc7\u6ee4\u94fe&#xff0c;\u4f9d\u6b21\u5904\u7406\u8bf7\u6c42\/\u54cd\u5e94\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u534f\u8bae\u2f46\u5173&#xff1a;\u57fa\u4e8e <\/span><span style=\"color:#1f2329\">ServletRequest <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">ServletResponse <\/span><span style=\"color:#1f2329\">&#xff0c;\u4e0d\u4f9d\u8d56HTTP\u534f\u8bae\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u2f63\u547d\u5468\u671f&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u52a0\u8f7d\u4e0e\u5b9e\u4f8b\u5316&#xff1a;Web\u5bb9\u5668\u542f\u52a8\u65f6&#xff0c;\u6309 <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u4e2d <\/span><span style=\"color:#1f2329\">filter <\/span><span style=\"color:#1f2329\">\u58f0\u660e\u987a\u5e8f\u5b9e\u4f8b\u5316&#xff08;\u6bcf\u4e2aFilter\u4ec5\u2f00\u4e2a\u5b9e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f8b&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u521d\u59cb\u5316&#xff08;init&#xff09;&#xff1a;\u5bb9\u5668\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">init(FilterConfig) <\/span><span style=\"color:#1f2329\">&#xff0c;\u8bfb\u53d6\u521d\u59cb\u5316\u53c2\u6570&#xff0c;\u4ec5\u6267\u2f8f\u2f00\u6b21\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">init<\/span><span style=\"color:#2b2f36\">(FilterConfig config) <\/span><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException { <\/span><\/p>\n<p><span style=\"color:#986801\">String encoding <\/span><span style=\"color:#2b2f36\">&#061; config.getInitParameter(<\/span><span style=\"color:#50a14f\">&#034;encoding&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u83b7\u53d6\u914d\u7f6e\u53c2\u6570 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u62e6\u622a\u5904\u7406&#xff08;doFilter&#xff09;&#xff1a;\u5ba2\u2f3e\u7aef\u8bf7\u6c42\u5339\u914dURL\u65f6\u89e6\u53d1&#xff0c;\u6838\u2f3c\u2f45\u6cd5&#xff08;\u5fc5\u987b\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">FilterChain <\/span><span style=\"color:#1f2329\">\u4f20\u9012 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">doFilter<\/span><span style=\"color:#2b2f36\">(ServletRequest req, ServletResponse resp, FilterChain <\/span><\/p>\n<p><span style=\"color:#2b2f36\">chain) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">IOException, ServletException { <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 1. <\/span><span style=\"color:#a0a1a7\">\u8bf7\u6c42\u9884\u5904\u7406&#xff08;\u5982\u8bbe\u7f6e\u5b57\u7b26\u7f16\u7801&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">req.setCharacterEncoding(<\/span><span style=\"color:#50a14f\">&#034;UTF-8&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 2. <\/span><span style=\"color:#a0a1a7\">\u4f20\u9012\u8bf7\u6c42\u5230\u4e0b\u2f00\u4e2a<\/span><span style=\"color:#a0a1a7\">Filter<\/span><span style=\"color:#a0a1a7\">\u6216\u2f6c\u6807\u8d44\u6e90&#xff08;\u4e0d\u53ef\u6216\u7f3a&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">chain.doFilter(req, resp); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 3. <\/span><span style=\"color:#a0a1a7\">\u54cd\u5e94\u540e\u5904\u7406&#xff08;\u5982\u538b\u7f29\u54cd\u5e94\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7<\/span><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u9500\u6bc1&#xff08;destroy&#xff09;&#xff1a;Web\u5bb9\u5668\u5173\u95ed\u6216Web\u5e94\u2f64\u5378\u8f7d\u65f6\u8c03\u2f64&#xff0c;\u91ca\u653e\u8d44\u6e90&#xff08;\u4ec5\u6267\u2f8f\u2f00\u6b21&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u914d\u7f6e\u2f45\u5f0f&#xff08;\u4e24\u79cd\u4efb\u9009&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6ce8\u89e3\u914d\u7f6e&#xff08;Servlet 3.0&#043;&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;WebFilter(filterName &#061; &#034;LogFilter&#034;, urlPatterns &#061; &#034;\/*&#034;) <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u62e6\u622a\u6240\u6709\u8bf7\u6c42 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">LogFilter <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">Filter <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5b9e\u73b0<\/span><span style=\"color:#a0a1a7\">init<\/span><span style=\"color:#a0a1a7\">\u3001<\/span><span style=\"color:#a0a1a7\">doFilter<\/span><span style=\"color:#a0a1a7\">\u3001<\/span><span style=\"color:#a0a1a7\">destroy<\/span><span style=\"color:#a0a1a7\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. web.xml\u914d\u7f6e&#xff08;\u517c\u5bb9\u6240\u6709\u7248\u672c&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&lt;!&#8211; 1. <\/span><span style=\"color:#a0a1a7\">\u58f0\u660e<\/span><span style=\"color:#a0a1a7\">Filter &#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">filter<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">filter-name<\/span><span style=\"color:#2b2f36\">&gt;AuthorityFilter&lt;\/<\/span><span style=\"color:#e45649\">filter-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">filter-class<\/span><span style=\"color:#2b2f36\">&gt;com.mucfc.AuthorityFilter&lt;\/<\/span><span style=\"color:#e45649\">filter-class<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u53ef\u9009&#xff1a;\u521d\u59cb\u5316\u53c2\u6570 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt;encoding&lt;\/<\/span><span style=\"color:#e45649\">param-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt;UTF-8&lt;\/<\/span><span style=\"color:#e45649\">param-value<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">init-param<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">filter<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&lt;!&#8211; 2. <\/span><span style=\"color:#a0a1a7\">\u6620\u5c04<\/span><span style=\"color:#a0a1a7\">Filter<\/span><span style=\"color:#a0a1a7\">&#xff08;\u6307\u5b9a\u62e6\u622a\u89c4\u5219&#xff09; <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">filter-mapping<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">filter-name<\/span><span style=\"color:#2b2f36\">&gt;AuthorityFilter&lt;\/<\/span><span style=\"color:#e45649\">filter-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">url-pattern<\/span><span style=\"color:#2b2f36\">&gt;\/*&lt;\/<\/span><span style=\"color:#e45649\">url-pattern<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u62e6\u622a\u6240\u6709\u8bf7\u6c42 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u53ef\u9009&#xff1a;\u6307\u5b9a\u62e6\u622a\u2f45\u5f0f&#xff08;\u9ed8\u8ba4<\/span><span style=\"color:#a0a1a7\">REQUEST<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">dispatcher<\/span><span style=\"color:#2b2f36\">&gt;REQUEST&lt;\/<\/span><span style=\"color:#e45649\">dispatcher<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u76f4\u63a5\u8bf7\u6c42\u89e6\u53d1 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">dispatcher<\/span><span style=\"color:#2b2f36\">&gt;FORWARD&lt;\/<\/span><span style=\"color:#e45649\">dispatcher<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u8f6c\u53d1\u8bf7\u6c42\u89e6\u53d1 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">filter-mapping<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;\u5e38\u2ec5\u5e94\u2f64\u573a\u666f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u2f9d\u4efd\u9a8c\u8bc1\u8fc7\u6ee4\u5668&#xff1a;\u672a\u767b\u5f55\u2f64\u2f3e\u62e6\u622a\u5230\u767b\u5f55\u2eda\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6570\u636e\u538b\u7f29\u8fc7\u6ee4\u5668&#xff1a;\u538b\u7f29\u54cd\u5e94\u5185\u5bb9&#xff0c;\u63d0\u5347\u4f20\u8f93\u6548\u7387\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u654f\u611f\u8bcd\u8fc7\u6ee4&#xff1a;\u66ff\u6362\u8bf7\u6c42\u53c2\u6570\u4e2d\u7684\u654f\u611f\u8bcd\u6c47\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18<\/span><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5b57\u7b26\u7f16\u7801\u8fc7\u6ee4\u5668&#xff1a;\u7edf\u2f00\u8bbe\u7f6e\u8bf7\u6c42\/\u54cd\u5e94\u7f16\u7801\u4e3aUTF-8\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u516d&#xff09;\u5173\u952e\u6ce8\u610f\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">FilterChain.doFilter() <\/span><span style=\"color:#1f2329\">\u5fc5\u987b\u8c03\u2f64&#xff0c;\u5426\u5219\u8bf7\u6c42\u4f1a\u88ab\u62e6\u622a\u5728\u5f53\u524dFilter&#xff0c;\u2f46\u6cd5\u5230\u8fbe\u2f6c\u6807\u8d44\u6e90\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u4e2aFilter\u7684\u6267\u2f8f\u987a\u5e8f\u7531 <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u4e2d <\/span><span style=\"color:#1f2329\">filter-mapping <\/span><span style=\"color:#1f2329\">\u7684\u58f0\u660e\u987a\u5e8f\u51b3\u5b9a&#xff08;\u6ce8\u89e3\u914d\u7f6e\u987a\u5e8f\u4e0d\u786e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001\u6a21\u5757\u4e09&#xff1a;\u76d1\u542c\u5668&#xff08;Listener&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u5b9a\u4e49 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Listener\u662f\u5b9e\u73b0\u7279\u5b9a\u63a5\u2f1d\u7684Java\u7a0b\u5e8f&#xff0c;\u2f64\u4e8e\u76d1\u542cWeb\u5e94\u2f64\u4e2d\u5bf9\u8c61\u7684\u72b6\u6001\u53d8\u5316&#xff08;\u5982Session\u521b\u5efa\/\u9500\u6bc1\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c5e\u6027\u589e\u51cf&#xff09;&#xff0c;\u5f53\u4e8b\u4ef6\u89e6\u53d1\u65f6\u2f83\u52a8\u6267\u2f8f\u5bf9\u5e94\u2f45\u6cd5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u5206\u7c7b&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6309\u76d1\u542c\u5bf9\u8c61\u5206\u4e3a\u4e24\u7c7b&#xff0c;\u51716\u4e2a\u6838\u2f3c\u63a5\u2f1d&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u76d1\u542c\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u63a5\u2f1d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u76d1\u542c\u4e8b\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f\u76d1\u542c <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContextListener <\/span><\/p>\n<p><span style=\"color:#1f2329\">Web\u5e94\u2f64\u542f\u52a8\/\u5173\u95ed <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpSessionListener <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u521b\u5efa\/\u9500\u6bc1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletRequestListener <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u521d\u59cb\u5316\/\u9500\u6bc1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c5e\u6027\u53d8\u5316\u76d1\u542c <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContextAttributeList <\/span><\/p>\n<p><span style=\"color:#1f2329\">ener <\/span><\/p>\n<p><span style=\"color:#1f2329\">application\u57df\u5c5e\u6027\u589e\/\u5220\/\u6539 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpSessionAttributeListen <\/span><\/p>\n<p><span style=\"color:#1f2329\">er <\/span><\/p>\n<p><span style=\"color:#1f2329\">session\u57df\u5c5e\u6027\u589e\/\u5220\/\u6539 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletRequestAttributeList <\/span><\/p>\n<p><span style=\"color:#1f2329\">ener <\/span><\/p>\n<p><span style=\"color:#1f2329\">request\u57df\u5c5e\u6027\u589e\/\u5220\/\u6539 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9e\u4f8b\u5316&#xff1a;Web\u5bb9\u5668\u542f\u52a8\u65f6&#xff0c;\u8bfb\u53d6 <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u4e2d <\/span><span style=\"color:#1f2329\">listener <\/span><span style=\"color:#1f2329\">\u914d\u7f6e&#xff0c;\u5b9e\u4f8b\u5316\u76d1\u542c\u5668&#xff08;\u4ec5\u2f00\u6b21&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4e8b\u4ef6\u89e6\u53d1&#xff1a;\u5f53\u76d1\u542c\u5bf9\u8c61\u53d1\u2f63\u5bf9\u5e94\u4e8b\u4ef6\u65f6&#xff0c;\u8c03\u2f64\u63a5\u2f1d\u2f45\u6cd5&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">sessionCreated() <\/span><span style=\"color:#1f2329\">&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u9500\u6bc1&#xff1a;Web\u5bb9\u5668\u5173\u95ed\u6216Web\u5e94\u2f64\u5378\u8f7d\u65f6&#xff0c;\u9500\u6bc1\u76d1\u542c\u5668\u5b9e\u4f8b\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u5b9e\u73b0\u6b65\u9aa4 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49\u76d1\u542c\u5668\u7c7b&#xff1a;\u5b9e\u73b0\u5bf9\u5e94\u63a5\u2f1d&#xff0c;\u91cd\u5199\u4e8b\u4ef6\u2f45\u6cd5\u3002<\/span><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f70\u4f8b&#xff1a;\u76d1\u542c<\/span><span style=\"color:#a0a1a7\">Web<\/span><span style=\"color:#a0a1a7\">\u5e94\u2f64\u542f\u52a8<\/span><span style=\"color:#a0a1a7\">\/<\/span><span style=\"color:#a0a1a7\">\u5173\u95ed&#xff08;<\/span><span style=\"color:#a0a1a7\">ServletContextListener<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">ServletContextListenerImpl <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">ServletContextListener <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5e94\u2f64\u542f\u52a8\u65f6\u89e6\u53d1 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">contextInitialized<\/span><span style=\"color:#2b2f36\">(ServletContextEvent sce) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;Web<\/span><span style=\"color:#50a14f\">\u5e94\u2f64\u542f\u52a8\u6210\u529f&#xff01;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5e94\u2f64\u5173\u95ed\u65f6\u89e6\u53d1 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">contextDestroyed<\/span><span style=\"color:#2b2f36\">(ServletContextEvent sce) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;Web<\/span><span style=\"color:#50a14f\">\u5e94\u2f64\u5173\u95ed&#xff01;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u914d\u7f6e\u76d1\u542c\u5668&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">web.xml\u914d\u7f6e&#xff08;\u63a8\u8350&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">listener<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">listener-class<\/span><span style=\"color:#2b2f36\">&gt;com.mucfc.ServletContextListenerImpl&lt;\/<\/span><span style=\"color:#e45649\">listener-class<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">listener<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u89e3\u914d\u7f6e&#xff08;Servlet 3.0&#043;&#xff09;&#xff1a; <\/span><span style=\"color:#1f2329\">&#064;WebListener <\/span><span style=\"color:#1f2329\">&#xff08;\u76f4\u63a5\u52a0\u5728\u76d1\u542c\u5668\u7c7b\u4e0a&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;\u5178\u578b\u5b9e\u6218\u6848\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7edf\u8ba1\u5728\u7ebf\u2f08\u6570&#xff08;\u7efc\u5408\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9700\u5b9e\u73b03\u4e2a\u63a5\u2f1d&#xff1a; <\/span><span style=\"color:#1f2329\">HttpSessionListener <\/span><span style=\"color:#1f2329\">&#xff08;\u76d1\u542cSession\u521b\u5efa\/\u9500\u6bc1&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContextListener <\/span><span style=\"color:#1f2329\">&#xff08;\u521d\u59cb\u5316\u5728\u7ebf\u2f08\u6570&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">ServletContextAttributeListener <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u76d1\u542c\u5728\u7ebf\u2f08\u6570\u53d8\u5316&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">OnlineUserListener <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">HttpSessionListener<\/span><span style=\"color:#2b2f36\">, <\/span><\/p>\n<p><span style=\"color:#2b2f36\">ServletContextListener { <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#986801\">long onlineCount <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5e94\u2f64\u542f\u52a8\u65f6\u521d\u59cb\u5316\u5728\u7ebf\u2f08\u6570\u4e3a<\/span><span style=\"color:#a0a1a7\">0 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">contextInitialized<\/span><span style=\"color:#2b2f36\">(ServletContextEvent sce) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">sce.getServletContext().setAttribute(<\/span><span style=\"color:#50a14f\">&#034;onlineCount&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ Session<\/span><span style=\"color:#a0a1a7\">\u521b\u5efa&#xff08;\u2f64\u2f3e\u4e0a\u7ebf&#xff09;&#xff0c;\u2f08\u6570<\/span><span style=\"color:#a0a1a7\">&#043;1 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9<\/span><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">sessionCreated<\/span><span style=\"color:#2b2f36\">(HttpSessionEvent se) { <\/span><\/p>\n<p><span style=\"color:#986801\">ServletContext context <\/span><span style=\"color:#2b2f36\">&#061; se.getSession().getServletContext(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">onlineCount &#061; (Long) context.getAttribute(<\/span><span style=\"color:#50a14f\">&#034;onlineCount&#034;<\/span><span style=\"color:#2b2f36\">) &#043; <\/span><span style=\"color:#986801\">1<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">context.setAttribute(<\/span><span style=\"color:#50a14f\">&#034;onlineCount&#034;<\/span><span style=\"color:#2b2f36\">, onlineCount); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ Session<\/span><span style=\"color:#a0a1a7\">\u9500\u6bc1&#xff08;\u2f64\u2f3e\u4e0b\u7ebf&#xff09;&#xff0c;\u2f08\u6570<\/span><span style=\"color:#a0a1a7\">-1 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">sessionDestroyed<\/span><span style=\"color:#2b2f36\">(HttpSessionEvent se) { <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u903b\u8f91\u7c7b\u4f3c&#xff0c;\u2f08\u6570\u51cf<\/span><span style=\"color:#a0a1a7\">1 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP\u2eda\u2faf\u5c55\u2f70&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">\u5728\u7ebf\u2f08\u6570&#xff1a;<\/span><span style=\"color:#2b2f36\">&lt;h1&gt;&lt;%&#061; request.getServletContext().getAttribute(<\/span><span style=\"color:#50a14f\">&#034;onlineCount&#034;<\/span><span style=\"color:#2b2f36\">) %&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/h1&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u2fbc\u9891\u8003\u70b9\u4e0e\u6613\u9519\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u5fc5\u80cc\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8bf7\u6c42\u8f6c\u53d1\u4e0e\u91cd\u5b9a\u5411\u76845\u4e2a\u6838\u2f3c\u533a\u522b&#xff08;URL\u3001\u8bf7\u6c42\u6b21\u6570\u3001\u6570\u636e\u5171\u4eab\u7b49&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">Filter\u7684\u2f63\u547d\u5468\u671f&#xff08;init\u2192doFilter\u2192destroy&#xff09;\u53ca <\/span><span style=\"color:#1f2329\">FilterChain <\/span><span style=\"color:#1f2329\">\u7684\u4f5c\u2f64\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">Listener\u7684\u5206\u7c7b&#xff08;6\u4e2a\u63a5\u2f1d&#xff09;\u53ca\u5178\u578b\u5e94\u2f64&#xff08;\u5728\u7ebf\u2f08\u6570\u7edf\u8ba1&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u4e09\u79cd\u6280\u672f\u7684\u914d\u7f6e\u2f45\u5f0f&#xff08;\u6ce8\u89e3&#043;web.xml&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u6613\u9519\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6df7\u6dc6 <\/span><span style=\"color:#1f2329\">RequestDispatcher <\/span><span style=\"color:#1f2329\">\u7684 <\/span><span style=\"color:#1f2329\">forward <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">include <\/span><span style=\"color:#1f2329\">&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">forward <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f6c\u6807\u8d44\u6e90\u66ff\u4ee3\u5f53\u524d\u8d44\u6e90\u8f93\u51fa&#xff0c;\u5f53\u524d\u8d44\u6e90\u540e\u7eed\u4ee3\u7801\u4e0d\u6267\u2f8f\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">include <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f6c\u6807\u8d44\u6e90\u8f93\u51fa\u62fc\u63a5\u5728\u5f53\u524d\u8d44\u6e90\u4e4b\u540e&#xff0c;\u5f53\u524d\u8d44\u6e90\u540e\u7eed\u4ee3\u7801\u4ecd\u6267\u2f8f\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411\u65f6\u4f7f\u2f64 <\/span><span style=\"color:#1f2329\">request.setAttribute() <\/span><span style=\"color:#1f2329\">\u4f20\u9012\u6570\u636e&#xff08;\u9519\u8bef&#xff0c;\u4e24\u6b21\u8bf7\u6c42\u72ec\u2f74&#xff0c;\u9700\u2f64Session\u6216\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u636e\u5e93&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">Filter\u4e2d\u5fd8\u8bb0\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">chain.doFilter() <\/span><span style=\"color:#1f2329\">&#xff08;\u8bf7\u6c42\u88ab\u62e6\u622a&#xff0c;\u2f46\u6cd5\u5230\u8fbe\u2f6c\u6807\u8d44\u6e90&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">Listener\u672a\u914d\u7f6e <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u6216\u6ce8\u89e3&#xff08;\u76d1\u542c\u5668\u2f46\u6cd5\u2f63\u6548&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u4f18\u5148\u638c\u63e1\u201c\u533a\u522b\u7c7b\u201d\u8003\u70b9&#xff08;\u8f6c\u53d1vs\u91cd\u5b9a\u5411&#xff09;&#xff0c;\u53ef\u901a\u8fc7\u753b\u56fe\u68b3\u7406\u6d41\u7a0b\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">1<\/span><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u52a8\u2f3f\u5b9e\u73b03\u4e2a\u5b9e\u6218\u6848\u4f8b&#xff1a;\u767b\u5f55\u9a8c\u8bc1Filter\u3001\u5728\u7ebf\u2f08\u6570\u7edf\u8ba1Listener\u3001\u8f6c\u53d1\/\u91cd\u5b9a\u5411\u5bf9\u2f50Demo\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u719f\u8bb0\u6838\u2f3cAPI&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">request.getRequestDispatcher() <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">Filter.doFilter() <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContextListener <\/span><span style=\"color:#1f2329\">&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u6ce8\u610f\u914d\u7f6e\u2f42\u4ef6\u8bed\u6cd5&#xff08; <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u4e2d <\/span><span style=\"color:#1f2329\">filter-mapping <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">listener <\/span><span style=\"color:#1f2329\">\u7684\u8282\u70b9\u987a\u5e8f&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u795d\u5404\u4f4d\u540c\u5b66\u8003\u8bd5\u987a\u5229&#xff01;\u5982\u6709\u7591\u95ee\u53ef\u901a\u8fc7\u8bfe\u7a0bQQ\u7fa4\u4ea4\u6d41\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch4 Cookie\u4e0eSession <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u6982\u5ff5\u68b3\u7406 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u4f1a\u8bdd&#xff08;Session&#xff09;\u4e0e\u4f1a\u8bdd\u8ddf\u8e2a <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f1a\u8bdd\u5b9a\u4e49&#xff1a;\u2f64\u2f3e\u6253\u5f00\u6d4f\u89c8\u5668\u2192\u8bbf\u95ee\u670d\u52a1\u5668\u591a\u4e2a\u8d44\u6e90\u2192\u5173\u95ed\u6d4f\u89c8\u5668\u7684\u6574\u4e2a\u8fc7\u7a0b&#xff0c;\u79f0\u4e3a\u2f00\u6b21\u4f1a\u8bdd&#xff08;\u5982\u767b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f55\u2f79\u7ad9\u2192\u6d4f\u89c8\u5546\u54c1\u2192\u9000\u51fa\u6d4f\u89c8\u5668&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTTP\u534f\u8bae\u7279\u70b9&#xff1a;HTTP\u662f\u201c\u2f46\u72b6\u6001\u201d\u534f\u8bae&#xff0c;\u4e0d\u4fdd\u5b58\u8fde\u63a5\u4ea4\u4e92\u4fe1\u606f&#xff0c;\u2f00\u6b21\u54cd\u5e94\u540e\u8fde\u63a5\u65ad\u5f00&#xff0c;\u670d\u52a1\u5668\u2f46 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6cd5\u8bc6\u522b\u540e\u7eed\u8bf7\u6c42\u662f\u5426\u6765\u2f83\u540c\u2f00\u2f64\u2f3e\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f1a\u8bdd\u8ddf\u8e2a\u6280\u672f&#xff08;\u89e3\u51b3HTTP\u2f46\u72b6\u6001\u95ee\u9898&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">URL\u91cd\u5199&#xff1a;URL\u7ed3\u5c3e\u9644\u52a0\u4f1a\u8bddID&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">index.jsp;jsessionid&#061;xxx <\/span><span style=\"color:#1f2329\">&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u9690\u85cf\u8868\u5355\u57df&#xff1a;\u4f1a\u8bddID\u57cb\u2f0aHTML\u9690\u85cf\u57df&#xff0c;\u4e0d\u663e\u2f70\u5728\u2eda\u2faf\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">Cookie&#xff1a;\u670d\u52a1\u5668\u53d1\u9001\u7ed9\u6d4f\u89c8\u5668\u7684\u7eaf\u2f42\u672c\u4fe1\u606f&#xff0c;\u5ba2\u2f3e\u7aef\u5b58\u50a8\u5e76\u968f\u540e\u7eed\u8bf7\u6c42\u5e26\u56de\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">d. <\/span><span style=\"color:#1f2329\">Session&#xff08;Java\u9886\u57df\u7279\u6709&#xff09;&#xff1a;\u670d\u52a1\u5668\u4e3a\u6bcf\u4e2a\u2f64\u2f3e\u521b\u5efa\u5185\u5b58\u7ea7\u4f1a\u8bdd\u5bf9\u8c61&#xff0c;\u901a\u8fc7SessionID\u5173\u8054\u5ba2\u2f3e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7aef\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001Cookie\u6280\u672f\u8be6\u89e3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u5b9a\u4e49\u4e0e\u6838\u2f3c\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u670d\u52a1\u5668\u53d1\u9001\u7ed9\u6d4f\u89c8\u5668\u7684\u4f53\u79ef\u5f88\u2f29\u7684\u7eaf\u2f42\u672c\u4fe1\u606f&#xff0c;\u5ba2\u2f3e\u7aef\u4e0b\u6b21\u8bbf\u95ee\u540c\u2f00\u670d\u52a1\u5668\u65f6\u2f83\u52a8\u9644\u5e26&#xff0c;\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8e\u6807\u8bc6\u2f64\u2f3e\u3001\u8bb0\u5f55\u72b6\u6001\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u4f4d\u7f6e&#xff1a;\u5ba2\u2f3e\u7aef&#xff08;\u6d4f\u89c8\u5668\/\u786c\u76d8&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u7c7b\u578b&#xff1a;\u4ec5\u2f40\u6301\u2fae\u4e2d\u2f42\u5b57\u7b26\u4e32\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u91cf\u9650\u5236&#xff1a;\u6d4f\u89c8\u5668\u6700\u591a\u5b58300\u4e2a&#xff0c;\u6bcf\u4e2a\u7ad9\u70b9\u6700\u591a20\u4e2a\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f24\u2f29\u9650\u5236&#xff1a;\u5355\u4e2aCookie\u22644KB\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u2f2f\u4f5c\u539f\u7406<\/span><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7b2c\u2f00\u6b21\u8bf7\u6c42&#xff1a;\u5ba2\u2f3e\u7aef\u2192\u670d\u52a1\u5668&#xff0c;\u670d\u52a1\u5668\u521b\u5efaCookie\u5bf9\u8c61&#xff08;\u5b58\u50a8\u4f1a\u8bdd\u6570\u636e&#xff0c;\u5982\u2f64\u2f3eID&#xff09;\u2192\u53d1\u9001\u7ed9\u5ba2\u2f3e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7aef\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u5b58\u50a8Cookie&#xff08;\u5185\u5b58\/\u786c\u76d8&#xff0c;\u53d6\u51b3\u4e8e\u6709\u6548\u65f6\u95f4&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u540e\u7eed\u8bf7\u6c42&#xff1a;\u5ba2\u2f3e\u7aef\u2f83\u52a8\u5c06\u8be5\u670d\u52a1\u5668\u7684Cookie\u9644\u5e26\u5728\u8bf7\u6c42\u4e2d\u2192\u670d\u52a1\u5668\u8bfb\u53d6Cookie&#xff0c;\u8bc6\u522b\u2f64\u2f3e\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u2f45\u6cd5&#xff08;Servlet\u73af\u5883&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u4ee3\u7801 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521b\u5efaCookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie cookie &#061; new Cookie(&#034;name&#034;, &#034;value&#034;); <\/span><span style=\"color:#1f2329\">&#xff08;name\/value\u5747\u4e3a\u2fae <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e2d\u2f42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u7f6e\u6709\u6548\u8def\u5f84 <\/span><\/p>\n<p><span style=\"color:#1f2329\">cookie.setPath(&#034;\/&#034;); <\/span><span style=\"color:#1f2329\">&#xff08;\u4ec5\u8bbf\u95ee\u8be5\u8def\u5f84\u65f6&#xff0c;\u6d4f\u89c8\u5668\u624d\u53d1\u9001Cookie&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u7f6e\u6709\u6548\u65f6\u95f4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">cookie.setMaxAge(int expiry) <\/span><span style=\"color:#1f2329\">&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6b63\u6574\u6570&#xff1a;\u5b58\u786c\u76d8&#xff0c;\u5355\u4f4d\u79d2&#xff08;\u59823600&#061;1\u2f29\u65f6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d1f\u6574\u6570&#xff1a;\u5b58\u5185\u5b58&#xff0c;\u6d4f\u89c8\u5668\u5173\u95ed\u5373\u6d88\u5931&lt;br&gt;- 0&#xff1a;\u5220\u9664\u540c\u540dCookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d1\u9001\u7ed9\u5ba2\u2f3e\u7aef <\/span><\/p>\n<p><span style=\"color:#1f2329\">response.addCookie(cookie); <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bfb\u53d6Cookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie[] cookies &#061; request.getCookies(); <\/span><span style=\"color:#1f2329\">&#xff08;\u904d\u5386\u6570\u7ec4\u67e5\u627e\u2f6c\u6807 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4fee\u6539Cookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u65b0\u5efa\u540c\u540d\u3001\u540c\u8def\u5f84\u7684Cookie&#xff0c;\u91cd\u65b0\u8bbe\u7f6evalue\u5e76\u53d1\u9001&#xff08;\u8986\u76d6\u539fCookie&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u9664Cookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u65b0\u5efa\u540c\u540d\u3001\u540c\u8def\u5f84\u7684Cookie&#xff0c; <\/span><span style=\"color:#1f2329\">setMaxAge(0) <\/span><span style=\"color:#1f2329\">&#xff0c;\u5e76\u53d1\u9001\u7ed9\u5ba2\u2f3e\u7aef <\/span><\/p>\n<p><span style=\"color:#1f2329\">4. \u5178\u578b\u5b9e\u4f8b&#xff1a;\u8bb0\u5f55\u4e0a\u6b21\u8bbf\u95ee\u65f6\u95f4 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">protected void <\/span><span style=\"color:#4078f2\">doGet<\/span><span style=\"color:#2b2f36\">(HttpServletRequest request, HttpServletResponse response) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.setContentType(<\/span><span style=\"color:#50a14f\">&#034;text\/html;charset&#061;utf-8&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#986801\">SimpleDateFormat sdf <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">SimpleDateFormat<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;yyyy-MM-dd HH:mm:ss&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#986801\">String currentTime <\/span><span style=\"color:#2b2f36\">&#061; sdf.format(<\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">Date<\/span><span style=\"color:#2b2f36\">()); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Cookie[] cookies &#061; request.getCookies(); <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(cookies &#061;&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) { <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2fb8\u6b21\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#986801\">Cookie cookie <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">Cookie<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;lastTime&#034;<\/span><span style=\"color:#2b2f36\">, currentTime); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">cookie.setMaxAge(<\/span><span style=\"color:#986801\">30<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">24<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">60<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">60<\/span><span style=\"color:#2b2f36\">); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u4fdd\u5b58<\/span><span style=\"color:#a0a1a7\">30<\/span><span style=\"color:#a0a1a7\">\u5929 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.addCookie(cookie); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.getWriter().write(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u2fb8\u6b21\u8bbf\u95ee&#xff0c;\u5f53\u524d\u65f6\u95f4&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; currentTime); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><span style=\"color:#a626a4\">else <\/span><span style=\"color:#2b2f36\">{ <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2fae\u2fb8\u6b21\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#a626a4\">for <\/span><span style=\"color:#2b2f36\">(Cookie cookie : cookies) { <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13<\/span><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;lastTime&#034;<\/span><span style=\"color:#2b2f36\">.equals(cookie.getName())) { <\/span><\/p>\n<p><span style=\"color:#986801\">String lastTime <\/span><span style=\"color:#2b2f36\">&#061; cookie.getValue(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.getWriter().write(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u4e0a\u6b21\u8bbf\u95ee\u65f6\u95f4&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; lastTime &#043; <\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">&#xff0c;\u5f53\u524d\u65f6 <\/span><\/p>\n<p><span style=\"color:#50a14f\">\u95f4&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; currentTime); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">cookie.setValue(currentTime); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u66f4\u65b0\u65f6\u95f4 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">cookie.setMaxAge(<\/span><span style=\"color:#986801\">30<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">24<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">60<\/span><span style=\"color:#2b2f36\">*<\/span><span style=\"color:#986801\">60<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.addCookie(cookie); <\/span><\/p>\n<p><span style=\"color:#a626a4\">break<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">5. \u6ce8\u610f\u7ec6\u8282 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u7531\u670d\u52a1\u5668\u521b\u5efa&#xff0c;\u5ba2\u2f3e\u7aef\u4ec5\u88ab\u52a8\u5b58\u50a8\u548c\u4f20\u9012\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9ed8\u8ba4\u60c5\u51b5\u4e0b&#xff08;\u672a\u8bbe\u7f6e <\/span><span style=\"color:#1f2329\">setMaxAge <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;Cookie\u4e3a\u4f1a\u8bdd\u7ea7&#xff08;\u5b58\u5185\u5b58&#xff0c;\u5173\u95ed\u6d4f\u89c8\u5668\u4e22\u5931&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u4e2aCookie\u4ec5\u6807\u8bc6\u2f00\u79cd\u4fe1\u606f&#xff08;name-value\u952e\u503c\u5bf9&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001Session\u6280\u672f\u8be6\u89e3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u5b9a\u4e49\u4e0e\u6838\u2f3c\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u670d\u52a1\u5668\u4e3a\u6bcf\u4e2a\u4f1a\u8bdd\u521b\u5efa\u7684\u5185\u5b58\u7ea7\u5bf9\u8c61&#xff0c;\u2f64\u4e8e\u5b58\u50a8\u2f64\u2f3e\u4f1a\u8bdd\u6570\u636e&#xff0c;\u662f\u5ba2\u2f3e\u7aef\u4e0e\u670d\u52a1\u5668\u95f4\u4fdd\u6301\u72b6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6001\u7684\u6838\u2f3c\u2f45\u6848\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u4f4d\u7f6e&#xff1a;\u670d\u52a1\u5668\u7aef&#xff08;\u5185\u5b58&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u7c7b\u578b&#xff1a;\u2f40\u6301\u4efb\u610fJava\u5bf9\u8c61&#xff08;\u5b57\u7b26\u4e32\u3001\u96c6\u5408\u3001\u2f83\u5b9a\u4e49\u5bf9\u8c61\u7b49&#xff09;&#xff0c;\u53ef\u5b58\u4e2d\u2f42\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f24\u2f29\u9650\u5236&#xff1a;\u2f464KB\u9650\u5236&#xff0c;\u53d6\u51b3\u4e8e\u670d\u52a1\u5668\u5185\u5b58\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56\u5173\u7cfb&#xff1a;\u4f9d\u8d56Cookie\u4f20\u9012SessionID&#xff08;Cookie\u7981\u2f64\u5219\u9700URL\u91cd\u5199&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u2f2f\u4f5c\u539f\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7b2c\u2f00\u6b21\u8bf7\u6c42&#xff1a;\u5ba2\u2f3e\u7aef\u2192\u670d\u52a1\u5668&#xff0c;\u670d\u52a1\u5668\u521b\u5efaSession\u5bf9\u8c61&#xff08;\u2f63\u6210\u552f\u2f00SessionID&#xff09;\u2192\u521b\u5efaCookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;name&#061;JSESSIONID&#xff0c;value&#061;SessionID&#xff09;\u2192\u53d1\u9001\u7ed9\u5ba2\u2f3e\u7aef\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u5b58\u50a8\u8be5Cookie&#xff08;\u9ed8\u8ba4\u4f1a\u8bdd\u7ea7&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u540e\u7eed\u8bf7\u6c42&#xff1a;\u5ba2\u2f3e\u7aef\u9644\u5e26JSESSIONID Cookie\u2192\u670d\u52a1\u5668\u901a\u8fc7SessionID\u627e\u5230\u5bf9\u5e94\u7684Session\u5bf9\u8c61\u2192\u8bfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d6\/\u4fee\u6539\u4f1a\u8bdd\u6570\u636e\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u63a5\u2f1d\u4e0e\u2f45\u6cd5&#xff08;Servlet\u73af\u5883&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24<\/span><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6Session\u5bf9\u8c61&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpSession session &#061; request.getSession(); <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f46Session\u5219\u521b\u5efa\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpSession session &#061; request.getSession(false); <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f46Session\u5219\u8fd4\u56de <\/span><\/p>\n<p><span style=\"color:#1f2329\">null\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u64cd\u4f5c&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u6570\u636e&#xff1a; <\/span><span style=\"color:#1f2329\">session.setAttribute(&#034;key&#034;, <\/span><span style=\"color:#1f2329\">\u5bf9\u8c61<\/span><span style=\"color:#1f2329\">); <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d6\u6570\u636e&#xff1a; <\/span><span style=\"color:#1f2329\">Object obj &#061; session.getAttribute(&#034;key&#034;); <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u6570\u636e&#xff1a; <\/span><span style=\"color:#1f2329\">session.removeAttribute(&#034;key&#034;); <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f\u63a7\u5236&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f3f\u52a8\u9500\u6bc1&#xff1a; <\/span><span style=\"color:#1f2329\">session.invalidate(); <\/span><span style=\"color:#1f2329\">&#xff08;\u5982\u9000\u51fa\u767b\u5f55&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d85\u65f6\u9500\u6bc1&#xff1a;\u9ed8\u8ba430\u5206\u949f&#xff08;Tomcat\u914d\u7f6e&#xff09;&#xff0c;\u53ef\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">web.xml <\/span><span style=\"color:#1f2329\">\u4fee\u6539&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">session-config<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">session-timeout<\/span><span style=\"color:#2b2f36\">&gt;60&lt;\/<\/span><span style=\"color:#e45649\">session-timeout<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u5355\u4f4d&#xff1a;\u5206\u949f <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">session-config<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">4. \u5178\u578b\u5b9e\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;Session\u8ddf\u8e2a&#xff08;\u8bbf\u95ee\u7edf\u8ba1&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">protected void <\/span><span style=\"color:#4078f2\">doGet<\/span><span style=\"color:#2b2f36\">(HttpServletRequest request, HttpServletResponse response) <\/span><\/p>\n<p><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">ServletException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">response.setContentType(<\/span><span style=\"color:#50a14f\">&#034;text\/html;charset&#061;UTF-8&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#986801\">PrintWriter out <\/span><span style=\"color:#2b2f36\">&#061; response.getWriter(); <\/span><\/p>\n<p><span style=\"color:#986801\">HttpSession session <\/span><span style=\"color:#2b2f36\">&#061; request.getSession(<\/span><span style=\"color:#0184bb\">true<\/span><span style=\"color:#2b2f36\">); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f46\u5219\u521b\u5efa <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u7edf\u8ba1\u8bbf\u95ee\u6b21\u6570 <\/span><\/p>\n<p><span style=\"color:#986801\">Integer visitCount <\/span><span style=\"color:#2b2f36\">&#061; (Integer) session.getAttribute(<\/span><span style=\"color:#50a14f\">&#034;visitCount&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(visitCount &#061;&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">visitCount &#061; <\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">visitCount&#043;&#043;; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">session.setAttribute(<\/span><span style=\"color:#50a14f\">&#034;visitCount&#034;<\/span><span style=\"color:#2b2f36\">, visitCount); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8f93\u51fa<\/span><span style=\"color:#a0a1a7\">Session<\/span><span style=\"color:#a0a1a7\">\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#2b2f36\">out.println(<\/span><span style=\"color:#50a14f\">&#034;Session ID<\/span><span style=\"color:#50a14f\">&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; session.getId() &#043; <\/span><span style=\"color:#50a14f\">&#034;&lt;br&gt;&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u521b\u5efa\u65f6\u95f4&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">SimpleDateFormat<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;yyyy-MM-dd <\/span><\/p>\n<p><span style=\"color:#50a14f\">HH:mm:ss&#034;<\/span><span style=\"color:#2b2f36\">).format(<\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">Date<\/span><span style=\"color:#2b2f36\">(session.getCreationTime())) &#043; <\/span><span style=\"color:#50a14f\">&#034;&lt;br&gt;&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16<\/span><span style=\"color:#2b2f36\">out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u8bbf\u95ee\u6b21\u6570&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; visitCount); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u9a8c\u8bc1\u7801\u9a8c\u8bc1&#xff08;\u6838\u2f3c\u573a\u666f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u6210\u9a8c\u8bc1\u7801&#xff1a; <\/span><span style=\"color:#1f2329\">CreateCode <\/span><span style=\"color:#1f2329\">Servlet\u2f63\u6210\u9a8c\u8bc1\u7801\u5b57\u7b26\u4e32&#xff0c;\u5b58\u2f0aSession\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6821\u9a8c\u903b\u8f91&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5ba2\u2f3e\u7aef\u8f93\u2f0a\u7684\u9a8c\u8bc1\u7801 <\/span><\/p>\n<p><span style=\"color:#986801\">String inputCode <\/span><span style=\"color:#2b2f36\">&#061; request.getParameter(<\/span><span style=\"color:#50a14f\">&#034;checkcode&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u670d\u52a1\u5668<\/span><span style=\"color:#a0a1a7\">Session<\/span><span style=\"color:#a0a1a7\">\u4e2d\u5b58\u50a8\u7684\u6b63\u786e\u9a8c\u8bc1\u7801 <\/span><\/p>\n<p><span style=\"color:#986801\">String correctCode <\/span><span style=\"color:#2b2f36\">&#061; (String) <\/span><\/p>\n<p><span style=\"color:#2b2f36\">request.getSession().getAttribute(<\/span><span style=\"color:#50a14f\">&#034;checkcode&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(inputCode.toLowerCase().equals(correctCode)) { <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u9a8c\u8bc1\u7801\u6b63\u786e&#xff0c;\u7ee7\u7eed\u9a8c\u8bc1\u8d26\u53f7\u5bc6\u7801 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><span style=\"color:#a626a4\">else <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#2b2f36\">request.setAttribute(<\/span><span style=\"color:#50a14f\">&#034;error&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u9a8c\u8bc1\u7801\u9519\u8bef<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">request.getRequestDispatcher(<\/span><span style=\"color:#50a14f\">&#034;\/Login&#034;<\/span><span style=\"color:#2b2f36\">).forward(request, response); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;3&#xff09;\u7b80\u6613\u8d2d\u7269\u2ecb&#xff08;\u6838\u2f3c\u573a\u666f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u903b\u8f91&#xff1a;\u2f64Session\u5b58\u50a8\u8d2d\u7269\u2ecb\u6570\u636e&#xff08; <\/span><span style=\"color:#1f2329\">HashMap&lt;BookID, Book&gt; <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u5b9e\u73b0\u201c\u6dfb\u52a0\u5546\u54c1\u2192\u67e5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u770b\u8d2d\u7269\u2ecb\u201d\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">5. Cookie\u7981\u2f64\u65f6\u7684Session\u89e3\u51b3\u2f45\u6848&#xff1a;URL\u91cd\u5199 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;Cookie\u7981\u2f64\u540e&#xff0c;\u5ba2\u2f3e\u7aef\u2f46\u6cd5\u4f20\u9012SessionID&#xff0c;\u901a\u8fc7URL\u9644\u52a0SessionID\u7ef4\u6301Session\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0\u2f45\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u2f3f\u52a8\u8ffd\u52a0&#xff1a; <\/span><span style=\"color:#1f2329\">href&#061;&#039;index.jsp;jsessionid&#061;&lt;%&#061;session.getId() %&gt;&#039; <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u2f83\u52a8\u7f16\u7801&#xff08;\u63a8\u8350&#xff09;&#xff1a; <\/span><span style=\"color:#1f2329\">href&#061;&#039;&lt;%&#061;response.encodeURL(&#034;index.jsp&#034;) %&gt;&#039; <\/span><span style=\"color:#1f2329\">&#xff08;\u2f83\u52a8\u5224 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u65adCookie\u662f\u5426\u7981\u2f64&#xff0c;\u7981\u2f64\u5219\u8ffd\u52a0SessionID&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001Cookie\u4e0eSession\u7684\u6838\u2f3c\u533a\u522b\u4e0e\u8054\u7cfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u533a\u522b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u2f50\u7ef4\u5ea6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u4f4d\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef&#xff08;\u6d4f\u89c8\u5668\/\u786c\u76d8&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u7aef&#xff08;\u5185\u5b58&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11<\/span><span style=\"color:#1f2329\">\u6570\u636e\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ec5\u2fae\u4e2d\u2f42\u5b57\u7b26\u4e32 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4efb\u610fJava\u5bf9\u8c61&#xff08;\u2f40\u6301\u4e2d\u2f42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f24\u2f29\u9650\u5236 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5355\u4e2a\u22644KB&#xff0c;\u6570\u91cf\u6709\u9650\u5236 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u2f24\u2f29\u9650\u5236&#xff0c;\u53d6\u51b3\u4e8e\u670d\u52a1\u5668\u5185 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b89\u5168\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f83\u4f4e&#xff08;\u5ba2\u2f3e\u7aef\u53ef\u4fee\u6539\/\u5220\u9664&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f83\u2fbc&#xff08;\u6570\u636e\u5b58\u50a8\u5728\u670d\u52a1\u5668&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u8bbe\u7f6e&#xff08;\u5185\u5b58\u7ea7\/\u786c\u76d8\u7ea7&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f1a\u8bdd\u7ea7&#xff08;\u9ed8\u8ba430\u5206\u949f\u8d85\u65f6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56\u5173\u7cfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u72ec\u2f74\u5b58\u5728 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56Cookie\u4f20\u9012SessionID <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u6216URL\u91cd\u5199&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u8054\u7cfb <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u4f9d\u8d56Cookie\u5b9e\u73b0&#xff1a;\u670d\u52a1\u5668\u901a\u8fc7Cookie\u5c06SessionID\u53d1\u9001\u7ed9\u5ba2\u2f3e\u7aef&#xff0c;\u5ba2\u2f3e\u7aef\u540e\u7eed\u8bf7\u6c42\u901a\u8fc7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u5e26\u56deSessionID&#xff0c;\u670d\u52a1\u5668\u624d\u80fd\u627e\u5230\u5bf9\u5e94\u7684Session\u5bf9\u8c61\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u7981\u2f64\u65f6&#xff0c;Session\u53ef\u901a\u8fc7URL\u91cd\u5199\u7ef4\u6301\u529f\u80fd\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u8003\u8bd5\u91cd\u70b9\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u9009\u62e9\u9898\/\u586b\u7a7a\u9898\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTTP\u534f\u8bae\u7684\u201c\u2f46\u72b6\u6001\u201d\u7279\u6027&#xff08;\u4f1a\u8bdd\u8ddf\u8e2a\u6280\u672f\u7684\u6838\u2f3c\u2f6c\u7684&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u7684\u6570\u91cf\/\u2f24\u2f29\u9650\u5236&#xff08;300\u4e2a\/\u7ad9\u70b920\u4e2a\/\u5355\u4e2a4KB&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u9ed8\u8ba4\u8d85\u65f6\u65f6\u95f4&#xff08;30\u5206\u949f&#xff09;\u53ca\u914d\u7f6e\u2f45\u5f0f\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u6709\u6548\u65f6\u95f4\u7684\u4e09\u79cd\u53c2\u6570\u542b\u4e49&#xff08;\u6b63\u6574\u6570\/\u8d1f\u6574\u6570\/0&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u4f9d\u8d56Cookie\u4f20\u9012\u7684\u5173\u952e\u6807\u8bc6&#xff08;SessionID\/JSESSIONID&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u7b80\u7b54\u9898\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u8ff0Cookie\u7684\u2f2f\u4f5c\u539f\u7406\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u8ff0Session\u7684\u2f2f\u4f5c\u539f\u7406\u53ca\u2f63\u547d\u5468\u671f\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u2f50Cookie\u4e0eSession\u7684\u6838\u2f3c\u533a\u522b\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f53Cookie\u7981\u2f64\u65f6&#xff0c;\u5982\u4f55\u4fdd\u8bc1Session\u6b63\u5e38\u2f2f\u4f5c&#xff1f;&#xff08;URL\u91cd\u5199&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u7f16\u7a0b\u9898\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f7f\u2f64Cookie\u5b9e\u73b0\u201c\u8bb0\u4f4f\u2f64\u2f3e\u540d\u201d\u6216\u201c\u4e0a\u6b21\u8bbf\u95ee\u65f6\u95f4\u201d\u529f\u80fd\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f7f\u2f64Session\u5b9e\u73b0\u9a8c\u8bc1\u7801\u9a8c\u8bc1\u3001\u7b80\u6613\u8d2d\u7269\u2ecb\u3001\u2f64\u2f3e\u767b\u5f55\u72b6\u6001\u7ef4\u6301\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cookie\u7684\u521b\u5efa\u3001\u8bfb\u53d6\u3001\u4fee\u6539\u3001\u5220\u9664\u64cd\u4f5c\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Session\u7684\u5c5e\u6027\u64cd\u4f5c&#xff08;setAttribute\/getAttribute&#xff09;\u53ca\u2f3f\u52a8\u9500\u6bc1&#xff08;invalidate&#xff09;\u3002<\/span><span style=\"color:#1f2329\">\u516d\u3001\u6613\u9519\u70b9\u63d0\u9192 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">Cookie\u7684name\u548cvalue\u4e0d\u80fd\u76f4\u63a5\u5b58\u50a8\u4e2d\u2f42&#xff08;\u9700\u7f16\u7801\u89e3\u7801&#xff0c;\u8003\u8bd5\u9ed8\u8ba4\u4e0d\u8003\u4e2d\u2f42\u5904\u7406&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">Session\u7684 <\/span><span style=\"color:#1f2329\">getSession() <\/span><span style=\"color:#1f2329\">\u4e0e <\/span><span style=\"color:#1f2329\">getSession(false) <\/span><span style=\"color:#1f2329\">\u7684\u533a\u522b&#xff08;\u524d\u8005\u2f46\u5219\u521b\u5efa&#xff0c;\u540e\u8005\u2f46\u5219\u8fd4\u56de <\/span><\/p>\n<p><span style=\"color:#1f2329\">null&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5220\u9664Cookie\u5fc5\u987b\u4fdd\u8bc1\u201c\u540c\u540d\u3001\u540c\u8def\u5f84\u201d&#xff0c;\u5426\u5219\u2f46\u6cd5\u5220\u9664\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">Session\u7684\u8d85\u65f6\u65f6\u95f4\u662f\u201c\u4e24\u6b21\u8bf7\u6c42\u7684\u95f4\u9694\u65f6\u95f4\u201d&#xff0c;\u2f7d\u2fae\u4f1a\u8bdd\u603b\u65f6\u2ed3\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u5173\u95ed\u6d4f\u89c8\u5668\u4e0d\u4f1a\u76f4\u63a5\u9500\u6bc1Session&#xff0c;\u4ec5\u9500\u6bc1\u5ba2\u2f3e\u7aef\u5b58\u50a8\u7684SessionID Cookie&#xff0c;\u670d\u52a1\u5668\u7aefSession\u4ecd\u4f1a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d85\u65f6\u540e\u9500\u6bc1\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch5 JSP\u57fa\u7840 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001JSP\u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u5b9a\u4e49\u4e0e\u672c\u8d28 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5168\u79f0&#xff1a;Java Server Pages&#xff0c;\u52a8\u6001\u2f79\u2eda\u5f00\u53d1\u6280\u672f <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u8d28&#xff1a;\u2f00\u79cdJava Servlet&#xff0c;\u4e13\u6ce8\u4e8eJava Web\u5e94\u2f64\u7684\u2f64\u2f3e\u754c\u2faf\u5c42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u6027&#xff1a;\u5728HTML\/XHTML\/XML\u4e2d\u5d4c\u2f0aJava\u4ee3\u7801&#xff0c;\u901a\u8fc7JSP\u6807\u7b7e&#xff08; <\/span><span style=\"color:#1f2329\">&lt;% <\/span><span style=\"color:#1f2329\">\u4ee3\u7801 <\/span><span style=\"color:#1f2329\">%&gt; <\/span><span style=\"color:#1f2329\">&#xff09;\u5b9e\u73b0\u52a8\u6001\u5185\u5bb9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u6210 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd&#xff1a;\u5904\u7406\u2f64\u2f3e\u8868\u5355\u8f93\u2f0a\u3001\u8bbf\u95ee\u6570\u636e\u5e93\/\u6570\u636e\u6e90\u3001\u52a8\u6001\u521b\u5efa\u2f79\u2eda <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. JSP\u7684\u4f18\u52bf&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u2f50\u5bf9\u8c61 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f18\u52bf <\/span><\/p>\n<p><span style=\"color:#1f2329\">CGI\u7a0b\u5e8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6027\u80fd\u66f4\u4f18&#xff08;\u76f4\u63a5\u5d4c\u2f0a\u52a8\u6001\u5143 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7d20&#xff0c;\u2f46\u9700\u5355\u72ec\u5f15\u2f64CGI\u2f42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ef6&#xff09;\u3001\u7f16\u8bd1\u540e\u6267\u2f8f&#xff08;\u2f46\u9700\u91cd\u590d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f7d\u2f0a\u89e3\u91ca\u5668&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">ASP <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a8\u6001\u90e8\u5206\u2f64Java\u7f16\u5199&#xff08;\u8de8\u5e73 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53f0\u3001\u529f\u80fd\u66f4\u5f3a&#xff09;\u3001\u53ef\u79fb\u690d\u5230\u2fae <\/span><\/p>\n<p><span style=\"color:#1f2329\">MS\u5e73\u53f0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7eafServlet <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u9700\u2f24\u91cf <\/span><span style=\"color:#1f2329\">println <\/span><span style=\"color:#1f2329\">\u8bed\u53e5&#xff0c;\u4fbf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8e\u7f16\u5199\/\u4fee\u6539HTML\u754c\u2faf <\/span><\/p>\n<p><span style=\"color:#1f2329\">SSI <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f40\u6301\u8868\u5355\u6570\u636e\u5904\u7406\u3001\u6570\u636e\u5e93\u8fde <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JavaScript<\/span><span style=\"color:#1f2329\">\u53ef\u4e0e\u670d\u52a1\u5668\u4ea4\u4e92&#xff0c;\u2f40\u6301\u590d\u6742\u670d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a1&#xff08;\u6570\u636e\u5e93\u8bbf\u95ee\u3001\u56fe\u50cf\u5904\u7406 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9759\u6001HTML <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5305\u542b\u52a8\u6001\u4fe1\u606f&#xff0c;\u53ef\u5b9e\u65f6\u54cd\u5e94\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u636e\u53d8\u5316 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u989d\u5916\u7279\u6027&#xff1a;\u5c5e\u4e8eJava EE\u6838\u2f3c\u7ec4\u4ef6&#xff0c;\u2f40\u6301JDBC\u3001JNDI\u3001EJB\u7b49\u4f01\u4e1a\u7ea7API&#xff0c;\u53ef\u4e0e\u4e1a\u52a1\u903b\u8f91Servlet\u534f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540c\u2f2f\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001JSP\u2f2f\u4f5c\u539f\u7406\u4e0e\u2f63\u547d\u5468\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u8fd0\u2f8f\u73af\u5883 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56JSP\u5f15\u64ce&#xff08;\u5bb9\u5668&#xff09; &#xff1a;\u4e0eWeb\u670d\u52a1\u5668\u534f\u540c&#xff0c;\u63d0\u4f9b\u8fd0\u2f8f\u73af\u5883&#xff0c;\u8bc6\u522bJSP\u7279\u6b8a\u5143\u7d20 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6d41\u7a0b&#xff08;4\u6b65&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u6d4f\u89c8\u5668\u53d1\u9001HTTP\u8bf7\u6c42\u5230Web\u670d\u52a1\u5668 <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u8bc6\u522bJSP\u8bf7\u6c42&#xff0c;\u4f20\u9012\u7ed9JSP\u5f15\u64ce&#xff0c;\u5c06JSP\u2f42\u4ef6\u8f6c\u4e3aServlet&#xff08;\u6a21\u677f\u2f42\u672c\u2192 <\/span><span style=\"color:#1f2329\">println() <\/span><span style=\"color:#1f2329\">&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP\u5143\u7d20\u2192Java\u4ee3\u7801&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u7f16\u8bd1Servlet\u4e3a\u53ef\u6267\u2f8f\u7c7b&#xff0c;Servlet\u5f15\u64ce\u6267\u2f8f\u8be5\u7c7b&#xff0c;\u2f63\u6210HTML\u683c\u5f0f\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1456f0\">d. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5668\u4ee5\u9759\u6001HTML\u5f62\u5f0f\u8fd4\u56de\u54cd\u5e94&#xff0c;\u6d4f\u89c8\u5668\u89e3\u6790\u5c55\u2f70 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. JSP\u2f63\u547d\u5468\u671f&#xff08;\u5fc5\u8003\u77e5\u8bc6\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u56db\u4e2a\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u8bd1\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u89e3\u6790JSP\u2f42\u4ef6\u2192\u8f6c\u4e3aServlet\u2192 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u8bd1Servlet&#xff08;\u4ec5\u2fb8\u6b21\u8bf7\u6c42\u6216 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u4ef6\u4fee\u6539\u540e\u6267\u2f8f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#8211; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521d\u59cb\u5316\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668\u8f7d\u2f0aJSP\u540e&#xff0c;\u670d\u52a1\u8bf7\u6c42\u524d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6267\u2f8f&#xff0c;\u4ec5\u6267\u2f8f1\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">jspInit() <\/span><span style=\"color:#1f2329\">&#xff08;\u53ef\u91cd\u5199&#xff0c;\u2f64\u4e8e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521d\u59cb\u5316\u6570\u636e\u5e93\u8fde\u63a5\u3001\u6253\u5f00\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6267\u2f8f\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5904\u7406\u6bcf\u4e2a\u2f64\u2f3e\u8bf7\u6c42&#xff0c;\u662f\u2f63\u547d\u5468 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u671f\u4e2d\u4e0e\u8bf7\u6c42\u76f8\u5173\u7684\u6838\u2f3c\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">_jspService(HttpServle <\/span><\/p>\n<p><span style=\"color:#1f2329\">tRequest request, <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletResponse <\/span><\/p>\n<p><span style=\"color:#1f2329\">response) <\/span><span style=\"color:#1f2329\">&#xff08;\u2f83\u52a8\u2f63\u6210&#xff0c;\u4e0d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u91cd\u5199&#xff0c;\u2f40\u6301GET\/POST\u7b497 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u79cdHTTP\u2f45\u6cd5&#xff09;<\/span><span style=\"color:#1f2329\">\u9500\u6bc1\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP\u4ece\u5bb9\u5668\u4e2d\u79fb\u9664\u65f6\u6267\u2f8f&#xff0c;\u4ec5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6267\u2f8f1\u6b21 <\/span><\/p>\n<p><span style=\"color:#1f2329\">jspDestroy() <\/span><span style=\"color:#1f2329\">&#xff08;\u53ef\u91cd\u5199&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u4e8e\u91ca\u653e\u6570\u636e\u5e93\u8fde\u63a5\u3001\u5173\u95ed\u2f42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ef6\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u2f63\u547d\u5468\u671f\u5b9e\u4f8b\u5173\u952e\u4ee3\u7801&#xff08;\u7406\u89e3\u8bb0\u5fc6&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%! <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6210\u5458\u53d8\u91cf&#xff08;\u5171\u4eab\u4e8e\u6240\u6709\u2f64\u2f3e\u7ebf\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">initVar&#061;<\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">serviceVar&#061;<\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">destroyVar&#061;<\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u521d\u59cb\u5316\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">jspInit<\/span><span style=\"color:#2b2f36\">(){ initVar&#043;&#043;; System.out.println(<\/span><span style=\"color:#50a14f\">&#034;JSP<\/span><span style=\"color:#50a14f\">\u521d\u59cb\u5316<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">&#043;initVar&#043;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u6b21<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u9500\u6bc1\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">jspDestroy<\/span><span style=\"color:#2b2f36\">(){ destroyVar&#043;&#043;; System.out.println(<\/span><span style=\"color:#50a14f\">&#034;JSP<\/span><span style=\"color:#50a14f\">\u9500 <\/span><\/p>\n<p><span style=\"color:#50a14f\">\u6bc1<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">&#043;destroyVar&#043;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u6b21<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); } <\/span><\/p>\n<p><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;% <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u670d\u52a1\u2f45\u6cd5\u4e2d\u6267\u2f8f&#xff08;\u6bcf\u6b21\u8bf7\u6c42<\/span><span style=\"color:#a0a1a7\">&#043;1<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">serviceVar&#043;&#043;; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u54cd\u5e94\u8bf7\u6c42<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">&#043;serviceVar&#043;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u6b21<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001JSP\u57fa\u672c\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u2eda\u2faf\u7ec4\u6210 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5143\u7d20&#xff1a;JSP\u5b9a\u4e49\u7684\u6838\u2f3c\u5185\u5bb9&#xff08;\u6307\u4ee4\u3001\u811a\u672c\u3001\u52a8\u4f5c\u3001\u8868\u8fbe\u5f0f\u8bed\u2f94&#xff09;&#xff0c;\u5bb9\u5668\u4f1a\u8f6c\u4e3aJava\u4ee3\u7801 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6a21\u677f\u6570\u636e&#xff1a;HTML\/XHTML\u7b49\u2faeJSP\u5143\u7d20&#xff0c;\u5bb9\u5668\u4e0d\u5904\u7406&#xff0c;\u76f4\u63a5\u8fd4\u56de\u5ba2\u2f3e\u7aef <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u811a\u672c\u5143\u7d20&#xff08;\u7f16\u7a0b\u9898\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u5206\u7c7b\u4e0e\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5\u683c\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f\u4e8b\u9879 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e&#xff08;Declarations&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%! <\/span><span style=\"color:#1f2329\">\u58f0\u660e<\/span><span style=\"color:#1f2329\">; [<\/span><span style=\"color:#1f2329\">\u58f0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u660e<\/span><span style=\"color:#1f2329\">;]&#8230; %&gt; <\/span><span style=\"color:#1f2329\">\u6216 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:declaration&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u2eda\u2faf\u6210\u5458\u53d8\u91cf\u3001\u2f45 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6cd5\u3001\u5185\u90e8\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d8\u91cf\u4e3a\u5171\u4eab\u53d8\u91cf&#xff08;\u591a\u2f64\u2f3e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ebf\u7a0b\u5171\u4eab&#xff09;&#xff0c;\u2f45\u6cd5\u4e3a <\/span><\/p>\n<p><span style=\"color:#1f2329\">Servlet\u7c7b\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16<\/span><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f&#xff08;Expressions&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%&#061; <\/span><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f <\/span><span style=\"color:#1f2329\">%&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u2f46\u7a7a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u683c\u3001\u2f46\u5206\u53f7&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba1\u7b97\u8868\u8fbe\u5f0f\u5e76\u63d2\u2f0a\u8f93\u51fa <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6d41&#xff0c;\u8fd4\u56de\u5ba2\u2f3e\u7aef <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f\u7ed3\u679c\u2f83\u52a8\u8f6c\u4e3a\u5b57\u7b26 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e32 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u811a\u672c\u2f29\u7a0b\u5e8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;Scriptlets&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;% Java<\/span><span style=\"color:#1f2329\">\u4ee3\u7801 <\/span><span style=\"color:#1f2329\">%&gt; <\/span><span style=\"color:#1f2329\">\u6216 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:scriptlet&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5d4c\u2f0a\u6267\u2f8f\u903b\u8f91&#xff08;\u6761\u4ef6\u5224 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u65ad\u3001\u5faa\u73af\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u63d2\u2f0a <\/span><\/p>\n<p><span style=\"color:#1f2329\">_jspService() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d8\u91cf\u4e3a\u5c40\u90e8\u53d8\u91cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u53d8\u91cf\/\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%! <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">a&#061;<\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6210\u5458\u53d8\u91cf <\/span><span style=\"color:#a0a1a7\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%! <\/span><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">String <\/span><span style=\"color:#4078f2\">checkAnswer<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#986801\">boolean <\/span><span style=\"color:#2b2f36\">flag){ <\/span><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">flag?<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u6b63\u786e<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">:<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u9519\u8bef<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">; } <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\u2f45\u6cd5 <\/span><span style=\"color:#a0a1a7\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;p&gt;<\/span><span style=\"color:#2b2f36\">\u4eca\u5929\u662f<\/span><span style=\"color:#2b2f36\">:&lt;%&#061;(<\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">java<\/span><span style=\"color:#2b2f36\">.util.Date()).toLocaleString()%&gt;&lt;\/p&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6ce8\u91ca <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP\u6ce8\u91ca&#xff08;\u5bb9\u5668\u5ffd\u7565&#xff0c;\u4e0d\u8fd4\u56de\u5ba2\u2f3e\u7aef&#xff09;&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;%&#8211; <\/span><span style=\"color:#1f2329\">\u6ce8\u91ca\u5185\u5bb9 <\/span><span style=\"color:#1f2329\">&#8211;%&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f&#xff1a;\u533a\u522b\u4e8eHTML\u6ce8\u91ca&#xff08; <\/span><span style=\"color:#1f2329\">&lt;!&#8211; <\/span><span style=\"color:#1f2329\">\u6ce8\u91ca <\/span><span style=\"color:#1f2329\">&#8211;&gt; <\/span><span style=\"color:#1f2329\">&#xff0c;\u4f1a\u8fd4\u56de\u5ba2\u2f3e\u7aef&#xff0c;\u53ef\u5728\u2eda\u2faf\u6e90\u7801\u4e2d\u770b\u5230&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">4. \u6307\u4ee4\u5143\u7d20&#xff08;3\u79cd\u6838\u2f3c\u6307\u4ee4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u8bed\u6cd5\u683c\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%&#064; <\/span><span style=\"color:#1f2329\">\u6307\u4ee4\u540d \u5c5e\u6027\u540d<\/span><span style=\"color:#1f2329\">1&#061;&#034;<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">1&#034; <\/span><span style=\"color:#1f2329\">\u5c5e\u6027\u540d<\/span><span style=\"color:#1f2329\">2&#061;&#034;<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">2&#034;&#8230; %&gt; <\/span><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">&lt;%&#064; <\/span><span style=\"color:#1f2329\">\u2f46\u7a7a\u683c&#xff09;\u6216XML\u683c\u5f0f&#xff08;\u5982 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:directive.page&gt; <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u5206\u7c7b\u4e0e\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6307\u4ee4\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">page <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u5f53\u524d\u2eda\u2faf&#xff08;\u5bb9\u5668\u4f7f\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf4\u660e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">language&#xff08;\u8bed\u2f94&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">contentType&#xff08;\u5185\u5bb9\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u578b&#xff09;\u3001pageEncoding <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u7f16\u7801&#xff09;\u3001import&#xff08;\u5bfc\u2f0a <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%&#064; page <\/span><\/p>\n<p><span style=\"color:#1f2329\">language&#061;&#034;java&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">contentType&#061;&#034;text\/h <\/span><\/p>\n<p><span style=\"color:#1f2329\">tml; charset&#061;UTF- <\/span><\/p>\n<p><span style=\"color:#1f2329\">8&#034; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">1<\/span><span style=\"color:#1f2329\">\u7c7b&#xff09;\u3001session&#xff08;\u662f\u5426\u2f40 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6301\u4f1a\u8bdd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">import&#061;&#034;java.util.* <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#034; %&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">include <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u8bd1\u9636\u6bb5\u5408\u5e76\u5916\u90e8\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;JSP\/HTML\/\u2f42\u672c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">file&#xff08;\u76f8\u5bf9URL\u8def\u5f84&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%&#064; include <\/span><\/p>\n<p><span style=\"color:#1f2329\">file&#061;&#034;header.html&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">taglib <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f15\u2f0a\u2f83\u5b9a\u4e49\u6807\u7b7e\u5e93 <\/span><\/p>\n<p><span style=\"color:#1f2329\">uri&#xff08;\u6807\u7b7e\u5e93\u8def\u5f84&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">prefix&#xff08;\u6807\u7b7e\u524d\u7f00&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;%&#064; taglib <\/span><\/p>\n<p><span style=\"color:#1f2329\">uri&#061;&#034;<\/span><span style=\"color:#336df4\">http:\/\/java.su <\/span><\/p>\n<p><span style=\"color:#336df4\">n.com\/jsp\/jstl\/core <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#034; prefix&#061;&#034;c&#034; %&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">5. \u52a8\u4f5c\u5143\u7d20&#xff08;\u6838\u2f3c\u52a8\u4f5c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u901a\u2f64\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">id <\/span><span style=\"color:#1f2329\">&#xff1a;\u552f\u2f00\u6807\u8bc6&#xff0c;\u53ef\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">PageContext <\/span><span style=\"color:#1f2329\">\u8c03\u2f64 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">scope <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f63\u547d\u5468\u671f&#xff08;page\/request\/session\/application&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u5e38\u2f64\u52a8\u4f5c\u53ca\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a8\u4f5c\u5143\u7d20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:include&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fd0\u2f8f\u65f6\u5305\u542b\u9759\u6001\/\u52a8\u6001\u2f42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">page&#xff08;\u2f6c\u6807\u2f42\u4ef6URL&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">flush&#xff08;\u662f\u5426\u5237\u65b0\u7f13\u51b2\u533a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:include <\/span><\/p>\n<p><span style=\"color:#1f2329\">page&#061;&#034;date.jsp&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">flush&#061;&#034;true&#034; \/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:useBean&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u88c5\u8f7dJavaBean\u7ec4\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">id&#xff08;Bean\u6807\u8bc6&#xff09;\u3001class <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;Bean\u5168\u7c7b\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:useBean <\/span><\/p>\n<p><span style=\"color:#1f2329\">id&#061;&#034;test&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">class&#061;&#034;action.TestB <\/span><\/p>\n<p><span style=\"color:#1f2329\">ean&#034; \/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:setProperty&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u7f6eBean\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">name&#xff08;Bean\u6807\u8bc6&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">property&#xff08;\u5c5e\u6027\u540d&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#xff08;\u5c5e\u6027\u503c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:setProperty <\/span><\/p>\n<p><span style=\"color:#1f2329\">name&#061;&#034;test&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">property&#061;&#034;message&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#061;&#034;Hello&#034; \/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:getProperty&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6Bean\u5c5e\u6027\u5e76\u8f93\u51fa <\/span><\/p>\n<p><span style=\"color:#1f2329\">name&#xff08;Bean\u6807\u8bc6&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">property&#xff08;\u5c5e\u6027\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:getProperty <\/span><\/p>\n<p><span style=\"color:#1f2329\">name&#061;&#034;test&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">property&#061;&#034;message&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:forward&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f6c\u53d1\u8bf7\u6c42\u5230\u53e6\u2f00\u4e2a\u2eda\u2faf <\/span><\/p>\n<p><span style=\"color:#1f2329\">page&#xff08;\u2f6c\u6807URL&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:forward <\/span><\/p>\n<p><span style=\"color:#1f2329\">page&#061;&#034;login.jsp&#034; \/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:text&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#8211;<\/span><span style=\"color:#1f2329\">\u5d4c\u2f0a\u2f42\u672c\u6a21\u677f&#xff08;\u2f40\u6301EL\u8868 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fbe\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;jsp:text&gt;&lt;! <\/span><\/p>\n<p><span style=\"color:#1f2329\">[CDATA[&lt;!DOCTYPE <\/span><\/p>\n<p><span style=\"color:#1f2329\">html&gt;]]&gt;&lt;\/jsp:text&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001JSP\u9690\u542b\u5bf9\u8c61&#xff08;\u5fc5\u8003\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u7279\u6027 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668\u2f83\u52a8\u521b\u5efa&#xff0c;\u5f00\u53d1\u8005\u53ef\u76f4\u63a5\u4f7f\u2f64&#xff08;\u2f46\u9700\u663e\u5f0f\u58f0\u660e&#xff09;&#xff0c;\u51719\u4e2a <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u5bf9\u8c61\u53ca\u2f64\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bf9\u8c61\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletRequest <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5\u6536\u5ba2\u2f3e\u7aef\u8bf7\u6c42\u6570\u636e&#xff08;\u8868 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5355\u3001URL\u53c2\u6570\u3001HTTP <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5934&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameter()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameterValues()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getHeader()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getHeaderNames() <\/span><\/p>\n<p><span style=\"color:#1f2329\">response <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpServletResponse <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5411\u5ba2\u2f3e\u7aef\u53d1\u9001\u54cd\u5e94&#xff08;\u8bbe\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">HTTP\u5934\u3001Cookie\u3001\u72b6\u6001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7801&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">setIntHeader()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">setRefreshHeader()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">addCookie() <\/span><\/p>\n<p><span style=\"color:#1f2329\">out <\/span><\/p>\n<p><span style=\"color:#1f2329\">JspWriter <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f93\u51fa\u5185\u5bb9\u5230\u54cd\u5e94\u6d41 <\/span><\/p>\n<p><span style=\"color:#1f2329\">print()\u3001println()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">flush() <\/span><\/p>\n<p><span style=\"color:#1f2329\">session <\/span><\/p>\n<p><span style=\"color:#1f2329\">HttpSession <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ddf\u8e2a\u2f64\u2f3e\u4f1a\u8bdd&#xff08;\u5b58\u50a8\u8de8\u8bf7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6c42\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">getCreationTime()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getLastAccessedTime() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u3001setAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">invalidate() <\/span><\/p>\n<p><span style=\"color:#1f2329\">application <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5171\u4eab\u5e94\u2f64\u7ea7\u6570\u636e&#xff08;\u6240\u6709\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f3e\u53ef\u2ec5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">setAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getRealPath() <\/span><\/p>\n<p><span style=\"color:#1f2329\">config <\/span><\/p>\n<p><span style=\"color:#1f2329\">ServletConfig <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95eeServlet\/JSP\u521d\u59cb\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53c2\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getServletName()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getInitParameter() <\/span><\/p>\n<p><span style=\"color:#1f2329\">pageContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">PageContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u2eda\u2faf\u6240\u6709\u5bf9\u8c61 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;request\/response\/ses <\/span><\/p>\n<p><span style=\"color:#1f2329\">sion\u7b49&#xff09;&#xff0c;\u7ba1\u7406\u5c5e\u6027\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57df <\/span><\/p>\n<p><span style=\"color:#1f2329\">setAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getAttribute()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">removeAttribute() <\/span><\/p>\n<p><span style=\"color:#1f2329\">page <\/span><\/p>\n<p><span style=\"color:#1f2329\">Object&#xff08;\u5f53\u524dJSP\u2eda\u2faf\u5b9e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u8868\u5f53\u524dJSP\u2eda\u2faf&#xff08;\u7b49\u4ef7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8ethis&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#8211;<\/span><span style=\"color:#1f2329\">exception <\/span><\/p>\n<p><span style=\"color:#1f2329\">Throwable <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5904\u7406\u2eda\u2faf\u5f02\u5e38&#xff08;\u9700page\u6307 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee4\u6307\u5b9aerrorPage&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">getMessage()\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">printStackTrace() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u8868\u5355\u5904\u7406\u4e0e\u6570\u636e\u4ea4\u4e92 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6570\u636e\u63d0\u4ea4\u2f45\u5f0f&#xff08;GET vs POST&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">GET\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">POST\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u4f20\u8f93 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u62fc\u63a5\u5728URL\u540e&#xff08; <\/span><span style=\"color:#1f2329\">? <\/span><\/p>\n<p><span style=\"color:#1f2329\">key1&#061;value1&amp;key2&#061;value <\/span><\/p>\n<p><span style=\"color:#1f2329\">2 <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9690\u5f0f\u4f20\u8f93&#xff08;\u8bf7\u6c42\u4f53\u4e2d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b89\u5168\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f4e&#xff08;\u6570\u636e\u53ef\u2ec5&#xff09;&#xff0c;\u4e0d\u9002\u5408\u654f\u611f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4fe1\u606f&#xff08;\u5bc6\u7801&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2fbc&#xff08;\u6570\u636e\u4e0d\u53ef\u2ec5&#xff09;&#xff0c;\u9002\u5408\u654f\u611f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4fe1\u606f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u2f24\u2f29\u9650\u5236 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6700\u2f241024\u5b57\u8282 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u9650\u5236&#xff08;\u53d6\u51b3\u4e8e\u670d\u52a1\u5668\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u5355\u67e5\u8be2\u3001\u2fae\u654f\u611f\u6570\u636e\u63d0\u4ea4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u5355\u63d0\u4ea4\u3001\u2f42\u4ef6\u4e0a\u4f20\u3001\u654f\u611f\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u636e\u4f20\u8f93 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u8868\u5355\u6570\u636e\u83b7\u53d6\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f45\u6cd5\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameter(String name) <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6\u5355\u4e2a\u503c\u53c2\u6570&#xff08;\u2f42\u672c\u6846\u3001\u5355 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9009\u6846&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">String name &#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.getParameter(&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">username&#034;); <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameterValues(String <\/span><\/p>\n<p><span style=\"color:#1f2329\">name) <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6\u591a\u503c\u53c2\u6570&#xff08;\u590d\u9009\u6846\u3001\u4e0b\u62c9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u9009&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">String[] hobbies &#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.getParameterVa <\/span><\/p>\n<p><span style=\"color:#1f2329\">lues(&#034;hobby&#034;); <\/span><\/p>\n<p><span style=\"color:#1f2329\">getParameterNames() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83b7\u53d6\u6240\u6709\u53c2\u6570\u540d&#xff08;\u904d\u5386\u8868\u5355\u6240 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6709\u5b57\u6bb5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">Enumeration&lt;String&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">params &#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.getParameterNa <\/span><\/p>\n<p><span style=\"color:#1f2329\">mes(); <\/span><\/p>\n<p><span style=\"color:#1f2329\">getInputStream() <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bfb\u53d6\u5ba2\u2f3e\u7aef\u2f06\u8fdb\u5236\u6570\u636e\u6d41&#xff08;\u2f42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ef6\u4e0a\u4f20&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#8211; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u2f70\u4f8b&#xff1a;\u590d\u9009\u6846\u6570\u636e\u5904\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u524d\u7aef\u8868\u5355&#xff08;CheckBox.htm&#xff09;&#xff1a;<\/span><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">form <\/span><span style=\"color:#986801\">action<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;main.jsp&#034; <\/span><span style=\"color:#986801\">method<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;POST&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">input <\/span><span style=\"color:#986801\">type<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;checkbox&#034; <\/span><span style=\"color:#986801\">name<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;subject&#034; <\/span><span style=\"color:#986801\">value<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;maths&#034; <\/span><span style=\"color:#986801\">checked<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#2b2f36\">\u6570\u5b66 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">input <\/span><span style=\"color:#986801\">type<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;checkbox&#034; <\/span><span style=\"color:#986801\">name<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;subject&#034; <\/span><span style=\"color:#986801\">value<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;physics&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#2b2f36\">\u7269\u7406 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">input <\/span><span style=\"color:#986801\">type<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;submit&#034; <\/span><span style=\"color:#986801\">value<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u63d0\u4ea4<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">form<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540e\u7aef\u5904\u7406&#xff08;main.jsp&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;% String[] subjects &#061; request.getParameterValues(<\/span><span style=\"color:#50a14f\">&#034;subject&#034;<\/span><span style=\"color:#2b2f36\">); %&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;p&gt;<\/span><span style=\"color:#2b2f36\">\u9009\u4e2d\u7684\u79d1\u2f6c&#xff1a;<\/span><span style=\"color:#2b2f36\">&lt;% <\/span><span style=\"color:#a626a4\">for<\/span><span style=\"color:#2b2f36\">(String s : subjects) out.print(s&#043;<\/span><span style=\"color:#50a14f\">&#034; &#034;<\/span><span style=\"color:#2b2f36\">); %&gt;&lt;\/p&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001Session\u4f1a\u8bdd\u8ddf\u8e2a <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u4e8e\u8bc6\u522b\u540c\u2f00\u2f64\u2f3e\u7684\u591a\u6b21\u8bf7\u6c42&#xff0c;\u5b58\u50a8\u2f64\u2f3e\u4e13\u5c5e\u6570\u636e&#xff08;\u5982\u767b\u5f55\u72b6\u6001\u3001\u8d2d\u7269\u2ecb&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9ed8\u8ba4\u2f40\u6301\u4f1a\u8bdd\u8ddf\u8e2a&#xff0c;\u53ef\u901a\u8fc7page\u6307\u4ee4\u5173\u95ed&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;%&#064; page session&#061;&#034;false&#034; %&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6838\u2f3c\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u64cd\u4f5c&#xff1a; <\/span><span style=\"color:#1f2329\">session.setAttribute(String key, Object value) <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">session.getAttribute(String key) <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f1a\u8bdd\u7ba1\u7406&#xff1a; <\/span><span style=\"color:#1f2329\">session.isNew() <\/span><span style=\"color:#1f2329\">&#xff08;\u5224\u65ad\u662f\u5426\u65b0\u4f1a\u8bdd&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">session.invalidate() <\/span><span style=\"color:#1f2329\">&#xff08;\u9500\u6bc1\u4f1a <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><span style=\"color:#1f2329\">\u8bdd\u6709 &#xff09;\u6548\u671f\u8bbe\u7f6e&#xff1a; <\/span><span style=\"color:#1f2329\">session.setMaxInactiveInterval(int seconds) <\/span><span style=\"color:#1f2329\">&#xff08;\u79d2&#xff09;&#xff0c;\u6216\u5728 <\/span><\/p>\n<p><span style=\"color:#1f2329\">web.xml\u4e2d\u914d\u7f6e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">session-config<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">session-timeout<\/span><span style=\"color:#2b2f36\">&gt;15&lt;\/<\/span><span style=\"color:#e45649\">session-timeout<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; 15<\/span><span style=\"color:#a0a1a7\">\u5206\u949f <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">session-config<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u5e94\u2f64\u2f70\u4f8b&#xff1a;\u8bbf\u95ee\u6b21\u6570\u7edf\u8ba1 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;% <\/span><\/p>\n<p><span style=\"color:#986801\">Date createTime <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">Date<\/span><span style=\"color:#2b2f36\">(session.getCreationTime()); <\/span><\/p>\n<p><span style=\"color:#986801\">Date lastAccessTime <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">Date<\/span><span style=\"color:#2b2f36\">(session.getLastAccessedTime()); <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3<\/span><span style=\"color:#986801\">Integer visitCount <\/span><span style=\"color:#2b2f36\">&#061; (Integer)session.getAttribute(<\/span><span style=\"color:#50a14f\">&#034;visitCount&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a626a4\">if<\/span><span style=\"color:#2b2f36\">(visitCount &#061;&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) visitCount &#061; <\/span><span style=\"color:#986801\">0<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">visitCount&#043;&#043;; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">session.setAttribute(<\/span><span style=\"color:#50a14f\">&#034;visitCount&#034;<\/span><span style=\"color:#2b2f36\">, visitCount); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;p&gt;<\/span><span style=\"color:#2b2f36\">\u4f1a\u8bdd<\/span><span style=\"color:#2b2f36\">ID<\/span><span style=\"color:#2b2f36\">&#xff1a;<\/span><span style=\"color:#2b2f36\">&lt;%&#061;session.getId()%&gt;&lt;\/p&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;p&gt;<\/span><span style=\"color:#2b2f36\">\u2fb8\u6b21\u8bbf\u95ee\u65f6\u95f4&#xff1a;<\/span><span style=\"color:#2b2f36\">&lt;%&#061;createTime%&gt;&lt;\/p&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;p&gt;<\/span><span style=\"color:#2b2f36\">\u7d2f\u8ba1\u8bbf\u95ee\u6b21\u6570&#xff1a;<\/span><span style=\"color:#2b2f36\">&lt;%&#061;visitCount%&gt;&lt;\/p&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u2fbc\u9891\u8003\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6982\u5ff5\u7c7b&#xff1a;JSP\u672c\u8d28\u3001\u4f18\u52bf&#xff08;\u4e0e\u5176\u4ed6\u6280\u672f\u5bf9\u2f50&#xff09;\u3001\u2f63\u547d\u5468\u671f\u56db\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8bed\u6cd5\u7c7b&#xff1a;\u811a\u672c\u5143\u7d20&#xff08;\u58f0\u660e\/\u8868\u8fbe\u5f0f\/\u811a\u672c\u2f29\u7a0b\u5e8f&#xff09;\u3001\u6307\u4ee4&#xff08;page\/include\/taglib&#xff09;\u3001\u6838\u2f3c\u52a8\u4f5c\u5143\u7d20 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5bf9\u8c61\u7c7b&#xff1a;9\u4e2a\u9690\u542b\u5bf9\u8c61\u7684\u7c7b\u578b\u3001\u2f64\u9014\u3001\u5e38\u2f64\u2f45\u6cd5&#xff08;request\/response\/session\/out\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5e94\u2f64\u7c7b&#xff1a;\u8868\u5355\u5904\u7406&#xff08;GET\/POST\u533a\u522b\u3001\u53c2\u6570\u83b7\u53d6&#xff09;\u3001Session\u4f1a\u8bdd\u7ba1\u7406\u3001JavaBean\u7ec4\u4ef6\u8c03\u2f64 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u7f16\u7a0b\u9898&#xff1a;\u52a8\u6001\u2f63\u6210\u2eda\u2faf\u5185\u5bb9\u3001\u8868\u5355\u6570\u636e\u5904\u7406\u3001Session\u6570\u636e\u5b58\u50a8\u4e0e\u5c55\u2f70\u3001JSP\u4e0eJavaBean\u7ed3\u5408 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f0b\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u91cd\u70b9\u638c\u63e1\u2f63\u547d\u5468\u671f\u3001\u9690\u542b\u5bf9\u8c61\u3001\u8868\u5355\u5904\u7406\u3001Session\u56db\u2f24\u6a21\u5757&#xff0c;\u5360\u8003\u8bd5\u5206\u503c60%\u4ee5\u4e0a <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7ed3\u5408\u5b9e\u4f8b\u4ee3\u7801\u7406\u89e3\u8bed\u6cd5&#xff08;\u5982\u2f63\u547d\u5468\u671f\u5b9e\u4f8b\u3001\u8868\u5355\u5904\u7406\u5b9e\u4f8b&#xff09;&#xff0c;\u907f\u514d\u6b7b\u8bb0\u786c\u80cc <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u533a\u5206\u6613\u6df7\u6dc6\u77e5\u8bc6\u70b9&#xff08;\u5982JSP\u6ce8\u91cavs HTML\u6ce8\u91ca\u3001GET vs POST\u3001page\u6307\u4ee4vs include\u6307\u4ee4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u7ec3\u4e60\u7f16\u7a0b\u9898&#xff1a;\u52a8\u6001\u663e\u2f70\u65f6\u95f4\u3001\u8868\u5355\u6570\u636e\u63d0\u4ea4\u4e0e\u9a8c\u8bc1\u3001\u4f1a\u8bdd\u8bbf\u95ee\u6b21\u6570\u7edf\u8ba1\u3001JavaBean\u5c5e\u6027\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch6 JavaBean &amp; EL &amp; JSTL <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001JavaBean \u6838\u2f3c\u77e5\u8bc6\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u5b9a\u4e49\u4e0e\u6838\u2f3c\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JavaBean \u662f\u9075\u5faa JavaBeans API \u89c4\u8303 \u7684 Java \u7c7b&#xff0c;\u6838\u2f3c\u4f5c\u2f64\u662f\u5c01\u88c5\u6570\u636e\u548c\u529f\u80fd&#xff0c;\u5b9e\u73b0\u201c\u2f00\u6b21\u7f16\u5199&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5230\u5904\u8fd0\u2f8f\u201d&#xff0c;\u4fbf\u4e8e\u6570\u636e\u79fb\u690d\u548c\u590d\u2f64\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u5fc5\u80cc\u89c4\u8303&#xff08;\u8003\u8bd5\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u63d0\u4f9b public \u4fee\u9970\u7684\u2f46\u53c2\u6784\u9020\u2f45\u6cd5&#xff08;\u2f64\u4e8e\u5b9e\u4f8b\u5316\u5bf9\u8c61&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5b9e\u73b0 <\/span><span style=\"color:#1f2329\">java.io.Serializable <\/span><span style=\"color:#1f2329\">\u63a5\u2f1d&#xff08;\u2f64\u4e8e\u4fdd\u5b58\u5bf9\u8c61\u72b6\u6001&#xff0c;\u5e8f\u5217\u5316&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5305\u542b\u53ef\u8bfb\u5199\u3001\u53ea\u8bfb\u6216\u53ea\u5199\u7684\u5c5e\u6027&#xff08;\u2f40\u6301\u4efb\u610f\u5408\u6cd5 Java \u6570\u636e\u7c7b\u578b&#xff0c;\u542b\u2f83\u5b9a\u4e49\u7c7b&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u63d0\u4f9b\u5bf9\u5e94\u5c5e\u6027\u7684 getter\/setter \u2f45\u6cd5&#xff08;\u8bfb\u53d6\/\u8bbe\u7f6e\u5c5e\u6027\u503c&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11<\/span><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ea\u8bfb\u5c5e\u6027&#xff1a;\u4ec5\u63d0\u4f9b <\/span><span style=\"color:#1f2329\">getPropertyName() <\/span><span style=\"color:#1f2329\">&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ea\u5199\u5c5e\u6027&#xff1a;\u4ec5\u63d0\u4f9b <\/span><span style=\"color:#1f2329\">setPropertyName() <\/span><span style=\"color:#1f2329\">\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;JSP \u4e2d\u8bbf\u95ee JavaBean <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u58f0\u660e JavaBean&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;jsp:useBean&gt; <\/span><span style=\"color:#1f2329\">\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;jsp:useBean id&#061;<\/span><span style=\"color:#50a14f\">&#034;beanId&#034; <\/span><span style=\"color:#2b2f36\">scope&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u4f5c\u2f64\u57df<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">class&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5168\u7c7b\u540d<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">id <\/span><span style=\"color:#1f2329\">&#xff1a;Bean \u5b9e\u4f8b\u540d\u79f0&#xff08;\u552f\u2f00&#xff0c;\u4e0d\u53ef\u91cd\u590d&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">scope <\/span><span style=\"color:#1f2329\">&#xff1a;\u4f5c\u2f64\u57df&#xff08;\u53ef\u9009\u503c&#xff1a; <\/span><span style=\"color:#1f2329\">page <\/span><span style=\"color:#1f2329\">&#xff08;\u9ed8\u8ba4&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">request <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">session <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">application <\/span><span style=\"color:#1f2329\">&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;%&#064; page import&#061;&#034;java.util.Date&#034; %&gt;&lt;jsp:useBean id&#061;&#034;date&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">class&#061;&#034;java.util.Date&#034; \/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u64cd\u4f5c\u5c5e\u6027&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;jsp:getProperty&gt; <\/span><span style=\"color:#1f2329\">\u4e0e <\/span><span style=\"color:#1f2329\">&lt;jsp:setProperty&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5&#xff08;\u5d4c\u5957\u5728 <\/span><span style=\"color:#1f2329\">&lt;jsp:useBean&gt; <\/span><span style=\"color:#1f2329\">\u4e3b\u4f53\u4e2d&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;jsp:useBean id&#061;<\/span><span style=\"color:#50a14f\">&#034;beanId&#034; <\/span><span style=\"color:#2b2f36\">class&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5168\u7c7b\u540d<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;jsp:setProperty name&#061;<\/span><span style=\"color:#50a14f\">&#034;beanId&#034; <\/span><span style=\"color:#2b2f36\">property&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5c5e\u6027\u540d<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">value&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u503c<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u8c03\u2f64 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">setter &#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;jsp:getProperty name&#061;<\/span><span style=\"color:#50a14f\">&#034;beanId&#034; <\/span><span style=\"color:#2b2f36\">property&#061;<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5c5e\u6027\u540d<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u8c03\u2f64<\/span><span style=\"color:#2b2f36\">getter &#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/jsp:useBean&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">name <\/span><span style=\"color:#1f2329\">\u5fc5\u987b\u4e0e <\/span><span style=\"color:#1f2329\">&lt;jsp:useBean&gt; <\/span><span style=\"color:#1f2329\">\u7684 <\/span><span style=\"color:#1f2329\">id <\/span><span style=\"color:#1f2329\">\u2f00\u81f4&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b&#xff1a;\u8bbf\u95ee <\/span><span style=\"color:#1f2329\">StudentsBean <\/span><span style=\"color:#1f2329\">\u7684\u5c5e\u6027&#xff08;\u2f42\u6863\u6838\u2f3c\u2f70\u4f8b&#xff0c;\u9700\u638c\u63e1&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u5178\u578b\u2f70\u4f8b\u4ee3\u7801&#xff08;\u9700\u80fd\u9ed8\u5199\u6838\u2f3c\u7ed3\u6784&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">StudentsBean <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">java<\/span><span style=\"color:#2b2f36\">.io.Serializable { <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">String firstName; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#2b2f36\">age; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f46\u53c2\u6784\u9020&#xff08;\u5fc5\u5199&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#4078f2\">StudentsBean<\/span><span style=\"color:#2b2f36\">() {} <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7<\/span><span style=\"color:#a0a1a7\">\/\/ getter <\/span><span style=\"color:#a0a1a7\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">String <\/span><span style=\"color:#4078f2\">getFirstName<\/span><span style=\"color:#2b2f36\">() { <\/span><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">firstName; } <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#986801\">int <\/span><span style=\"color:#4078f2\">getAge<\/span><span style=\"color:#2b2f36\">() { <\/span><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">age; } <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ setter <\/span><span style=\"color:#a0a1a7\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">setFirstName<\/span><span style=\"color:#2b2f36\">(String firstName) { <\/span><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.firstName &#061; firstName; } <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">setAge<\/span><span style=\"color:#2b2f36\">(Integer age) { <\/span><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.age &#061; age; } <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001EL \u8868\u8fbe\u5f0f&#xff08;Expression Language&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u4f5c\u2f64\u4e0e\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u66ff\u6362 JSP \u811a\u672c\u8868\u8fbe\u5f0f <\/span><span style=\"color:#1f2329\">&lt;%&#061; %&gt; <\/span><span style=\"color:#1f2329\">&#xff0c;\u7b80\u5316\u6570\u636e\u8bbf\u95ee&#xff08;JavaBean\u3001\u6570\u7ec4\u3001\u96c6\u5408\u3001\u8bf7\u6c42\u53c2\u6570\u7b49&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u2f83\u52a8\u7c7b\u578b\u8f6c\u6362&#xff08;\u2f46\u9700\u2f3f\u52a8\u5f3a\u5236\u8f6c\u6362&#xff0c;\u5982 <\/span><span style=\"color:#1f2329\">request <\/span><span style=\"color:#1f2329\">\u57df\u4e2d Object \u7c7b\u578b\u6570\u636e&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u2f40\u6301\u7b97\u672f\u3001\u903b\u8f91\u3001\u5173\u7cfb\u64cd\u4f5c\u7b26&#xff0c;\u2f40\u6301\u9690\u5f0f\u5bf9\u8c61\u76f4\u63a5\u8bbf\u95ee\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u57fa\u7840\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f\u683c\u5f0f&#xff1a; <\/span><span style=\"color:#1f2329\">${<\/span><span style=\"color:#1f2329\">\u8868\u8fbe\u5f0f\u5185\u5bb9<\/span><span style=\"color:#1f2329\">} <\/span><span style=\"color:#1f2329\">&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u505c\u2f64 EL&#xff1a;\u5728 JSP \u5934\u90e8\u6dfb\u52a0 <\/span><span style=\"color:#1f2329\">&lt;%&#064; page isELIgnored&#061;&#034;true&#034; %&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u9ed8\u8ba4 <\/span><span style=\"color:#1f2329\">false <\/span><span style=\"color:#1f2329\">&#xff0c;\u8ba1\u7b97\u8868 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8fbe\u5f0f&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u6838\u2f3c\u64cd\u4f5c\u7b26&#xff08;\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u64cd\u4f5c\u7b26 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u533a\u522b\/\u6ce8\u610f\u4e8b\u9879 <\/span><\/p>\n<p><span style=\"color:#1f2329\">. <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee JavaBean \u5c5e\u6027\u3001\u96c6\u5408\u5143 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7d20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c5e\u6027\u540d\u2f46\u7279\u6b8a\u5b57\u7b26\u65f6\u4f7f\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">[] <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u7279\u6b8a\u5b57\u7b26\u5c5e\u6027&#xff08;\u5982 <\/span><\/p>\n<p><span style=\"color:#1f2329\">user-agent <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u52a8\u6001\u53d6\u503c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f8b&#xff1a; <\/span><span style=\"color:#1f2329\">${header[&#034;user<\/span><\/p>\n<p><span style=\"color:#1f2329\">agent&#034;]} <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">${map[key]} <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b97\u672f\/\u903b\u8f91\u64cd\u4f5c\u7b26&#xff1a;\u2f40\u6301 <\/span><span style=\"color:#1f2329\">&#043;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">&#8211;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">*<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">\/<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">%<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">&amp;&amp;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">||<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">!<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">&#061;&#061;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">!&#061; <\/span><span style=\"color:#1f2329\">\u7b49&#xff08;\u4e0e Java \u2f00\u81f4&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u62ec\u53f7\u4f18\u5148\u7ea7&#xff1a; <\/span><span style=\"color:#1f2329\">${(1&#043;2)*3} <\/span><span style=\"color:#1f2329\">\u7ed3\u679c\u4e3a 9&#xff08;\u9700\u638c\u63e1\u8fd0\u7b97\u4f18\u5148\u7ea7&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;EL \u9690\u542b\u5bf9\u8c61&#xff08;\u9700\u719f\u8bb0\u2f64\u9014&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9690\u542b\u5bf9\u8c61 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15<\/span><span style=\"color:#1f2329\">pageContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee JSP \u5185\u7f6e\u5bf9\u8c61&#xff08;\u5982 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request\u3001session&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">${pageContext.request. <\/span><\/p>\n<p><span style=\"color:#1f2329\">queryString} <\/span><\/p>\n<p><span style=\"color:#1f2329\">pageScope\/requestScope <\/span><\/p>\n<p><span style=\"color:#1f2329\">\/sessionScope\/applicat <\/span><\/p>\n<p><span style=\"color:#1f2329\">ionScope <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u663e\u5f0f\u8bbf\u95ee\u6307\u5b9a\u4f5c\u2f64\u57df\u7684\u53d8\u91cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">${applicationScope.bo <\/span><\/p>\n<p><span style=\"color:#1f2329\">x} <\/span><span style=\"color:#1f2329\">&#xff08;\u8bbf\u95ee application \u57df\u7684 <\/span><\/p>\n<p><span style=\"color:#1f2329\">box \u53d8\u91cf&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">param <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u5355\u4e2a\u8bf7\u6c42\u53c2\u6570&#xff08;\u5bf9\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.getParameter( <\/span><\/p>\n<p><span style=\"color:#1f2329\">) <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">${param.username} <\/span><span style=\"color:#1f2329\">&#xff08;\u83b7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d6 username \u53c2\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">paramValues <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u591a\u4e2a\u540c\u540d\u8bf7\u6c42\u53c2\u6570&#xff08;\u8fd4\u56de <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b57\u7b26\u4e32\u6570\u7ec4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">${paramValues.hobby[0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">]} <\/span><span style=\"color:#1f2329\">&#xff08;\u83b7\u53d6\u7b2c\u2f00\u4e2a hobby \u53c2 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">header <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u5355\u4e2a\u8bf7\u6c42\u5934&#xff08;\u5bf9\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">request.getHeader() <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">${header[&#034;user<\/span><\/p>\n<p><span style=\"color:#1f2329\">agent&#034;]} <\/span><\/p>\n<p><span style=\"color:#1f2329\">headerValues <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u591a\u4e2a\u540c\u540d\u8bf7\u6c42\u5934&#xff08;\u8fd4\u56de\u5b57 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b26\u4e32\u6570\u7ec4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">${headerValues.accept <\/span><\/p>\n<p><span style=\"color:#1f2329\">[1]} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;EL \u51fd\u6570 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5&#xff1a; <\/span><span style=\"color:#1f2329\">${ns:func(<\/span><span style=\"color:#1f2329\">\u53c2\u6570<\/span><span style=\"color:#1f2329\">1, <\/span><span style=\"color:#1f2329\">\u53c2\u6570<\/span><span style=\"color:#1f2329\">2,&#8230;)} <\/span><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">ns <\/span><span style=\"color:#1f2329\">\u4e3a\u547d\u540d\u7a7a\u95f4&#xff0c; <\/span><span style=\"color:#1f2329\">func <\/span><span style=\"color:#1f2329\">\u4e3a\u51fd\u6570\u540d&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64\u2f70\u4f8b&#xff1a; <\/span><span style=\"color:#1f2329\">fn:length <\/span><span style=\"color:#1f2329\">&#xff08;\u83b7\u53d6\u5b57\u7b26\u4e32\/\u96c6\u5408\u2ed3\u5ea6&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;fn&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/functions&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">${fn:length(<\/span><span style=\"color:#50a14f\">&#034;Hello EL&#034;<\/span><span style=\"color:#2b2f36\">)} &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u7ed3\u679c\u4e3a <\/span><span style=\"color:#986801\">6 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f&#xff1a;\u4f7f\u2f64\u524d\u9700\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">&lt;taglib&gt; <\/span><span style=\"color:#1f2329\">\u5f15\u2f0a\u5bf9\u5e94\u6807\u7b7e\u5e93\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001JSTL \u6807\u7b7e\u5e93&#xff08;JavaServer Pages Standard Tag Library&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u6982\u5ff5\u4e0e\u5b89\u88c5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;JSP \u6807\u51c6\u6807\u7b7e\u96c6\u5408&#xff0c;\u5c01\u88c5\u901a\u2f64\u6838\u2f3c\u529f\u80fd&#xff08;\u8fed\u4ee3\u3001\u6761\u4ef6\u5224\u65ad\u3001\u683c\u5f0f\u5316\u3001XML \u64cd\u4f5c\u7b49&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5b89\u88c5\u6b65\u9aa4&#xff08;\u9700\u638c\u63e1&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0b\u8f7d <\/span><span style=\"color:#1f2329\">jakarta-taglibs-standard <\/span><span style=\"color:#1f2329\">\u5305&#xff0c;\u89e3\u538b\u540e\u5c06 <\/span><span style=\"color:#1f2329\">standard.jar <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">jstl.jar <\/span><span style=\"color:#1f2329\">\u62f7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2ec9\u5230 <\/span><span style=\"color:#1f2329\">WEB-INF\/lib <\/span><span style=\"color:#1f2329\">\u4e0b&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6bcf\u4e2a JSP \u2f42\u4ef6\u5934\u90e8\u9700\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">&lt;taglib&gt; <\/span><span style=\"color:#1f2329\">\u5f15\u2f0a\u5bf9\u5e94\u6807\u7b7e\u5e93&#xff08;\u6838\u2f3c\u6807\u7b7e\u5e93\u4e3a\u5fc5\u8003&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u6838\u2f3c\u6807\u7b7e\u5e93&#xff08;\u524d\u7f00 <\/span><span style=\"color:#1f2329\">c <\/span><span style=\"color:#1f2329\">&#xff0c;\u5fc5\u8003\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2<\/span><span style=\"color:#1f2329\">\u5f15\u2f0a\u8bed\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;c&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/core&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u8868\u8fbe\u5f0f\u63a7\u5236\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:out&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8f93\u51fa\u6570\u636e&#xff08;\u66ff\u6362 <\/span><span style=\"color:#1f2329\">&lt;%&#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">%&gt; <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u2f40\u6301\u9ed8\u8ba4\u503c <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:out value&#061;&#034;<\/span><span style=\"color:#1f2329\">\u6570\u636e<\/span><span style=\"color:#1f2329\">&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">default&#061;&#034;<\/span><span style=\"color:#1f2329\">\u9ed8\u8ba4\u503c<\/span><span style=\"color:#1f2329\">&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">escapeXml&#061;&#034;true&#034;\/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">escapeXml <\/span><span style=\"color:#1f2329\">\u63a7\u5236\u662f\u5426\u8f6c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e49\u7279\u6b8a\u5b57\u7b26&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:set&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u53d8\u91cf\u5230\u6307\u5b9a\u4f5c\u2f64\u57df\u6216 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JavaBean \u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2460 \u5b58\u53d8\u91cf&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;c:set <\/span><\/p>\n<p><span style=\"color:#1f2329\">var&#061;&#034;name&#034; value&#061;&#034;<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">scope&#061;&#034;page&#034;\/&gt; <\/span><span style=\"color:#1f2329\">&#xff1b;\u2461 \u5b58 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JavaBean&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;c:set <\/span><\/p>\n<p><span style=\"color:#1f2329\">target&#061;&#034;beanId&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">property&#061;&#034;<\/span><span style=\"color:#1f2329\">\u5c5e\u6027\u540d<\/span><span style=\"color:#1f2329\">&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#061;&#034;<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">&#034;\/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:remove&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u79fb\u9664\u6307\u5b9a\u4f5c\u2f64\u57df\u7684\u53d8\u91cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:remove var&#061;&#034;<\/span><span style=\"color:#1f2329\">\u53d8\u91cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540d<\/span><span style=\"color:#1f2329\">&#034; scope&#061;&#034;page&#034;\/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">scope <\/span><span style=\"color:#1f2329\">\u53ef\u9009&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:catch&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6355\u83b7\u2eda\u2faf\u5f02\u5e38 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:catch var&#061;&#034;ex&#034;&gt;<\/span><span style=\"color:#1f2329\">\u53ef\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u51fa\u9519\u7684\u4ee3\u7801<\/span><span style=\"color:#1f2329\">&lt;\/c:catch&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">\u5b58\u50a8\u5f02\u5e38\u4fe1\u606f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6d41\u7a0b\u63a7\u5236\u6807\u7b7e&#xff08;\u8003\u8bd5\u4ee3\u7801\u9898\u2fbc\u9891&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:if&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u5355\u6761\u4ef6\u5224\u65ad&#xff08;\u7c7b\u4f3c Java \u7684 if&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:<\/span><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">test&#061;<\/span><span style=\"color:#50a14f\">&#034;${param.age &gt; 18}&#034; <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;isAdult&#034; <\/span><span style=\"color:#2b2f36\">scope&#061;<\/span><span style=\"color:#50a14f\">&#034;request&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">\u6210\u5e74\u2f08 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/c:<\/span><span style=\"color:#a626a4\">if<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">test <\/span><span style=\"color:#1f2329\">&#xff1a;\u6761\u4ef6&#xff08;\u5fc5\u987b\u2f64 EL \u8868\u8fbe\u5f0f&#xff09;&#xff1b; <\/span><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">\u5b58\u50a8\u5224\u65ad\u7ed3\u679c&#xff08;true\/false&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:choose&gt;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">&lt;c:when&gt;<\/span><span style=\"color:#1f2329\">\u3001<\/span><span style=\"color:#1f2329\">&lt;c:otherwise&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u591a\u6761\u4ef6\u5224\u65ad&#xff08;\u7c7b\u4f3c Java \u7684 if-else if-else&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3<\/span><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u6761\u4ef6\u5224\u65ad&#xff08;\u7c7b\u4f3c <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:choose&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:when test&#061;<\/span><span style=\"color:#50a14f\">&#034;${score &gt;&#061; 90}&#034;<\/span><span style=\"color:#2b2f36\">&gt;<\/span><span style=\"color:#2b2f36\">\u4f18\u79c0<\/span><span style=\"color:#2b2f36\">&lt;\/c:when&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:when test&#061;<\/span><span style=\"color:#50a14f\">&#034;${score &gt;&#061; 60}&#034;<\/span><span style=\"color:#2b2f36\">&gt;<\/span><span style=\"color:#2b2f36\">\u53ca\u683c<\/span><span style=\"color:#2b2f36\">&lt;\/c:when&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:otherwise&gt;<\/span><span style=\"color:#2b2f36\">\u4e0d\u53ca\u683c<\/span><span style=\"color:#2b2f36\">&lt;\/c:otherwise&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/c:choose&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;c:choose&gt; <\/span><span style=\"color:#1f2329\">\u662f\u2f57\u6807\u7b7e&#xff0c; <\/span><span style=\"color:#1f2329\">&lt;c:otherwise&gt; <\/span><span style=\"color:#1f2329\">\u53ea\u80fd\u51fa\u73b0\u2f00\u6b21\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u5faa\u73af\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u5c5e\u6027\u4e0e\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:forEach&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u904d\u5386\u96c6\u5408&#xff08;List\u3001Map&#xff09;\u6216\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ec4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:forEach var&#061;&#034;item&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">items&#061;&#034;${list}&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">begin&#061;&#034;0&#034; end&#061;&#034;4&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">step&#061;&#034;1&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">varStatus&#061;&#034;status&#034;&gt;${i <\/span><\/p>\n<p><span style=\"color:#1f2329\">tem}&lt;\/c:forEach&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c5e\u6027\u8bf4\u660e&#xff1a; <\/span><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">&#xff08;\u5f53\u524d\u5143\u7d20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d8\u91cf&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">items <\/span><span style=\"color:#1f2329\">&#xff08;\u5f85\u904d\u5386\u96c6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5408&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">begin <\/span><span style=\"color:#1f2329\">&#xff08;\u8d77\u59cb\u7d22 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f15&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">end <\/span><span style=\"color:#1f2329\">&#xff08;\u7ed3\u675f\u7d22\u5f15&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">step <\/span><span style=\"color:#1f2329\">&#xff08;\u6b65\u2ed3&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">varStatus <\/span><span style=\"color:#1f2329\">&#xff08;\u72b6\u6001\u5bf9\u8c61&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u542b <\/span><span style=\"color:#1f2329\">index <\/span><span style=\"color:#1f2329\">&#xff08;\u7d22\u5f15&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">count <\/span><span style=\"color:#1f2329\">&#xff08;\u8ba1\u6570&#xff09;\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:forTokens&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6309\u5206\u9694\u7b26\u622a\u53d6\u5b57\u7b26\u4e32 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:forTokens <\/span><\/p>\n<p><span style=\"color:#1f2329\">items&#061;&#034;a,b,c&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">delims&#061;&#034;,&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">var&#061;&#034;str&#034;&gt;${str} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;\/c:forTokens&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">delims <\/span><span style=\"color:#1f2329\">\u4e3a\u5206\u9694\u7b26&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">4. URL \u64cd\u4f5c\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u9014 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:import&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5305\u542b\u5916\u90e8\u8d44\u6e90&#xff08;\u2f40\u6301\u8de8 web <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u3001\u2f79\u7edc\u8d44\u6e90&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:import <\/span><\/p>\n<p><span style=\"color:#1f2329\">url&#061;&#034;<\/span><span style=\"color:#336df4\">http:\/\/localhost: <\/span><\/p>\n<p><span style=\"color:#336df4\">8080\/books.xml<\/span><span style=\"color:#1f2329\">&#034; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5<\/span><span style=\"color:#1f2329\">var&#061;&#034;bookInfo&#034;\/&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u533a\u522b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8e <\/span><span style=\"color:#1f2329\">&lt;jsp:include&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u4ec5\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5305\u542b\u672c\u5e94\u2f64\u8d44\u6e90&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:redirect&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411\u2eda\u2faf&#xff08;\u2f40\u6301\u5e26\u53c2\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:redirect <\/span><\/p>\n<p><span style=\"color:#1f2329\">url&#061;&#034;login.jsp&#034;&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:param name&#061;&#034;msg&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#061;&#034;error&#034;\/&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;\/c:redirect&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:url&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a8\u6001\u2f63\u6210 URL&#xff08;\u2f40\u6301\u5b58\u50a8\u5230 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64\u57df&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:url <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#061;&#034;user.jsp&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">var&#061;&#034;userUrl&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">scope&#061;&#034;request&#034;&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;c:param name&#061;&#034;id&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">value&#061;&#034;1&#034;\/&gt;&lt;\/c:url&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u683c\u5f0f\u5316\u6807\u7b7e\u5e93&#xff08;\u524d\u7f00 <\/span><span style=\"color:#1f2329\">fmt <\/span><span style=\"color:#1f2329\">&#xff0c;\u91cd\u70b9\u8003\u67e5\u2f47\u671f\/\u6570\u5b57\u683c\u5f0f\u5316&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f15\u2f0a\u8bed\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;fmt&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/fmt&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6807\u7b7e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">&lt;fmt:formatNumber&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u683c\u5f0f\u5316\u6570\u5b57\u3001\u8d27\u5e01\u3001\u767e\u5206\u2f50&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;fmt:formatNumber value&#061;<\/span><span style=\"color:#50a14f\">&#034;1234.56&#034; <\/span><span style=\"color:#2b2f36\">type&#061;<\/span><span style=\"color:#50a14f\">&#034;currency&#034; <\/span><span style=\"color:#2b2f36\">currencyCode&#061;<\/span><span style=\"color:#50a14f\">&#034;CNY&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">\u683c\u5f0f\u5316\u4e3a\u2f08\u2ea0\u5e01 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">&lt;fmt:formatDate&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u683c\u5f0f\u5316\u2f47\u671f\/\u65f6\u95f4&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;fmt:formatDate value&#061;<\/span><span style=\"color:#50a14f\">&#034;${new java.util.Date()}&#034; <\/span><span style=\"color:#2b2f36\">pattern&#061;<\/span><span style=\"color:#50a14f\">&#034;yyyy-MM-dd <\/span><\/p>\n<p><span style=\"color:#50a14f\">HH:mm:ss&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u683c\u5f0f\u5316\u4e3a <\/span><span style=\"color:#986801\">2024<\/span><span style=\"color:#2b2f36\">&#8211;<\/span><span style=\"color:#986801\">12<\/span><span style=\"color:#2b2f36\">&#8211;<\/span><span style=\"color:#986801\">25 14<\/span><span style=\"color:#2b2f36\">:<\/span><span style=\"color:#986801\">30<\/span><span style=\"color:#2b2f36\">:<\/span><span style=\"color:#986801\">00 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">&lt;fmt:parseNumber&gt; <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">&lt;fmt:parseDate&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u5c06\u683c\u5f0f\u5316\u5b57\u7b26\u4e32\u89e3\u6790\u4e3a\u6570\u5b57\/\u2f47\u671f\u5bf9\u8c61&#xff08;\u9700\u638c\u63e1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5\u7ed3\u6784&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1<\/span><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;XML \u6807\u7b7e\u5e93&#xff08;\u524d\u7f00 <\/span><span style=\"color:#1f2329\">x <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5f15\u2f0a\u8bed\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;x&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/xml&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4f9d\u8d56\u5305&#xff1a;\u9700\u5c06 <\/span><span style=\"color:#1f2329\">XercesImpl.jar <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">xalan.jar <\/span><span style=\"color:#1f2329\">\u62f7\u2ec9\u5230 <\/span><span style=\"color:#1f2329\">WEB-INF\/lib <\/span><span style=\"color:#1f2329\">\u4e0b&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u6807\u7b7e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;x:parse&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u89e3\u6790 XML \u6570\u636e&#xff08;\u5982\u4ece\u2f42\u4ef6\u6216\u53d8\u91cf\u8bfb\u53d6&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;x:transform&gt; <\/span><span style=\"color:#1f2329\">&#xff1a;\u4f7f\u2f64 XSLT \u6837\u5f0f\u8868\u683c\u5f0f\u5316 XML&#xff08;\u9700\u638c\u63e1\u2f70\u4f8b\u4ee3\u7801\u7ed3\u6784&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;SQL \u6807\u7b7e\u5e93&#xff08;\u524d\u7f00 <\/span><span style=\"color:#1f2329\">sql <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f15\u2f0a\u8bed\u6cd5&#xff1a; <\/span><span style=\"color:#1f2329\">&lt;%&#064; taglib prefix&#061;&#034;sql&#034; <\/span><\/p>\n<p><span style=\"color:#1f2329\">uri&#061;&#034;<\/span><span style=\"color:#336df4\">http:\/\/java.sun.com\/jsp\/jstl\/sql<\/span><span style=\"color:#1f2329\">&#034; %&gt; <\/span><span style=\"color:#1f2329\">&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u7b80\u5316 JSP \u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93&#xff08;Oracle\u3001MySQL\u3001SQL Server&#xff09;\u7684\u4ea4\u4e92&#xff08;\u9700\u4e86\u89e3\u6838\u2f3c\u2f64\u9014&#xff0c;\u638c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63e1\u6807\u7b7e\u5e93\u5f15\u2f0a\u8bed\u6cd5&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001JSP \u5904\u7406 XML \u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u53d1\u9001 XML \u5185\u5bb9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c&#xff1a;\u8bbe\u7f6e\u2eda\u2faf contentType \u4e3a <\/span><span style=\"color:#1f2329\">text\/xml <\/span><span style=\"color:#1f2329\">&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; page contentType&#061;<\/span><span style=\"color:#50a14f\">&#034;text\/xml&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;books&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;book&gt;&lt;name&gt;Padam History&lt;\/name&gt;&lt;\/book&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/books&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u89e3\u6790 XML \u6570\u636e&#xff08; <\/span><span style=\"color:#1f2329\">&lt;x:parse&gt; <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:<\/span><span style=\"color:#a626a4\">import var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;bookXml&#034; <\/span><span style=\"color:#2b2f36\">url&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/localhost:8080\/books.xml&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;x:parse xml&#061;<\/span><span style=\"color:#50a14f\">&#034;${bookXml}&#034; <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;xmlObj&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;x:out select&#061;<\/span><span style=\"color:#50a14f\">&#034;$xmlObj\/books\/book[1]\/name&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u8f93\u51fa\u7b2c\u2f00\u672c\u4e66\u7684\u540d\u79f0 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3<\/span><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u683c\u5f0f\u5316 XML&#xff08; <\/span><span style=\"color:#1f2329\">&lt;x:transform&gt; <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9700\u7ed3\u5408 XSLT \u6837\u5f0f\u8868&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:set <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;xmlData&#034;<\/span><span style=\"color:#2b2f36\">&gt;&lt;books&gt;&#8230;&lt;\/books&gt;&lt;\/c:set&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:<\/span><span style=\"color:#a626a4\">import var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;xsltStyle&#034; <\/span><span style=\"color:#2b2f36\">url&#061;<\/span><span style=\"color:#50a14f\">&#034;style.xsl&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;x:transform xml&#061;<\/span><span style=\"color:#50a14f\">&#034;${xmlData}&#034; <\/span><span style=\"color:#2b2f36\">xslt&#061;<\/span><span style=\"color:#50a14f\">&#034;${xsltStyle}&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u6309 <\/span><span style=\"color:#2b2f36\">XSLT <\/span><span style=\"color:#2b2f36\">\u683c\u5f0f\u8f93\u51fa <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u2f83\u5b9a\u4e49\u6807\u7b7e&#xff08;\u5fc5\u8003\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u6838\u2f3c\u6b65\u9aa4&#xff08;\u9700\u9ed8\u5199\u5b8c\u6574\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u521b\u5efa\u6807\u7b7e\u5904\u7406\u7c7b&#xff1a;\u7ee7\u627f <\/span><span style=\"color:#1f2329\">SimpleTagSupport <\/span><span style=\"color:#1f2329\">&#xff0c;\u91cd\u5199 <\/span><span style=\"color:#1f2329\">doTag() <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">import <\/span><span style=\"color:#2b2f36\">javax.servlet.jsp.tagext.SimpleTagSupport; <\/span><\/p>\n<p><span style=\"color:#a626a4\">import <\/span><span style=\"color:#2b2f36\">javax.servlet.jsp.JspException; <\/span><\/p>\n<p><span style=\"color:#a626a4\">import <\/span><span style=\"color:#2b2f36\">java.io.IOException; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">HelloTag <\/span><span style=\"color:#a626a4\">extends <\/span><span style=\"color:#4078f2\">SimpleTagSupport <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">String message; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f83\u5b9a\u4e49\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5c5e\u6027\u7684 <\/span><span style=\"color:#a0a1a7\">setter <\/span><span style=\"color:#a0a1a7\">\u2f45\u6cd5&#xff08;\u5fc5\u987b\u4e0e\u5c5e\u6027\u540d\u2f00\u81f4&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">setMessage<\/span><span style=\"color:#2b2f36\">(String message) { <\/span><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.message &#061; message; } <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">doTag<\/span><span style=\"color:#2b2f36\">() <\/span><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">JspException, IOException { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">getJspContext().getOut().println(message); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8f93\u51fa\u5185\u5bb9 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u521b\u5efa TLD&#xff08;\u6807\u7b7e\u5e93\u63cf\u8ff0\u2f42\u4ef6&#xff09;&#xff1a;\u653e\u5728 <\/span><span style=\"color:#1f2329\">WEB-INF <\/span><span style=\"color:#1f2329\">\u2f6c\u5f55\u4e0b&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">custom.tld <\/span><span style=\"color:#1f2329\">&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">taglib<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;&lt;<\/span><span style=\"color:#e45649\">tlib-version<\/span><span style=\"color:#2b2f36\">&gt;1.0&lt;\/&lt;\/<\/span><span style=\"color:#e45649\">tlib-version<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">jsp-version<\/span><span style=\"color:#2b2f36\">&gt;2.0&lt;\/<\/span><span style=\"color:#e45649\">jsp-version<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">short-name<\/span><span style=\"color:#2b2f36\">&gt;ex&lt;\/<\/span><span style=\"color:#e45649\">short-name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u6807\u7b7e\u524d\u7f00 <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">tag<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">name<\/span><span style=\"color:#2b2f36\">&gt;Hello&lt;\/<\/span><span style=\"color:#e45649\">name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u6807\u7b7e\u540d <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6<\/span><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">tag-class<\/span><span style=\"color:#2b2f36\">&gt;com.tutorialspoint.HelloTag&lt;\/<\/span><span style=\"color:#e45649\">tag-class<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u5904\u7406\u7c7b\u5168\u7c7b\u540d <\/span><span style=\"color:#a0a1a7\">&#8211; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">-&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">body-content<\/span><span style=\"color:#2b2f36\">&gt;scriptless&lt;\/<\/span><span style=\"color:#e45649\">body-content<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u6807\u7b7e\u4f53\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&#xff08;<\/span><span style=\"color:#a0a1a7\">empty\/scriptless<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">attribute<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u2f83\u5b9a\u4e49\u5c5e\u6027\u914d\u7f6e <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">name<\/span><span style=\"color:#2b2f36\">&gt;message&lt;\/<\/span><span style=\"color:#e45649\">name<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u5c5e\u6027\u540d <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;<\/span><span style=\"color:#e45649\">required<\/span><span style=\"color:#2b2f36\">&gt;true&lt;\/<\/span><span style=\"color:#e45649\">required<\/span><span style=\"color:#2b2f36\">&gt; <\/span><span style=\"color:#a0a1a7\">&lt;!&#8211; <\/span><span style=\"color:#a0a1a7\">\u662f\u5426\u5fc5\u586b <\/span><span style=\"color:#a0a1a7\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">attribute<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">tag<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/<\/span><span style=\"color:#e45649\">taglib<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5728 JSP \u4e2d\u4f7f\u2f64\u2f83\u5b9a\u4e49\u6807\u7b7e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;ex&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;WEB-INF\/custom.tld&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;ex:Hello message&#061;<\/span><span style=\"color:#50a14f\">&#034;Hello Custom Tag!&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u8f93\u51fa\u7ed3\u679c <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u6807\u7b7e\u4f53\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u82e5\u6807\u7b7e\u4f53\u9700\u4f20\u2f0a\u5185\u5bb9&#xff08; <\/span><span style=\"color:#1f2329\">body-content&#061;&#034;scriptless&#034; <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u4fee\u6539 <\/span><span style=\"color:#1f2329\">doTag() <\/span><span style=\"color:#1f2329\">&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#986801\">StringWriter sw <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">StringWriter<\/span><span style=\"color:#2b2f36\">(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">getJspBody().invoke(sw); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u8bfb\u53d6\u6807\u7b7e\u4f53\u5185\u5bb9 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">getJspContext().getOut().println(sw.toString()); <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u8003\u8bd5\u91cd\u70b9\u63d0\u2f70\u4e0e\u9898\u578b\u9884\u6d4b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u9009\u62e9\u9898\/\u586b\u7a7a\u9898\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">JavaBean \u7684 4 \u4e2a\u6838\u2f3c\u89c4\u8303&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">EL \u64cd\u4f5c\u7b26 <\/span><span style=\"color:#1f2329\">. <\/span><span style=\"color:#1f2329\">\u4e0e <\/span><span style=\"color:#1f2329\">[] <\/span><span style=\"color:#1f2329\">\u7684\u533a\u522b&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">JSTL \u6838\u2f3c\u6807\u7b7e\u7684\u2f64\u9014&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">&lt;c:forEach&gt; <\/span><span style=\"color:#1f2329\">\u904d\u5386\u3001 <\/span><span style=\"color:#1f2329\">&lt;c:choose&gt; <\/span><span style=\"color:#1f2329\">\u591a\u6761\u4ef6\u5224\u65ad&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">EL \u9690\u542b\u5bf9\u8c61\u7684\u5bf9\u5e94\u529f\u80fd&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">param <\/span><span style=\"color:#1f2329\">\u8bbf\u95ee\u8bf7\u6c42\u53c2\u6570&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u2f83\u5b9a\u4e49\u6807\u7b7e\u7684 TLD \u2f42\u4ef6\u914d\u7f6e&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">&lt;tag-class&gt; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&lt;attribute&gt; <\/span><span style=\"color:#1f2329\">\u6807\u7b7e&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u7b80\u7b54\u9898\u5fc5\u8003 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7b80\u8ff0 JavaBean \u7684\u5b9a\u4e49\u53ca\u6838\u2f3c\u89c4\u8303&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7b80\u8ff0 EL \u8868\u8fbe\u5f0f\u7684\u4f5c\u2f64\u4e0e\u7279\u70b9&#xff1b; <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3<\/span><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7b80\u8ff0\u2f83\u5b9a\u4e49\u6807\u7b7e\u7684\u521b\u5efa\u6d41\u7a0b&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5bf9\u2f50 <\/span><span style=\"color:#1f2329\">&lt;jsp:include&gt; <\/span><span style=\"color:#1f2329\">\u4e0e <\/span><span style=\"color:#1f2329\">&lt;c:import&gt; <\/span><span style=\"color:#1f2329\">\u7684\u533a\u522b\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u4ee3\u7801\u9898\u5fc5\u8003 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7f16\u5199 JavaBean \u7c7b&#xff0c;\u5e76\u5728 JSP \u4e2d\u4f7f\u2f64 <\/span><span style=\"color:#1f2329\">&lt;jsp:useBean&gt; <\/span><span style=\"color:#1f2329\">\/ <\/span><span style=\"color:#1f2329\">&lt;jsp:getProperty&gt; <\/span><span style=\"color:#1f2329\">\u8bbf\u95ee\u5176\u5c5e\u6027&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4f7f\u2f64 JSTL \u6807\u7b7e\u5b9e\u73b0\u5faa\u73af\u904d\u5386\u96c6\u5408\u3001\u591a\u6761\u4ef6\u5224\u65ad&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u4f7f\u2f64 EL \u8868\u8fbe\u5f0f\u83b7\u53d6\u8bf7\u6c42\u53c2\u6570\u3001\u8bf7\u6c42\u5934\u6216 JavaBean \u5c5e\u6027&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u7f16\u5199\u7b80\u5355\u7684\u2f83\u5b9a\u4e49\u6807\u7b7e&#xff08;\u542b\u5c5e\u6027&#xff09;\u5e76\u4f7f\u2f64\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u91cd\u70b9\u80cc\u8bf5\u6838\u2f3c\u8bed\u6cd5&#xff08;\u5982\u6807\u7b7e\u8bed\u6cd5\u3001EL \u8868\u8fbe\u5f0f\u683c\u5f0f\u3001\u2f83\u5b9a\u4e49\u6807\u7b7e\u6d41\u7a0b&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u719f\u7ec3\u638c\u63e1\u2f70\u4f8b\u4ee3\u7801&#xff08;\u5982 JavaBean \u2f70\u4f8b\u3001JSTL \u5faa\u73af\/\u6761\u4ef6\u5224\u65ad\u2f70\u4f8b&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u533a\u5206\u6613\u6df7\u6dc6\u77e5\u8bc6\u70b9&#xff08;\u5982 EL \u9690\u542b\u5bf9\u8c61\u3001JSTL \u6807\u7b7e\u2f64\u9014\u3001\u64cd\u4f5c\u7b26\u5dee\u5f02&#xff09;&#xff1b; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u7ed3\u5408\u5b9e\u64cd\u9898\u7ec3\u4e60&#xff08;\u5982\u7f16\u5199 JSP \u2eda\u2faf\u5b9e\u73b0\u6570\u636e\u5c55\u2f70\u3001\u683c\u5f0f\u5316\u3001\u2f83\u5b9a\u4e49\u6807\u7b7e&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch7 JDBC\u4e0eJSP\u6570\u636e\u5e93\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u6982\u5ff5\u4e0e\u67b6\u6784 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. JDBC\u5b9a\u4e49\u4e0e\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5168\u79f0&#xff1a;Java Data Base Connectivity&#xff08;Java\u6570\u636e\u5e93\u8fde\u63a5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u8d28&#xff1a;\u2f64\u4e8e\u6267\u2f8fSQL\u8bed\u53e5\u7684\u6807\u51c6Java API&#xff0c;\u7531\u63a5\u2f1d\u548c\u7c7b\u7ec4\u6210&#xff0c;\u5b9e\u73b0Java\u7a0b\u5e8f\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e93\u2f46\u5173\u8fde\u63a5&#xff08;\u540c\u2f00\u4ee3\u7801\u53ef\u9002\u914d\u4e0d\u540c\u6570\u636e\u5e93&#xff0c;\u4ec5\u9700\u4fee\u6539\u9a71\u52a8\u548cURL&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0eODBC\u7684\u5173\u7cfb&#xff1a;\u529f\u80fd\u2f00\u81f4&#xff0c;\u5747\u2f40\u6301\u6570\u636e\u5e93\u2f46\u5173\u4ee3\u7801&#xff0c;\u4f46JDBC\u662fJava\u4e13\u5c5eAPI\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u9a71\u52a8\u7684\u91cd\u8981\u6027 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9a71\u52a8\u662f\u63a5\u2f1d\u7684\u5b9e\u73b0&#xff0c;\u7531\u6570\u636e\u5e93\u2f1a\u5546\u63d0\u4f9b&#xff08;\u5982MySQL\u7684 <\/span><span style=\"color:#1f2329\">com.mysql.jdbc.Driver <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u2f46\u9a71\u52a8\u5219 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u6cd5\u5efa\u2f74\u6570\u636e\u5e93\u8fde\u63a5\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u6ee1\u2f9cJava\u7a0b\u5e8f\u4e0e\u6570\u636e\u5e93\u7684\u901a\u4fe1\u6570\u636e\u683c\u5f0f\u8981\u6c42\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. JDBC\u67b6\u6784 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e24\u5c42\u67b6\u6784&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">JDBC API&#xff1a;\u5e94\u2f64\u7a0b\u5e8f\u2192JDBC\u7ba1\u7406\u5668&#xff08;\u63d0\u4f9b\u8fde\u63a5\u2f0a\u2f1d&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">JDBC\u9a71\u52a8\u7a0b\u5e8fAPI&#xff1a;JDBC\u7ba1\u7406\u5668\u2192\u6570\u636e\u5e93\u9a71\u52a8&#xff08;\u5b9e\u73b0\u63a5\u2f1d\u901a\u4fe1&#xff09;\u3002<\/span><span style=\"color:#1f2329\">\u2f06\u3001JDBC\u6838\u2f3c\u7ec4\u4ef6&#xff08;\u63a5\u2f1d\/\u7c7b&#xff09;\u53ca\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ec4\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DriverManager <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ba1\u7406\u6570\u636e\u5e93\u9a71\u52a8\u5217\u8868&#xff0c;\u5339\u914d\u8fde <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5\u8bf7\u6c42\u4e0e\u5bf9\u5e94\u9a71\u52a8&#xff0c;\u901a\u8fc7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getConnection() <\/span><span style=\"color:#1f2329\">\u83b7\u53d6\u8fde <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Driver <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5904\u7406\u4e0e\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u901a\u4fe1&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u9700\u76f4\u63a5\u4ea4\u4e92&#xff0c;\u7531 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DriverManager\u7ba1\u7406\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Connection <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u901a\u4fe1\u4e0a\u4e0b\u2f42&#xff0c;\u6240\u6709\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e93\u64cd\u4f5c&#xff08;\u6267\u2f8fSQL\u3001\u4e8b\u52a1\u7ba1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7406&#xff09;\u5747\u901a\u8fc7\u8be5\u5bf9\u8c61\u5b8c\u6210\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Statement <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63d0\u4ea4SQL\u8bed\u53e5\u5230\u6570\u636e\u5e93&#xff0c;\u63d0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9b <\/span><span style=\"color:#1f2329\">executeQuery() <\/span><span style=\"color:#1f2329\">&#xff08;\u67e5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8be2&#xff09;\u548c <\/span><span style=\"color:#1f2329\">executeUpdate() <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u589e\u5220\u6539&#xff09;\u2f45\u6cd5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ResultSet <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u67e5\u8be2\u7ed3\u679c&#xff08;\u2f06\u7ef4\u8868\u683c&#xff09;&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">next() <\/span><span style=\"color:#1f2329\">\u904d\u5386\u2f8f&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">getXXX() <\/span><span style=\"color:#1f2329\">&#xff08;\u5982 <\/span><\/p>\n<p><span style=\"color:#1f2329\">getInt() <\/span><span style=\"color:#1f2329\">&#xff09;\u83b7\u53d6\u5217\u6570\u636e\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">SQLException <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5904\u7406\u6570\u636e\u5e93\u64cd\u4f5c\u4e2d\u7684\u6240\u6709\u5f02\u5e38 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u5982\u8fde\u63a5\u5931\u8d25\u3001SQL\u8bed\u6cd5\u9519 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bef&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001SQL\u57fa\u7840\u8bed\u6cd5&#xff08;\u5fc5\u80cc&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6570\u636e\u5e93\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521b\u5efa&#xff1a; <\/span><span style=\"color:#1f2329\">CREATE DATABASE <\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u540d<\/span><span style=\"color:#1f2329\">; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u9664&#xff1a; <\/span><span style=\"color:#1f2329\">DROP DATABASE <\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u540d<\/span><span style=\"color:#1f2329\">; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f7f\u2f64&#xff1a; <\/span><span style=\"color:#1f2329\">USE <\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u540d<\/span><span style=\"color:#1f2329\">; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u8868\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521b\u5efa&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757<\/span><span style=\"color:#a626a4\">CREATE TABLE <\/span><span style=\"color:#2b2f36\">\u8868\u540d<\/span><span style=\"color:#2b2f36\">( <\/span><\/p>\n<p><span style=\"color:#2b2f36\">\u5217\u540d \u6570\u636e\u7c7b\u578b <\/span><span style=\"color:#2b2f36\">[<\/span><span style=\"color:#2b2f36\">\u7ea6\u675f<\/span><span style=\"color:#2b2f36\">], <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&#8230; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b&#xff1a; <\/span><span style=\"color:#1f2329\">CREATE TABLE category(cid INT PRIMARY KEY AUTO_INCREMENT, <\/span><\/p>\n<p><span style=\"color:#1f2329\">cname VARCHAR(100)); <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u9664&#xff1a; <\/span><span style=\"color:#1f2329\">DROP TABLE <\/span><span style=\"color:#1f2329\">\u8868\u540d<\/span><span style=\"color:#1f2329\">; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6570\u636e\u64cd\u4f5c&#xff08;CRUD&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bed\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63d2\u2f0a <\/span><\/p>\n<p><span style=\"color:#1f2329\">INSERT INTO <\/span><span style=\"color:#1f2329\">\u8868\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">VALUES(<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">1, <\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">2, &#8230;); <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u6216\u6307\u5b9a\u5217&#xff1a; <\/span><span style=\"color:#1f2329\">INSERT <\/span><\/p>\n<p><span style=\"color:#1f2329\">INTO <\/span><span style=\"color:#1f2329\">\u8868\u540d<\/span><span style=\"color:#1f2329\">(<\/span><span style=\"color:#1f2329\">\u5217<\/span><span style=\"color:#1f2329\">1) <\/span><\/p>\n<p><span style=\"color:#1f2329\">VALUES(<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">); <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67e5\u8be2 <\/span><\/p>\n<p><span style=\"color:#1f2329\">SELECT <\/span><span style=\"color:#1f2329\">\u5217\u540d<\/span><span style=\"color:#1f2329\">1, <\/span><span style=\"color:#1f2329\">\u5217\u540d<\/span><span style=\"color:#1f2329\">2&#8230; <\/span><\/p>\n<p><span style=\"color:#1f2329\">FROM <\/span><span style=\"color:#1f2329\">\u8868\u540d <\/span><span style=\"color:#1f2329\">[WHERE <\/span><span style=\"color:#1f2329\">\u6761\u4ef6<\/span><span style=\"color:#1f2329\">]; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u67e5\u8be2\u6240\u6709\u5217\u2f64 <\/span><span style=\"color:#1f2329\">* <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u66f4\u65b0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">UPDATE <\/span><span style=\"color:#1f2329\">\u8868\u540d <\/span><span style=\"color:#1f2329\">SET <\/span><span style=\"color:#1f2329\">\u5217\u540d<\/span><span style=\"color:#1f2329\">1&#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">1, <\/span><span style=\"color:#1f2329\">\u5217\u540d<\/span><span style=\"color:#1f2329\">2&#061;<\/span><span style=\"color:#1f2329\">\u503c<\/span><span style=\"color:#1f2329\">2&#8230; <\/span><\/p>\n<p><span style=\"color:#1f2329\">[WHERE <\/span><span style=\"color:#1f2329\">\u6761\u4ef6<\/span><span style=\"color:#1f2329\">]; <\/span><span style=\"color:#1f2329\">&#xff08;\u2f46WHERE <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5219\u66f4\u65b0\u6240\u6709\u2f8f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u9664 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DELETE FROM <\/span><span style=\"color:#1f2329\">\u8868\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">[WHERE <\/span><span style=\"color:#1f2329\">\u6761\u4ef6<\/span><span style=\"color:#1f2329\">]; <\/span><span style=\"color:#1f2329\">&#xff08;\u2f46WHERE <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5219\u5220\u9664\u6240\u6709\u2f8f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001JDBC\u6838\u2f3c\u64cd\u4f5c\u6d41\u7a0b&#xff08;\u5fc5\u8003&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u4f9d\u8d56\u5bfc\u2f0a <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">import <\/span><span style=\"color:#2b2f36\">java.sql.*; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6838\u2f3c<\/span><span style=\"color:#a0a1a7\">JDBC<\/span><span style=\"color:#a0a1a7\">\u5305 <\/span><\/p>\n<p><span style=\"color:#a626a4\">import <\/span><span style=\"color:#2b2f36\">java.math.*; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f40\u6301<\/span><span style=\"color:#a0a1a7\">BigDecimal<\/span><span style=\"color:#a0a1a7\">\u7b49&#xff08;\u53ef\u9009&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u5b8c\u6574\u64cd\u4f5c\u6b65\u9aa4&#xff08;\u4ee5\u67e5\u8be2\u4e3a\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2<\/span><span style=\"color:#646a73\">\u4ee3\u7801\u5757<\/span><span style=\"color:#a0a1a7\">\/\/ 1. <\/span><span style=\"color:#a0a1a7\">\u6ce8\u518c\u9a71\u52a8&#xff08;<\/span><span style=\"color:#a0a1a7\">MySQL<\/span><span style=\"color:#a0a1a7\">\u9a71\u52a8\u7c7b\u540d\u56fa\u5b9a&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Class.forName(<\/span><span style=\"color:#50a14f\">&#034;com.mysql.jdbc.Driver&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 2. <\/span><span style=\"color:#a0a1a7\">\u83b7\u5f97\u8fde\u63a5&#xff08;<\/span><span style=\"color:#a0a1a7\">URL<\/span><span style=\"color:#a0a1a7\">\u683c\u5f0f&#xff1a;<\/span><span style=\"color:#a0a1a7\">jdbc:<\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u5e93\u540d<\/span><span style=\"color:#a0a1a7\">:\/\/IP:<\/span><span style=\"color:#a0a1a7\">\u7aef\u2f1d<\/span><span style=\"color:#a0a1a7\">\/<\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u5e93\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">String url <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#50a14f\">&#034;jdbc:mysql:\/\/localhost:3306\/mydb&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#986801\">Connection conn <\/span><span style=\"color:#2b2f36\">&#061; DriverManager.getConnection(url, <\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u2f64\u2f3e\u540d<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5bc6\u7801<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 3. <\/span><span style=\"color:#a0a1a7\">\u521b\u5efa\u8bed\u53e5\u6267\u2f8f\u8005 <\/span><\/p>\n<p><span style=\"color:#986801\">Statement st <\/span><span style=\"color:#2b2f36\">&#061; conn.createStatement(); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 4. <\/span><span style=\"color:#a0a1a7\">\u6267\u2f8f<\/span><span style=\"color:#a0a1a7\">SQL<\/span><span style=\"color:#a0a1a7\">&#xff08;\u67e5\u8be2\u2f64<\/span><span style=\"color:#a0a1a7\">executeQuery<\/span><span style=\"color:#a0a1a7\">&#xff0c;\u8fd4\u56de<\/span><span style=\"color:#a0a1a7\">ResultSet<\/span><span style=\"color:#a0a1a7\">&#xff1b;\u589e\u5220\u6539\u2f64<\/span><span style=\"color:#a0a1a7\">executeUpdate<\/span><span style=\"color:#a0a1a7\">&#xff0c;\u8fd4\u56de\u5f71\u54cd\u2f8f <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\u6570&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">ResultSet rs <\/span><span style=\"color:#2b2f36\">&#061; st.executeQuery(<\/span><span style=\"color:#50a14f\">&#034;SELECT * FROM category&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 5. <\/span><span style=\"color:#a0a1a7\">\u5904\u7406\u7ed3\u679c\u96c6&#xff08;\u4ec5\u67e5\u8be2\u9700\u8981&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">while<\/span><span style=\"color:#2b2f36\">(rs.next()){ <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u904d\u5386\u2f8f&#xff0c;\u2fb8\u6b21\u8c03\u2f64\u6307\u5411\u7b2c\u2f00\u2f8f <\/span><\/p>\n<p><span style=\"color:#986801\">int cid <\/span><span style=\"color:#2b2f36\">&#061; rs.getInt(<\/span><span style=\"color:#50a14f\">&#034;cid&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6309\u5217\u540d\u83b7\u53d6\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#986801\">String cname <\/span><span style=\"color:#2b2f36\">&#061; rs.getString(<\/span><span style=\"color:#50a14f\">&#034;cname&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 6. <\/span><span style=\"color:#a0a1a7\">\u91ca\u653e\u8d44\u6e90&#xff08;\u5173\u952e&#xff01;\u540e\u83b7\u53d6\u5148\u91ca\u653e&#xff1a;<\/span><span style=\"color:#a0a1a7\">ResultSet <\/span><span style=\"color:#a0a1a7\">\u2192 <\/span><span style=\"color:#a0a1a7\">Statement <\/span><span style=\"color:#a0a1a7\">\u2192 <\/span><span style=\"color:#a0a1a7\">Connection<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">rs.close(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">st.close(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">conn.close(); <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u5173\u952e\u6ce8\u610f\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">URL\u683c\u5f0f&#xff1a; <\/span><span style=\"color:#1f2329\">jdbc:<\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u7c7b\u578b<\/span><span style=\"color:#1f2329\">:\/\/<\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5668<\/span><span style=\"color:#1f2329\">IP:<\/span><span style=\"color:#1f2329\">\u7aef\u2f1d\u53f7<\/span><span style=\"color:#1f2329\">\/<\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u540d &#xff08;MySQL\u9ed8\u8ba4\u7aef\u2f1d3306&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9a71\u52a8\u7c7b\u540d&#xff1a;MySQL\u4e3a <\/span><span style=\"color:#1f2329\">com.mysql.jdbc.Driver <\/span><span style=\"color:#1f2329\">&#xff08;\u56fa\u5b9a\u5199\u6cd5&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f45\u6cd5\u533a\u522b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">executeQuery(String sql) <\/span><span style=\"color:#1f2329\">&#xff1a;\u4ec5\u2f64\u4e8e\u67e5\u8be2&#xff0c;\u8fd4\u56de <\/span><span style=\"color:#1f2329\">ResultSet <\/span><span style=\"color:#1f2329\">\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">executeUpdate(String sql) <\/span><span style=\"color:#1f2329\">&#xff1a;\u2f64\u4e8e\u589e\u5220\u6539&#xff0c;\u8fd4\u56de\u53d7\u5f71\u54cd\u7684\u2f8f\u6570&#xff08;int\u7c7b\u578b&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d44\u6e90\u91ca\u653e&#xff1a;\u5fc5\u987b\u5728 <\/span><span style=\"color:#1f2329\">finally <\/span><span style=\"color:#1f2329\">\u5757\u4e2d\u6267\u2f8f&#xff08;\u907f\u514d\u5f02\u5e38\u65f6\u672a\u91ca\u653e&#xff09;&#xff0c;\u2f2f\u5177\u7c7b\u53ef\u7b80\u5316\u8be5\u64cd\u4f5c\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001JDBC\u2f2f\u5177\u7c7b&#xff08;\u91cd\u70b9\u5e94\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u2f2f\u5177\u7c7b\u6838\u2f3c\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c01\u88c5\u91cd\u590d\u64cd\u4f5c&#xff1a;\u6ce8\u518c\u9a71\u52a8&#xff08;\u9759\u6001\u4ee3\u7801\u5757&#xff09;\u3001\u83b7\u53d6\u8fde\u63a5\u3001\u91ca\u653e\u8d44\u6e90\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u7b80\u5316\u4ee3\u7801&#xff0c;\u907f\u514d\u91cd\u590d\u7f16\u5199\u6ce8\u518c\u9a71\u52a8\u3001\u91ca\u653e\u8d44\u6e90\u7b49\u5197\u4f59\u4ee3\u7801\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6838\u2f3c\u4ee3\u7801\u5b9e\u73b0 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23<\/span><span style=\"color:#646a73\">\u4ee3\u7801\u5757<\/span><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">JdbcUtils <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u914d\u7f6e\u53c2\u6570&#xff08;\u53ef\u62bd\u53d6\u5230\u914d\u7f6e\u2f42\u4ef6&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private static <\/span><span style=\"color:#986801\">String driver <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#50a14f\">&#034;com.mysql.jdbc.Driver&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private static <\/span><span style=\"color:#986801\">String url <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#50a14f\">&#034;jdbc:mysql:\/\/localhost:3306\/mydb&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private static <\/span><span style=\"color:#986801\">String user <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#50a14f\">&#034;root&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private static <\/span><span style=\"color:#986801\">String password <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#50a14f\">&#034;root&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u9759\u6001\u4ee3\u7801\u5757&#xff1a;\u52a0\u8f7d\u9a71\u52a8&#xff08;\u7a0b\u5e8f\u542f\u52a8\u65f6\u6267\u2f8f\u2f00\u6b21&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">static <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a626a4\">try <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Class.forName(driver); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><span style=\"color:#a626a4\">catch <\/span><span style=\"color:#2b2f36\">(ClassNotFoundException e) { <\/span><\/p>\n<p><span style=\"color:#a626a4\">throw new <\/span><span style=\"color:#4078f2\">RuntimeException<\/span><span style=\"color:#2b2f36\">(e); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u83b7\u53d6\u8fde\u63a5 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public static <\/span><span style=\"color:#2b2f36\">Connection <\/span><span style=\"color:#4078f2\">getConnection<\/span><span style=\"color:#2b2f36\">() <\/span><span style=\"color:#a626a4\">throws <\/span><span style=\"color:#2b2f36\">SQLException { <\/span><\/p>\n<p><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">DriverManager.getConnection(url, user, password); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u91ca\u653e\u8d44\u6e90&#xff08;\u9002\u914d\u67e5\u8be2<\/span><span style=\"color:#a0a1a7\">\/<\/span><span style=\"color:#a0a1a7\">\u589e\u5220\u6539\u573a\u666f&#xff0c;<\/span><span style=\"color:#a0a1a7\">rs<\/span><span style=\"color:#a0a1a7\">\u53ef\u4f20<\/span><span style=\"color:#a0a1a7\">null<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public static void <\/span><span style=\"color:#4078f2\">closeResource<\/span><span style=\"color:#2b2f36\">(Connection conn, Statement st, ResultSet <\/span><\/p>\n<p><span style=\"color:#2b2f36\">rs) { <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(rs !&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a626a4\">try <\/span><span style=\"color:#2b2f36\">{ rs.close(); } <\/span><span style=\"color:#a626a4\">catch <\/span><span style=\"color:#2b2f36\">(SQLException e) {} <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(st !&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a626a4\">try <\/span><span style=\"color:#2b2f36\">{ st.close(); } <\/span><span style=\"color:#a626a4\">catch <\/span><span style=\"color:#2b2f36\">(SQLException e) {} <\/span><\/p>\n<p><span style=\"color:#a626a4\">if <\/span><span style=\"color:#2b2f36\">(conn !&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a626a4\">try <\/span><span style=\"color:#2b2f36\">{ conn.close(); } <\/span><span style=\"color:#a626a4\">catch <\/span><span style=\"color:#2b2f36\">(SQLException e) {} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u2f2f\u5177\u7c7b\u4f7f\u2f64\u2f70\u4f8b&#xff08;\u4ee5\u63d2\u2f0a\u4e3a\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Test <\/span><\/p>\n<p><span style=\"color:#a626a4\">public void <\/span><span style=\"color:#4078f2\">insertDemo<\/span><span style=\"color:#2b2f36\">() { <\/span><\/p>\n<p><span style=\"color:#986801\">Connection conn <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#986801\">Statement st <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">; <\/span><\/p>\n<p><span style=\"color:#986801\">ResultSet rs <\/span><span style=\"color:#2b2f36\">&#061; <\/span><span style=\"color:#0184bb\">null<\/span><span style=\"color:#2b2f36\">; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u589e\u5220\u6539\u2f46\u7ed3\u679c\u96c6&#xff0c;\u4f20<\/span><span style=\"color:#a0a1a7\">null <\/span><\/p>\n<p><span style=\"color:#a626a4\">try <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 1. <\/span><span style=\"color:#a0a1a7\">\u83b7\u53d6\u8fde\u63a5&#xff08;\u2f2f\u5177\u7c7b\u5c01\u88c5&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">conn &#061; JdbcUtils.getConnection(); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 2. <\/span><span style=\"color:#a0a1a7\">\u521b\u5efa\u8bed\u53e5\u6267\u2f8f\u8005 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">st &#061; conn.createStatement(); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 3. <\/span><span style=\"color:#a0a1a7\">\u6267\u2f8f<\/span><span style=\"color:#a0a1a7\">SQL<\/span><span style=\"color:#a0a1a7\">&#xff08;\u589e\u5220\u6539\u2f64<\/span><span style=\"color:#a0a1a7\">executeUpdate<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27 <\/span><\/p>\n<p><span style=\"color:#646a73\">28 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11<\/span><span style=\"color:#986801\">int affectedRows <\/span><span style=\"color:#2b2f36\">&#061; st.executeUpdate(<\/span><span style=\"color:#50a14f\">&#034;INSERT INTO category(cname) <\/span><\/p>\n<p><span style=\"color:#50a14f\">VALUES(&#039;<\/span><span style=\"color:#50a14f\">\u6d4b\u8bd5<\/span><span style=\"color:#50a14f\">&#039;)&#034;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">System.out.println(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u5f71\u54cd\u2f8f\u6570&#xff1a;<\/span><span style=\"color:#50a14f\">&#034; <\/span><span style=\"color:#2b2f36\">&#043; affectedRows); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><span style=\"color:#a626a4\">catch <\/span><span style=\"color:#2b2f36\">(SQLException e) { <\/span><\/p>\n<p><span style=\"color:#a626a4\">throw new <\/span><span style=\"color:#4078f2\">RuntimeException<\/span><span style=\"color:#2b2f36\">(e); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><span style=\"color:#a626a4\">finally <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ 4. <\/span><span style=\"color:#a0a1a7\">\u91ca\u653e\u8d44\u6e90&#xff08;\u2f2f\u5177\u7c7b\u5c01\u88c5&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">JdbcUtils.closeResource(conn, st, rs); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001JSP\u4e0eJSTL SQL\u6807\u7b7e&#xff08;\u6570\u636e\u5e93\u64cd\u4f5c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u4f9d\u8d56 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f15\u2f0aJSTL SQL\u6807\u7b7e\u5e93&#xff08;\u5fc5\u987b\u5199\u5728JSP\u2eda\u2faf\u9876\u90e8&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;sql&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/sql&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;c&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/core&#034; <\/span><span style=\"color:#2b2f36\">%&gt; &lt;!&#8211; <\/span><span style=\"color:#2b2f36\">\u914d\u5408\u904d <\/span><\/p>\n<p><span style=\"color:#2b2f36\">\u5386\u7ed3\u679c\u96c6 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6838\u2f3c\u6807\u7b7e\u4e0e\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6807\u7b7e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u5c5e\u6027 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;sql:setDataSource&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f&#xff08;\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6e90&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">&#xff08;\u6570\u636e\u6e90\u53d8\u91cf\u540d&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">driver <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">url <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">user <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">password <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;sql:query&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6267\u2f8f\u67e5\u8be2SQL&#xff0c;\u8fd4\u56de\u7ed3\u679c\u96c6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">dataSource <\/span><span style=\"color:#1f2329\">&#xff08;\u6570\u636e\u6e90&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">&#xff08;\u7ed3\u679c\u96c6\u53d8\u91cf\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;sql:update&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6267\u2f8f\u589e\u5220\u6539SQL&#xff0c;\u8fd4\u56de\u5f71\u54cd\u2f8f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">dataSource <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">var <\/span><span style=\"color:#1f2329\">&#xff08;\u5f71 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u54cd\u2f8f\u6570\u53d8\u91cf\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&lt;sql:param&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e3aSQL\u8bed\u53e5\u4e2d\u7684 <\/span><span style=\"color:#1f2329\">? <\/span><span style=\"color:#1f2329\">\u5360\u4f4d\u7b26\u4f20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53c2&#xff08;\u9632\u6ce8\u2f0a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">value <\/span><span style=\"color:#1f2329\">&#xff08;\u53c2\u6570\u503c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u2f70\u4f8b&#xff1a;JSP\u67e5\u8be2\u6570\u636e\u5e93&#xff08;Employees\u8868&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2<\/span><span style=\"color:#2b2f36\">&lt;%&#064; page <\/span><span style=\"color:#a626a4\">import<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;java.sql.*&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;c&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/core&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;%&#064; taglib prefix&#061;<\/span><span style=\"color:#50a14f\">&#034;sql&#034; <\/span><span style=\"color:#2b2f36\">uri&#061;<\/span><span style=\"color:#50a14f\">&#034;http:\/\/java.sun.com\/jsp\/jstl\/sql&#034; <\/span><span style=\"color:#2b2f36\">%&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;html&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;body&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;!&#8211; <\/span><span style=\"color:#986801\">1. <\/span><span style=\"color:#2b2f36\">\u914d\u7f6e\u6570\u636e\u6e90 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;sql:setDataSource <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;dbSource&#034; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">driver&#061;<\/span><span style=\"color:#50a14f\">&#034;com.mysql.jdbc.Driver&#034; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">url&#061;<\/span><span style=\"color:#50a14f\">&#034;jdbc:mysql:\/\/localhost\/TEST&#034; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">user&#061;<\/span><span style=\"color:#50a14f\">&#034;root&#034; <\/span><span style=\"color:#2b2f36\">password&#061;<\/span><span style=\"color:#50a14f\">&#034;pass123&#034;<\/span><span style=\"color:#2b2f36\">\/&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;!&#8211; <\/span><span style=\"color:#986801\">2. <\/span><span style=\"color:#2b2f36\">\u6267\u2f8f\u67e5\u8be2<\/span><span style=\"color:#2b2f36\">SQL &#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;sql:query dataSource&#061;<\/span><span style=\"color:#50a14f\">&#034;${dbSource}&#034; <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;resultSet&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">SELECT * FROM Employees; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/sql:query&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;!&#8211; <\/span><span style=\"color:#986801\">3. <\/span><span style=\"color:#2b2f36\">\u904d\u5386\u7ed3\u679c\u96c6\u5e76\u5c55\u2f70 <\/span><span style=\"color:#2b2f36\">&#8211;&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;table border&#061;<\/span><span style=\"color:#50a14f\">&#034;1&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;tr&gt;&lt;&lt;th&gt;ID&lt;\/&lt;\/th&gt;&lt;&lt;th&gt;<\/span><span style=\"color:#2b2f36\">\u59d3\u540d<\/span><span style=\"color:#2b2f36\">&lt;\/&lt;\/th&gt;&lt;&lt;th&gt;<\/span><span style=\"color:#2b2f36\">\u59d3\u2f52<\/span><span style=\"color:#2b2f36\">&lt;\/&lt;\/th&gt;&lt;&lt;th&gt;<\/span><span style=\"color:#2b2f36\">\u5e74\u9f84<\/span><span style=\"color:#2b2f36\">&lt;\/&lt;\/th&gt;&lt;\/tr&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;c:forEach <\/span><span style=\"color:#a626a4\">var<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">&#034;row&#034; <\/span><span style=\"color:#2b2f36\">items&#061;<\/span><span style=\"color:#50a14f\">&#034;${resultSet.rows}&#034;<\/span><span style=\"color:#2b2f36\">&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;tr&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;td&gt;&lt;c:out value&#061;<\/span><span style=\"color:#50a14f\">&#034;${row.id}&#034;<\/span><span style=\"color:#2b2f36\">\/&gt;&lt;\/td&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;td&gt;&lt;c:out value&#061;<\/span><span style=\"color:#50a14f\">&#034;${row.first}&#034;<\/span><span style=\"color:#2b2f36\">\/&gt;&lt;\/td&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;td&gt;&lt;c:out value&#061;<\/span><span style=\"color:#50a14f\">&#034;${row.last}&#034;<\/span><span style=\"color:#2b2f36\">\/&gt;&lt;\/td&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;td&gt;&lt;c:out value&#061;<\/span><span style=\"color:#50a14f\">&#034;${row.age}&#034;<\/span><span style=\"color:#2b2f36\">\/&gt;&lt;\/td&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/tr&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/c:forEach&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/table&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/body&gt; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">&lt;\/html&gt; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u6613\u9519\u70b9\u4e0e\u8003\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u2fbc\u9891\u6613\u9519\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">URL\u683c\u5f0f\u9519\u8bef&#xff1a;\u6f0f\u5199\u7aef\u2f1d\u3001\u6570\u636e\u5e93\u540d\u62fc\u5199\u9519\u8bef&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">jdbc:mysql:\/\/<\/span><span style=\"color:#336df4\">localhost\/mydb <\/span><span style=\"color:#1f2329\">\u9ed8\u8ba4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3306\u53ef\u7701\u7565\u7aef\u2f1d&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9a71\u52a8\u7c7b\u540d\u9519\u8bef&#xff1a;MySQL\u9a71\u52a8\u7c7b\u540d\u5fc5\u987b\u662f <\/span><span style=\"color:#1f2329\">com.mysql.jdbc.Driver <\/span><span style=\"color:#1f2329\">&#xff08;\u4e0d\u53ef\u5c11 <\/span><span style=\"color:#1f2329\">jdbc. <\/span><span style=\"color:#1f2329\">&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d44\u6e90\u672a\u91ca\u653e&#xff1a;\u672a\u5728 <\/span><span style=\"color:#1f2329\">finally <\/span><span style=\"color:#1f2329\">\u5757\u4e2d\u5173\u95ed\u8d44\u6e90&#xff0c;\u5bfc\u81f4\u6570\u636e\u5e93\u8fde\u63a5\u6cc4\u9732\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Statement <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5\u6df7\u2f64&#xff1a;\u67e5\u8be2\u2f64 <\/span><span style=\"color:#1f2329\">executeUpdate <\/span><span style=\"color:#1f2329\">&#xff08;\u2f46\u8fd4\u56de\u7ed3\u679c&#xff09;\u3001\u589e\u5220\u6539\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">executeQuery <\/span><span style=\"color:#1f2329\">&#xff08;\u62a5\u9519&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ed3\u679c\u96c6\u904d\u5386&#xff1a;\u672a\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">rs.next() <\/span><span style=\"color:#1f2329\">\u76f4\u63a5\u83b7\u53d6\u6570\u636e&#xff08;\u9ed8\u8ba4\u6307\u5411\u2f8f\u2fb8&#xff0c;\u2f46\u6570\u636e&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27 <\/span><\/p>\n<p><span style=\"color:#646a73\">28 <\/span><\/p>\n<p><span style=\"color:#646a73\">29 <\/span><\/p>\n<p><span style=\"color:#646a73\">30 <\/span><\/p>\n<p><span style=\"color:#646a73\">31<\/span><span style=\"color:#1f2329\">2. \u6838\u2f3c\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JDBC\u64cd\u4f5c\u5b8c\u6574\u6d41\u7a0b&#xff08;\u4ee3\u7801\u586b\u7a7a\u9898&#xff0c;\u5982\u6ce8\u518c\u9a71\u52a8\u3001\u83b7\u53d6\u8fde\u63a5\u3001\u91ca\u653e\u8d44\u6e90&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7ec4\u4ef6\u529f\u80fd\u5339\u914d&#xff08;\u9009\u62e9\u9898&#xff0c;\u5982\u201c\u54ea\u4e2a\u7ec4\u4ef6\u2f64\u4e8e\u63d0\u4ea4SQL\u8bed\u53e5&#xff1f;\u201d\u2192Statement&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">SQL\u8bed\u6cd5&#xff08;\u7b80\u7b54\u9898\/\u4ee3\u7801\u9898&#xff0c;\u5982\u521b\u5efa\u8868\u3001\u63d2\u2f0a\u6570\u636e\u3001\u6761\u4ef6\u67e5\u8be2&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f2f\u5177\u7c7b\u7f16\u5199\u4e0e\u4f7f\u2f64&#xff08;\u7f16\u7a0b\u9898&#xff0c;\u5982\u2f64\u2f2f\u5177\u7c7b\u5b9e\u73b0\u2f64\u2f3e\u4fe1\u606f\u67e5\u8be2&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JSP&#043;JSTL SQL\u6807\u7b7e&#xff08;\u4ee3\u7801\u586b\u7a7a\u9898&#xff0c;\u5982\u5f15\u2f0a\u6807\u7b7e\u5e93\u3001\u914d\u7f6e\u6570\u636e\u6e90&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f0b\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u7262\u8bb0JDBC\u201c\u6ce8\u518c\u9a71\u52a8\u2192\u83b7\u53d6\u8fde\u63a5\u2192\u6267\u2f8fSQL\u2192\u5904\u7406\u7ed3\u679c\u2192\u91ca\u653e\u8d44\u6e90\u201d\u4e94\u6b65\u6d41\u7a0b&#xff0c;\u9ed8\u5199\u6838\u2f3c\u4ee3\u7801\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u719f\u7ec3\u638c\u63e1SQL\u589e\u5220\u6539\u67e5\u8bed\u6cd5&#xff0c;\u7ed3\u5408JDBC\u4ee3\u7801\u573a\u666f\u7ec3\u4e60\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7406\u89e3\u2f2f\u5177\u7c7b\u7684\u8bbe\u8ba1\u601d\u60f3&#xff08;\u5c01\u88c5\u3001\u590d\u2f64&#xff09;&#xff0c;\u80fd\u72ec\u2f74\u7f16\u5199\u7b80\u5316\u7248\u2f2f\u5177\u7c7b\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u7ec3\u4e60JSP\u2eda\u2faf\u4e2d\u2f64JSTL\u6807\u7b7e\u5b8c\u6210\u6570\u636e\u5e93\u64cd\u4f5c&#xff0c;\u6ce8\u610f\u6807\u7b7e\u5c5e\u6027\u548c\u7ed3\u679c\u96c6\u904d\u5386\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u91cd\u70b9\u5173\u6ce8\u6613\u9519\u70b9&#xff0c;\u907f\u514d\u8003\u8bd5\u4e2d\u56e0\u7ec6\u8282\u5931\u8bef\u4e22\u5206\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Ch8 Spring\u6846\u67b6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001Spring\u6846\u67b6\u6982\u8ff0&#xff08;\u57fa\u7840\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring\u662f\u5f00\u6e90\u7684\u4f01\u4e1a\u7ea7Java\u5e94\u2f64\u5f00\u53d1\u6846\u67b6&#xff0c;2003\u5e746\u2f49\u57fa\u4e8eApache 2.0\u8bb8\u53ef\u53d1\u5e03&#xff0c;\u6838\u2f3c\u2f6c\u6807\u662f\u7b80\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">J2EE\u5f00\u53d1&#xff0c;\u2f40\u6301POJO\u7f16\u7a0b\u6a21\u578b\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u6027&#xff1a;\u2fae\u4fb5\u2f0a\u5f0f&#xff08;\u5e94\u2f64\u5bf9\u8c61\u4e0d\u4f9d\u8d56Spring API&#xff09;\u3001IOC&#xff08;\u63a7\u5236\u53cd\u8f6c&#xff09;\u3001DI&#xff08;\u4f9d\u8d56\u6ce8\u2f0a&#xff09;\u3001AOP <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2faf\u5411\u5207\u2faf\u7f16\u7a0b&#xff09;\u3001\u5bb9\u5668\u7279\u6027&#xff08;\u7ba1\u7406\u5bf9\u8c61\u2f63\u547d\u5468\u671f&#xff09;\u3001\u7ec4\u4ef6\u5316&#xff08;XML\/\u6ce8\u89e3\u7ec4\u5408\u5bf9\u8c61&#xff09;\u3001\u2f00\u7ad9\u5f0f&#xff08;\u6574 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5408\u5404\u7c7b\u6846\u67b6\u53ca\u2f83\u2f9dMVC\/JDBC\u6a21\u5757&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f18\u52bf&#xff1a;\u2f46\u9700EJB\u5bb9\u5668&#xff0c;\u4f9d\u8d56\u8f7b\u91cf\u7ea7Servlet\u5bb9\u5668&#xff1b;\u6a21\u5757\u7ec4\u7ec7\u6e05\u6670&#xff0c;\u6309\u9700\u4f7f\u2f64&#xff1b;\u590d\u2f64\u73b0\u6709\u6280\u672f&#xff08;ORM\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f47\u5fd7\u7b49&#xff09;&#xff1b;\u7b80\u5316\u6d4b\u8bd5&#xff1b;\u7edf\u2f00\u4e8b\u52a1\u7ba1\u7406\u548c\u5f02\u5e38\u5904\u7406\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67b6\u6784\u4f53\u7cfb <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5206\u5c42\u67b6\u6784&#xff0c;\u6838\u2f3c\u6a21\u5757\u5206\u4e3a8\u7c7b&#xff1a;Core Container&#xff08;\u6838\u2f3c\u5bb9\u5668&#xff09;\u3001Data Access\/Integration&#xff08;\u6570\u636e\u8bbf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u95ee\/\u96c6\u6210&#xff09;\u3001Web&#xff08;Web\u5c42&#xff09;\u3001AOP\u3001Aspects\u3001Messaging\u3001Instrumentation\u3001Test\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u5bb9\u5668\u6a21\u5757&#xff1a;spring-core&#xff08;IOC\/DI\u6838\u2f3c&#xff09;\u3001spring-beans&#xff08;BeanFactory\u5b9e\u73b0&#xff09;\u3001spring<\/span><\/p>\n<p><span style=\"color:#1f2329\">context&#xff08;\u5bf9\u8c61\u8bbf\u95ee&#xff09;\u3001spring-expression&#xff08;SpEL\u8868\u8fbe\u5f0f&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001IOC\u4e0eDI&#xff08;\u6838\u2f3c\u2fbc\u9891\u8003\u70b9&#xff09;<\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">IOC&#xff08;\u63a7\u5236\u53cd\u8f6c&#xff09;&#xff1a;\u5bf9\u8c61\u521b\u5efa\u6743\u4ece\u5e94\u2f64\u7a0b\u5e8f\u8f6c\u79fb\u5230Spring\u5bb9\u5668&#xff0c;\u89e3\u51b3\u7ec4\u4ef6\u4f9d\u8d56\u8026\u5408\u95ee\u9898\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DI&#xff08;\u4f9d\u8d56\u6ce8\u2f0a&#xff09;&#xff1a;IOC\u7684\u5177\u4f53\u5b9e\u73b0&#xff0c;\u5bb9\u5668\u52a8\u6001\u4e3a\u5bf9\u8c61\u6ce8\u2f0a\u6240\u9700\u5916\u90e8\u8d44\u6e90&#xff08;\u5bf9\u8c61\u3001\u5e38\u91cf\u3001\u8d44\u6e90&#xff09;&#xff0c;\u6838 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f3c\u662f\u201c\u7ec4\u4ef6\u521b\u5efa\u4e0e\u4f7f\u2f64\u5206\u79bb\u201d\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u7cfb&#xff1a;IOC\u662f\u8bbe\u8ba1\u601d\u60f3&#xff0c;DI\u662f\u5177\u4f53\u5b9e\u73b0&#xff1b;\u2f06\u8005\u63cf\u8ff0\u540c\u2f00\u6982\u5ff5\u7684\u4e0d\u540c\u2ec6\u5ea6\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">IOC\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9002\u2f64\u573a\u666f <\/span><\/p>\n<p><span style=\"color:#1f2329\">BeanFactory <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u7840\u5bb9\u5668&#xff0c;\u63d0\u4f9bDI\u57fa\u672c\u2f40\u6301 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d44\u6e90\u6709\u9650\u573a\u666f&#xff08;\u79fb\u52a8\u8bbe\u5907\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Applet&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">ApplicationContext <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ee7\u627fBeanFactory&#xff0c;\u65b0\u589e\u4f01\u4e1a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ea7\u529f\u80fd&#xff08;\u5c5e\u6027\u2f42\u4ef6\u89e3\u6790\u3001\u4e8b\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d1\u5e03&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7edd\u2f24\u591a\u6570\u4f01\u4e1a\u5e94\u2f64 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2f64ApplicationContext\u5b9e\u73b0&#xff1a;FileSystemXmlApplicationContext&#xff08;\u8bfb\u53d6\u2f42\u4ef6\u7cfb\u7edfXML&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">ClassPathXmlApplicationContext&#xff08;\u8bfb\u53d6\u7c7b\u8def\u5f84XML&#xff09;\u3001WebXmlApplicationContext&#xff08;Web\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Bean\u76f8\u5173\u6838\u2f3c\u77e5\u8bc6\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u2f45\u5f0f&#xff1a;XML\u914d\u7f6e&#xff08;&lt;bean&gt;\u6807\u7b7e&#xff09;\u3001\u6ce8\u89e3\u914d\u7f6e&#xff08;&#064;Component\u3001&#064;Bean\u7b49&#xff09;\u3001Java\u914d\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;&#064;Configuration&#043;&#064;Bean&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64\u57df&#xff1a;\u9ed8\u8ba4singleton&#xff08;\u5bb9\u5668\u5185\u552f\u2f00\u5b9e\u4f8b&#xff0c;\u542f\u52a8\u65f6\u521b\u5efa&#xff09;\u3001prototype&#xff08;\u6bcf\u6b21\u8bf7\u6c42\u521b\u5efa\u65b0\u5b9e\u4f8b&#xff0c;\u83b7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53d6\u65f6\u521b\u5efa&#xff09;&#xff1b;request\/session\/global session&#xff08;Web\u5e94\u2f64\u4e13\u2f64&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f63\u547d\u5468\u671f&#xff1a;Bean\u5b9a\u4e49\u2192\u521d\u59cb\u5316\u2192\u4f7f\u2f64\u2192\u9500\u6bc1\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u521d\u59cb\u5316\u56de\u8c03&#xff1a;\u5b9e\u73b0InitializingBean\u63a5\u2f1d&#xff08;afterPropertiesSet\u2f45\u6cd5&#xff09;\u6216XML\u4e2d\u6307\u5b9ainit<\/span><\/p>\n<p><span style=\"color:#1f2329\">method\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9500\u6bc1\u56de\u8c03&#xff1a;\u5b9e\u73b0DisposableBean\u63a5\u2f1d&#xff08;destroy\u2f45\u6cd5&#xff09;\u6216XML\u4e2d\u6307\u5b9adestroy-method\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f83\u52a8\u88c5\u914d&#xff1a;\u901a\u8fc7&lt;bean&gt;\u7684autowire\u5c5e\u6027\u5b9e\u73b0&#xff0c;\u2f40\u6301byName&#xff08;\u6309\u5c5e\u6027\u540d\u5339\u914dBean&#xff09;\u3001byType&#xff08;\u6309 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5c5e\u6027\u7c7b\u578b\u5339\u914d&#xff09;\u3001constructor&#xff08;\u6309\u6784\u9020\u51fd\u6570\u53c2\u6570\u7c7b\u578b\u5339\u914d&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56\u6ce8\u2f0a\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6784\u9020\u51fd\u6570\u6ce8\u2f0a&#xff1a;\u901a\u8fc7\u6784\u9020\u51fd\u6570\u53c2\u6570\u6ce8\u2f0a\u4f9d\u8d56&#xff0c;XML\u4e2d\u2f64&lt;constructor-arg&gt;\u6807\u7b7e&#xff0c;\u2f40\u6301index&#xff08;\u53c2\u6570 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7d22\u5f15&#xff09;\u3001type&#xff08;\u53c2\u6570\u7c7b\u578b&#xff09;\u6307\u5b9a\u3002<\/span><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">Setter\u2f45\u6cd5\u6ce8\u2f0a&#xff1a;\u901a\u8fc7setter\u2f45\u6cd5\u6ce8\u2f0a\u4f9d\u8d56&#xff0c;XML\u4e2d\u2f64&lt;property&gt;\u6807\u7b7e&#xff0c;\u2f40\u6301p-namespace\u7b80\u5316\u914d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f6e\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6ce8\u89e3\u6ce8\u2f0a&#xff1a;&#064;Autowired&#xff08;\u6309\u7c7b\u578b\u5339\u914d&#xff09;\u3001&#064;Qualifier&#xff08;\u6307\u5b9aBean\u540d\u79f0&#xff0c;\u89e3\u51b3\u7c7b\u578b\u51b2\u7a81&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Resource&#xff08;\u6309\u540d\u79f0\u5339\u914d&#xff0c;JSR-250\u6807\u51c6&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001AOP&#xff08;\u6838\u2f3c\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u2faf\u5411\u5207\u2faf\u7f16\u7a0b&#xff0c;\u5c06\u2f47\u5fd7\u3001\u6743\u9650\u3001\u4e8b\u52a1\u7b49\u6a2a\u5207\u5173\u6ce8\u70b9\u4ece\u4e1a\u52a1\u903b\u8f91\u4e2d\u5206\u79bb&#xff0c;\u5b9e\u73b0\u6a21\u5757\u5316\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u672f\u8bed&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JointPoint&#xff08;\u8fde\u63a5\u70b9&#xff09;&#xff1a;\u7a0b\u5e8f\u6267\u2f8f\u7684\u7279\u5b9a\u70b9&#xff08;\u5982\u2f45\u6cd5\u8c03\u2f64\u3001\u7c7b\u521d\u59cb\u5316&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Pointcut&#xff08;\u5207\u2f0a\u70b9&#xff09;&#xff1a;\u5b9a\u4e49\u901a\u77e5\u6267\u2f8f\u7684\u8fde\u63a5\u70b9\u96c6\u5408&#xff08;\u5982\u201c\u6240\u6709service\u5305\u4e0b\u7684\u2f45\u6cd5\u201d&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Advice&#xff08;\u901a\u77e5&#xff09;&#xff1a;\u5207\u2f0a\u70b9\u6267\u2f8f\u65f6\u7684\u903b\u8f91&#xff0c;\u5305\u62ec\u524d\u7f6e&#xff08;before&#xff09;\u3001\u540e\u7f6e&#xff08;after&#xff09;\u3001\u73af\u7ed5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;around&#xff09;\u3001\u8fd4\u56de\u540e&#xff08;after-returning&#xff09;\u3001\u629b\u51fa\u5f02\u5e38\u540e&#xff08;after-throwing&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Aspect&#xff08;\u5207\u2faf&#xff09;&#xff1a;\u901a\u77e5&#043;\u5207\u2f0a\u70b9\u7684\u7ec4\u5408\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Weaving&#xff08;\u7ec7\u2f0a&#xff09;&#xff1a;\u5c06\u5207\u2faf\u878d\u2f0a\u2f6c\u6807\u5bf9\u8c61\u7684\u8fc7\u7a0b&#xff08;\u9759\u6001\u7ec7\u2f0a&#xff1a;\u7f16\u8bd1\u671f&#xff1b;\u52a8\u6001\u7ec7\u2f0a&#xff1a;\u8fd0\u2f8f\u65f6&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring AOP\u91c7\u2f64&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">XML\u914d\u7f6e\u2f45\u5f0f&#xff1a;\u901a\u8fc7&lt;aop:config&gt;\u6807\u7b7e\u58f0\u660e\u5207\u2faf\u3001\u5207\u2f0a\u70b9\u3001\u901a\u77e5&#xff0c;\u4f9d\u8d56aspectj\u76f8\u5173jar\u5305 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;aspectjrt.jar\u3001aspectjweaver.jar&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">&#064;AspectJ\u6ce8\u89e3\u2f45\u5f0f&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u542f\u2f64\u6ce8\u89e3\u2f40\u6301&#xff1a;&lt;aop:aspectj-autoproxy\/&gt;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u5207\u2faf&#xff1a;&#064;Aspect\u6ce8\u89e3\u7c7b\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u5207\u2f0a\u70b9&#xff1a;&#064;Pointcut\u6ce8\u89e3\u2f45\u6cd5&#xff08;\u8868\u8fbe\u5f0f\u5982execution(* [com.xxx](com.xxx).service.<\/span><span style=\"color:#1f2329\">. <\/span><\/p>\n<p><span style=\"color:#1f2329\">(..))&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u901a\u77e5&#xff1a;&#064;Before\u3001&#064;After\u3001&#064;Around\u7b49\u6ce8\u89e3\u2f45\u6cd5\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e0eAspectJ\u7684\u5173\u7cfb <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">AspectJ\u662f\u5b8c\u6574AOP\u6807\u51c6&#xff0c;\u2f40\u6301\u7f16\u8bd1\u671f\u7ec7\u2f0a&#xff1b;Spring AOP\u662f\u57fa\u4e8e\u4ee3\u7406\u7684\u8f7b\u91cf\u7ea7\u5b9e\u73b0&#xff0c;\u2f46\u4fb5\u2f0a\u6027\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring AOP\u501f\u2f64&#064;AspectJ\u6ce8\u89e3\u2edb\u683c&#xff0c;\u4f9d\u8d56AspectJ\u8fdb\u2f8f\u5207\u2f0a\u70b9\u89e3\u6790&#xff0c;\u4f46\u8fd0\u2f8f\u65f6\u4e0d\u4f9d\u8d56AspectJ\u7f16\u8bd1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5668\/\u7ec7\u2f0a\u5668\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001\u4e8b\u52a1\u7ba1\u7406&#xff08;\u91cd\u8981\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8b\u52a1\u6838\u2f3c\u5c5e\u6027&#xff08;ACID&#xff09;<\/span><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u539f\u2f26\u6027&#xff08;Atomicity&#xff09;&#xff1a;\u4e8b\u52a1\u64cd\u4f5c\u8981\u4e48\u5168\u6210&#xff0c;\u8981\u4e48\u5168\u56de\u6eda\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u81f4\u6027&#xff08;Consistency&#xff09;&#xff1a;\u4e8b\u52a1\u524d\u540e\u6570\u636e\u5b8c\u6574\u6027\u2f00\u81f4\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9694\u79bb\u6027&#xff08;Isolation&#xff09;&#xff1a;\u591a\u4e2a\u4e8b\u52a1\u5e76\u53d1\u6267\u2f8f\u4e92\u4e0d\u2f32\u6270\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6301\u4e45\u6027&#xff08;Durability&#xff09;&#xff1a;\u4e8b\u52a1\u63d0\u4ea4\u540e\u7ed3\u679c\u6c38\u4e45\u6709\u6548\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8b\u52a1\u7ba1\u7406\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7279\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u7a0b\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7075\u6d3b\u6027\u2fbc&#xff0c;\u4ee3\u7801\u4fb5\u2f0a\u6027\u5f3a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u76f4\u63a5\u4f7f\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">PlatformTransactionManag <\/span><\/p>\n<p><span style=\"color:#1f2329\">er API <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u4fb5\u2f0a&#xff0c;\u4e0e\u4e1a\u52a1\u903b\u8f91\u5206\u79bb <\/span><\/p>\n<p><span style=\"color:#1f2329\">XML\u914d\u7f6e&#xff08;&lt;tx:advice&gt;&#xff09;\u6216 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u89e3&#xff08;&#064;Transactional&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u914d\u7f6e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e8b\u52a1\u7ba1\u7406\u5668&#xff1a;DataSourceTransactionManager&#xff08;JDBC\/MyBatis&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">HibernateTransactionManager&#xff08;Hibernate&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u5f0f\u4e8b\u52a1\u6ce8\u89e3&#xff1a;&#064;Transactional&#xff0c;\u53ef\u6307\u5b9a\u9694\u79bb\u7ea7\u522b&#xff08;\u5982ISOLATION_READ_COMMITTED&#xff09;\u3001\u4f20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u64ad\u2f8f\u4e3a&#xff08;\u5982REQUIRED&#xff09;\u3001\u8d85\u65f6\u65f6\u95f4\u3001\u662f\u5426\u53ea\u8bfb\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001Spring MVC&#xff08;Web\u5c42\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u67b6\u6784 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">MVC\u6a21\u5f0f&#xff1a;\u6a21\u578b&#xff08;POJO\u5c01\u88c5\u6570\u636e&#xff09;\u3001\u89c6\u56fe&#xff08;\u5448\u73b0\u6a21\u578b\u6570\u636e&#xff0c;\u5982JSP&#xff09;\u3001\u63a7\u5236\u5668&#xff08;\u5904\u7406\u8bf7\u6c42&#xff0c;\u6784\u5efa <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6a21\u578b\u5e76\u8df3\u8f6c\u89c6\u56fe&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3cDispatcherServlet&#xff1a;\u63a5\u6536\u6240\u6709HTTP\u8bf7\u6c42&#xff0c;\u534f\u8c03HandlerMapping&#xff08;\u9009\u62e9\u63a7\u5236\u5668&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Controller&#xff08;\u5904\u7406\u8bf7\u6c42&#xff09;\u3001ViewResolver&#xff08;\u89e3\u6790\u89c6\u56fe&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bf7\u6c42\u5904\u7406\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u7aef\u53d1\u9001\u8bf7\u6c42\u2f84DispatcherServlet\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">DispatcherServlet\u901a\u8fc7HandlerMapping\u627e\u5230\u5bf9\u5e94Controller\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">Controller\u5904\u7406\u8bf7\u6c42&#xff0c;\u6784\u5efa\u6a21\u578b\u6570\u636e&#xff0c;\u8fd4\u56de\u89c6\u56fe\u540d\u79f0\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">ViewResolver\u6839\u636e\u89c6\u56fe\u540d\u79f0\u89e3\u6790\u5b9e\u9645\u89c6\u56fe&#xff08;\u5982JSP\u8def\u5f84&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">DispatcherServlet\u5c06\u6a21\u578b\u6570\u636e\u4f20\u2f0a\u89c6\u56fe&#xff0c;\u6e32\u67d3\u540e\u54cd\u5e94\u5ba2\u2f3e\u7aef\u3002<\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u914d\u7f6e\u4e0e\u6ce8\u89e3 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u2f42\u4ef6&#xff1a;web.xml&#xff08;\u914d\u7f6eDispatcherServlet&#xff09;\u3001[servlet-name]-servlet.xml&#xff08;\u7ec4\u4ef6\u626b\u63cf\u3001\u89c6\u56fe <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u89e3\u6790\u5668\u914d\u7f6e&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63a7\u5236\u5668\u6ce8\u89e3&#xff1a;&#064;Controller&#xff08;\u58f0\u660e\u63a7\u5236\u5668&#xff09;\u3001&#064;RequestMapping&#xff08;\u6620\u5c04URL\u4e0e\u8bf7\u6c42\u2f45\u6cd5&#xff0c;\u2f40\u6301 <\/span><\/p>\n<p><span style=\"color:#1f2329\">value\/method\u5c5e\u6027&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u89c6\u56fe\u89e3\u6790\u5668&#xff1a;InternalResourceViewResolver&#xff08;\u914d\u7f6eprefix\u524d\u7f00\u548csuffix\u540e\u7f00&#xff0c;\u5982\/WEB-INF\/jsp\/ <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u548c.jsp&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e38\u2ec5\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u5355\u5904\u7406&#xff1a;\u901a\u8fc7&#064;ModelAttribute\u7ed1\u5b9a\u8bf7\u6c42\u53c2\u6570\u5230POJO\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2eda\u2faf\u91cd\u5b9a\u5411&#xff1a;\u8fd4\u56de\u201credirect:\u2f6c\u6807URL\u201d\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9759\u6001\u8d44\u6e90\u8bbf\u95ee&#xff1a;\u901a\u8fc7&lt;mvc:resources&gt;\u6807\u7b7e\u6620\u5c04&#xff08;\u5982mapping&#061;&#034;\/pages\/**&#034;&#xff0c;location&#061;&#034;\/WEB<\/span><\/p>\n<p><span style=\"color:#1f2329\">INF\/pages\/&#034;&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u6ce8\u89e3\u6c47\u603b&#xff08;\u6613\u9519\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u89e3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9002\u2f64\u573a\u666f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Component <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eSpring\u7ec4\u4ef6&#xff08;\u901a\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u666e\u901aJava\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Controller <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u63a7\u5236\u5668\u7ec4\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Web\u5c42\u63a7\u5236\u5668\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Service <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u670d\u52a1\u5c42\u7ec4\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e1a\u52a1\u903b\u8f91\u5c42\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Repository <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u6570\u636e\u8bbf\u95ee\u5c42\u7ec4\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">DAO\u5c42\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Autowired <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6309\u7c7b\u578b\u6ce8\u2f0a\u4f9d\u8d56 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6784\u9020\u51fd\u6570\u3001setter\u2f45\u6cd5\u3001\u5b57\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Qualifier <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u5408&#064;Autowired&#xff0c;\u6307\u5b9a <\/span><\/p>\n<p><span style=\"color:#1f2329\">Bean\u540d\u79f0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540c\u2f00\u7c7b\u578b\u591a\u4e2aBean\u65f6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Resource <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6309\u540d\u79f0\u6ce8\u2f0a\u4f9d\u8d56&#xff08;JSR-250&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b57\u6bb5\u3001setter\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Configuration <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eJava\u914d\u7f6e\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u7c7b&#xff08;\u914d\u5408&#064;Bean&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Bean <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eBean&#xff08;Java\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u7c7b\u4e2d\u7684\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Transactional <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u4e8b\u52a1&#xff08;\u58f0\u660e\u5f0f\u4e8b\u52a1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u670d\u52a1\u5c42\u2f45\u6cd5\/\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Aspect <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eAOP\u5207\u2faf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5207\u2faf\u7c7b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Pointcut <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eAOP\u5207\u2f0a\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5207\u2faf\u7c7b\u4e2d\u7684\u2f45\u6cd5<\/span><span style=\"color:#1f2329\">&#064;Before\/&#064;After <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660eAOP\u524d\u7f6e\/\u540e\u7f6e\u901a\u77e5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5207\u2faf\u7c7b\u4e2d\u7684\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u6613\u9519\u70b9\u4e0e\u2fbc\u9891\u8003\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u533a\u5206Bean\u7684singleton\u4e0eprototype\u4f5c\u2f64\u57df\u7684\u521b\u5efa\u65f6\u673a\u548c\u9002\u2f64\u573a\u666f\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u533a\u5206&#064;Autowired\u3001&#064;Qualifier\u3001&#064;Resource\u7684\u6ce8\u2f0a\u89c4\u5219\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">AOP\u901a\u77e5\u7c7b\u578b\u7684\u6267\u2f8f\u987a\u5e8f&#xff08;\u73af\u7ed5\u901a\u77e5\u5305\u88f9\u524d\u7f6e\/\u540e\u7f6e\u901a\u77e5&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u58f0\u660e\u5f0f\u4e8b\u52a1\u7684\u4f20\u64ad\u2f8f\u4e3a&#xff08;\u5982REQUIRED&#xff1a;\u5f53\u524d\u2f46\u4e8b\u52a1\u5219\u521b\u5efa&#xff0c;\u6709\u5219\u52a0\u2f0a&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">Spring MVC\u7684\u8bf7\u6c42\u5904\u7406\u6d41\u7a0b\u53caDispatcherServlet\u7684\u4f5c\u2f64\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">IOC\u5bb9\u5668\u4e0eBean\u7684\u2f63\u547d\u5468\u671f\u56de\u8c03\u2f45\u6cd5\u7684\u5b9e\u73b0\u2f45\u5f0f\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8981\u4e0d\u8981\u6211\u5e2e\u4f60\u6574\u7406\u2f00\u4efdSpring\u6838\u2f3c\u8003\u70b9\u771f\u9898\u6f14\u7ec3\u53ca\u7b54\u6848\u89e3\u6790&#xff1f;\u5305\u542b\u9009\u62e9\u9898\u3001\u7b80\u7b54\u9898\u548c\u7f16\u7a0b\u9898&#xff0c;\u8d34\u5408\u671f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672b\u8003\u8bd5\u9898\u578b&#xff0c;\u5e2e\u52a9\u4f60\u5de9\u56fa\u91cd\u70b9\u77e5\u8bc6\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Docker <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u57fa\u7840&#xff08;\u6982\u5ff5&#043;\u539f\u7406&#xff0c;\u5fc5\u8003&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u4e3a\u4ec0\u4e48\u9700\u8981 Docker&#xff1f;&#xff08;\u6838\u2f3c\u75db\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u89e3\u51b3\u73af\u5883\u2f00\u81f4\u6027\u95ee\u9898&#xff1a;\u907f\u514d\u201c\u5f00\u53d1\u73af\u5883\u80fd\u8dd1&#xff0c;\u2f63\u4ea7\u73af\u5883\u8dd1\u4e0d\u4e86\u201d&#xff08;JDK\u7248\u672c\u3001\u4f9d\u8d56\u3001\u914d\u7f6e\u4e0d\u2f00\u81f4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f18\u52bf&#xff1a;\u8f7b\u91cf&#xff08;\u2f50\u865a\u62df\u673a\u8d44\u6e90\u5360\u2f64\u4f4e\u3001\u542f\u52a8\u5feb&#xff09;\u3001\u90e8\u7f72\u7b80\u5355&#xff08;\u2f46\u9700\u2f3f\u52a8\u5b89\u88c5\u4f9d\u8d56&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f6c\u6807&#xff1a; <\/span><span style=\"color:#1f2329\">Build once, Run anywhere <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u8bde\u2f63\u4e0e\u53d1\u5c55&#xff08;\u4e86\u89e3\u5173\u952e\u8282\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2013\u5e74&#xff1a;\u5f00\u6e90\u53d1\u5e03&#xff08;\u57fa\u4e8eLinux\u5185\u6838\u5bb9\u5668\u6280\u672f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2014\u5e74&#xff1a;1.0\u6b63\u5f0f\u7248&#xff0c;\u6380\u8d77\u5bb9\u5668\u5316\u70ed\u6f6e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2017\u5e74&#xff1a;Docker Desktop\u53d1\u5e03&#xff08;\u2f40\u6301Windows\/Mac&#xff0c;\u2f46\u9700\u2f3f\u52a8\u914d\u7f6eLinux\u5185\u6838&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4f4d&#xff1a;\u4e91\u539f\u2f63\u5f00\u53d1\u57fa\u7840\u2f2f\u5177&#xff0c;\u4e0eJava\u3001Spring\u2f63\u6001\u6df1\u5ea6\u96c6\u6210 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u2f2f\u4f5c\u539f\u7406&#xff08;\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u4e8eLinux\u5185\u6838\u4e24\u2f24\u6838\u2f3c\u6280\u672f\u5b9e\u73b0\u8f7b\u91cf\u7ea7\u9694\u79bb&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Namespace&#xff08;\u547d\u540d\u7a7a\u95f4&#xff09;&#xff1a;\u7ed9\u5bb9\u5668\u63d0\u4f9b\u72ec\u2f74\u201c\u73af\u5883\u89c6\u2ec6\u201d&#xff08;PID\u3001\u2f79\u7edc\u3001\u2f42\u4ef6\u7cfb\u7edf&#xff09;&#xff0c;\u8ba9\u5bb9\u5668\u8bef\u4ee5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e3a\u662f\u72ec\u2f74\u4e3b\u673a <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Cgroups&#xff08;\u63a7\u5236\u7ec4&#xff09;&#xff1a;\u9650\u5236\u5bb9\u5668\u8d44\u6e90\u4f7f\u2f64&#xff08;CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8IO&#xff09;&#xff0c;\u907f\u514d\u8d44\u6e90\u62a2\u5360 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u901a\u4fd7\u7c7b\u2f50&#xff1a;\u5bb9\u5668&#061;\u201c\u96c6\u88c5\u7bb1\u201d&#xff08;\u88c5\u5e94\u2f64&#043;\u4f9d\u8d56&#xff09;&#xff0c;\u5bbf\u4e3b\u673a&#061;\u201c\u8239\u201d&#xff0c;\u5171\u4eab\u57fa\u7840\u8d44\u6e90&#xff0c;\u2f50\u865a\u62df\u673a&#xff08;\u5355\u72ec <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f00\u8239&#xff09;\u66f4\u2fbc\u6548<\/span><span style=\"color:#1f2329\">4. \u56db\u2f24\u6838\u2f3c\u6982\u5ff5&#xff08;\u8fa8\u6790\u9898\u2fbc\u9891&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6982\u5ff5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9a\u4e49\/\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7c7b\u2f50 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u955c\u50cf&#xff08;Image&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64&#043;\u4f9d\u8d56&#xff08;JDK\u3001\u5e93\u3001\u914d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f6e&#xff09;\u7684\u201c\u5b89\u88c5\u5305\u201d&#xff0c;\u53ea\u8bfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">Windows\u5b89\u88c5\u5149\u76d8\u3001APP\u5b89 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u88c5\u5305 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668&#xff08;Container&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u955c\u50cf\u8fd0\u2f8f\u540e\u7684\u5b9e\u4f8b&#xff0c;\u53ef\u542f\u505c\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6682\u505c\u3001\u5220\u9664 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u3001\u8fd0\u2f8f\u4e2d\u7684APP <\/span><\/p>\n<p><span style=\"color:#1f2329\">Dockerfile <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6784\u5efa\u955c\u50cf\u7684\u201c\u914d\u2f45\u2f42\u4ef6\u201d&#xff0c;\u660e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u6307\u4ee4\u96c6\u5408 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u83dc\u8c31&#xff08;\u53ef\u91cd\u590d\u6267\u2f8f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ed3\u5e93&#xff08;Registry&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u955c\u50cf\u7684\u4e91\u5e73\u53f0&#xff08;\u516c\u5f00\/\u79c1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6709&#xff09;&#xff0c;\u2f64\u4e8e\u5206\u4eab\u4e0b\u8f7d <\/span><\/p>\n<p><span style=\"color:#1f2329\">App Store\u3001Docker Hub <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u5b89\u88c5\u4e0e\u57fa\u7840\u547d\u4ee4&#xff08;\u5b9e\u64cd\u9898\u6838\u2f3c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. Linux\u5b89\u88c5&#xff08;Ubuntu\/Debian\u2f70\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u5b89\u88c5<\/span><span style=\"color:#a0a1a7\">Docker <\/span><\/p>\n<p><span style=\"color:#2b2f36\">curl -fsSL https:\/\/get.docker.com | bash -s &#8212; &#8211;dry-run <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u514d<\/span><span style=\"color:#a0a1a7\">root<\/span><span style=\"color:#a0a1a7\">\u64cd\u4f5c&#xff08;\u5173\u952e&#xff0c;\u907f\u514d\u6743\u9650\u95ee\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">sudo usermod -aG docker <\/span><span style=\"color:#986801\">$USER <\/span><\/p>\n<p><span style=\"color:#2b2f36\">newgrp docker <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u9a8c\u8bc1\u5b89\u88c5 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker &#8211;version <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker info <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u955c\u50cf\u64cd\u4f5c\u547d\u4ee4&#xff08;\u2fbc\u9891&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u547d\u4ee4\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f\u4e8b\u9879 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u62c9\u53d6\u955c\u50cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker pull openjdk:8- <\/span><\/p>\n<p><span style=\"color:#1f2329\">jdk-alpine <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u683c\u5f0f&#xff1a;\u955c\u50cf\u540d:\u7248\u672c&#xff08;\u9ed8\u8ba4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">latest&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67e5\u770b\u672c\u5730\u955c\u50cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker images <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u663e\u2f70\u4ed3\u5e93\u540d\u3001\u7248\u672c\u3001\u955c\u50cfID\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f24\u2f29 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5220\u9664\u672c\u5730\u955c\u50cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker rmi <\/span><span style=\"color:#1f2329\">\u955c\u50cf<\/span><span style=\"color:#1f2329\">ID\/<\/span><span style=\"color:#1f2329\">\u955c\u50cf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540d<\/span><span style=\"color:#1f2329\">:<\/span><span style=\"color:#1f2329\">\u7248\u672c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9700\u5148\u5220\u9664\u4f9d\u8d56\u8be5\u955c\u50cf\u7684\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8<\/span><span style=\"color:#1f2329\">3. \u5bb9\u5668\u64cd\u4f5c\u547d\u4ee4&#xff08;\u5fc5\u8003\u5b9e\u64cd&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># 1. <\/span><span style=\"color:#a0a1a7\">\u8fd0\u2f8f\u5bb9\u5668&#xff08;\u6700\u6838\u2f3c&#xff0c;\u53c2\u6570\u5fc5\u987b\u8bb0&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker run -d -p <\/span><span style=\"color:#2b2f36\">\u4e3b\u673a\u7aef\u2f1d<\/span><span style=\"color:#2b2f36\">:<\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u7aef\u2f1d <\/span><span style=\"color:#2b2f36\">&#8211;name <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d \u955c\u50cf\u540d<\/span><span style=\"color:#2b2f36\">:<\/span><span style=\"color:#2b2f36\">\u7248\u672c <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u53c2\u6570\u89e3\u91ca&#xff1a; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># -d<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u540e\u53f0\u8fd0\u2f8f&#xff08;\u4e0d\u5360\u2f64\u7ec8\u7aef&#xff09; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># -p<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u7aef\u2f1d\u6620\u5c04&#xff08;\u5916\u90e8\u901a\u8fc7\u4e3b\u673a\u7aef\u2f1d\u8bbf\u95ee\u5bb9\u5668&#xff09; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># &#8211;name<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u5bb9\u5668\u522b\u540d&#xff08;\u2f45\u4fbf\u540e\u7eed\u64cd\u4f5c&#xff09; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># 2. <\/span><span style=\"color:#a0a1a7\">\u67e5\u770b\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker ps <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u8fd0\u2f8f\u4e2d\u7684\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker ps -a <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6240\u6709\u5bb9\u5668&#xff08;\u542b\u505c\u2f4c\u7684&#xff09; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># 3. <\/span><span style=\"color:#a0a1a7\">\u542f\u505c<\/span><span style=\"color:#a0a1a7\">\/<\/span><span style=\"color:#a0a1a7\">\u5220\u9664 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker stop <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d<\/span><span style=\"color:#2b2f36\">\/ID <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u505c\u2f4c <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker start <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d<\/span><span style=\"color:#2b2f36\">\/ID <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u542f\u52a8 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker <\/span><span style=\"color:#c18401\">rm <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d<\/span><span style=\"color:#2b2f36\">\/ID <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u5220\u9664&#xff08;\u9700\u5148\u505c\u2f4c&#xff09; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># 4. <\/span><span style=\"color:#a0a1a7\">\u6392\u67e5\u9519\u8bef <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker logs <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d<\/span><span style=\"color:#2b2f36\">\/ID <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u67e5\u770b\u5bb9\u5668\u2f47\u5fd7 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># 5. <\/span><span style=\"color:#a0a1a7\">\u8fdb\u2f0a\u5bb9\u5668&#xff08;\u8c03\u8bd5\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker <\/span><span style=\"color:#c18401\">exec <\/span><span style=\"color:#2b2f36\">-it <\/span><span style=\"color:#2b2f36\">\u5bb9\u5668\u540d<\/span><span style=\"color:#2b2f36\">\/ID \/bin\/sh <\/span><span style=\"color:#a0a1a7\"># alpine<\/span><span style=\"color:#a0a1a7\">\u7cfb\u7edf\u2f64<\/span><span style=\"color:#a0a1a7\">\/bin\/sh<\/span><span style=\"color:#a0a1a7\">&#xff0c;<\/span><span style=\"color:#a0a1a7\">Ubuntu<\/span><span style=\"color:#a0a1a7\">\u2f64<\/span><span style=\"color:#a0a1a7\">\/bin\/bash <\/span><\/p>\n<p><span style=\"color:#c18401\">exit <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u9000\u51fa\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001Dockerfile&#xff08;\u7f16\u7a0b\u9898\u2fbc\u9891&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u57fa\u7840\u6307\u4ee4&#xff08;\u5fc5\u987b\u638c\u63e1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6307\u4ee4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f70\u4f8b <\/span><\/p>\n<p><span style=\"color:#1f2329\">FROM <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6307\u5b9a\u57fa\u7840\u955c\u50cf&#xff08;\u7b2c\u2f00\u2f8f\u5fc5\u987b\u662f <\/span><\/p>\n<p><span style=\"color:#1f2329\">FROM&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">FROM openjdk:8-jdk<\/span><\/p>\n<p><span style=\"color:#1f2329\">alpine <\/span><\/p>\n<p><span style=\"color:#1f2329\">COPY <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u5730\u2f42\u4ef6\/\u2f6c\u5f55\u590d\u5236\u5230\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">COPY target\/myapp.jar <\/span><\/p>\n<p><span style=\"color:#1f2329\">\/app.jar <\/span><\/p>\n<p><span style=\"color:#1f2329\">RUN <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6784\u5efa\u955c\u50cf\u65f6\u6267\u2f8f\u547d\u4ee4&#xff08;\u5b89\u88c5\u4f9d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d56\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">RUN rm -rf <\/span><\/p>\n<p><span style=\"color:#1f2329\">\/usr\/local\/tomcat\/weba <\/span><\/p>\n<p><span style=\"color:#1f2329\">pps\/ROOT <\/span><\/p>\n<p><span style=\"color:#1f2329\">EXPOSE <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u58f0\u660e\u5bb9\u5668\u66b4\u9732\u7aef\u2f1d&#xff08;\u4ec5\u8bf4\u660e&#xff0c; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2fae\u6620\u5c04&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">EXPOSE 8080 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22<\/span><span style=\"color:#1f2329\">CMD\/ENTRYPOINT <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668\u542f\u52a8\u65f6\u6267\u2f8f\u547d\u4ee4&#xff08;\u542f\u52a8\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">CMD [&#034;java&#034;, &#034;-jar&#034;, <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#034;\/app.jar&#034;] <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u533a\u522b&#xff1a;CMD\u53ef\u88ab <\/span><span style=\"color:#1f2329\">docker run <\/span><span style=\"color:#1f2329\">\u540e\u53c2\u6570\u8986\u76d6&#xff0c;ENTRYPOINT\u4e0d\u53ef\u8986\u76d6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u591a\u9636\u6bb5\u6784\u5efa&#xff08;Spring Boot\u9879\u2f6c\u5fc5\u8003&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c&#xff1a;\u5206\u79bb\u6784\u5efa\u9636\u6bb5\u548c\u8fd0\u2f8f\u9636\u6bb5&#xff0c;\u51cf\u2f29\u955c\u50cf\u4f53\u79ef <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6784\u5efa\u9636\u6bb5&#xff08;\u7f16\u8bd1\u6253\u5305&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">FROM <\/span><span style=\"color:#2b2f36\">maven:<\/span><span style=\"color:#986801\">3.9<\/span><span style=\"color:#2b2f36\">-eclipse-temurin-<\/span><span style=\"color:#986801\">17 <\/span><span style=\"color:#2b2f36\">AS build <\/span><\/p>\n<p><span style=\"color:#a626a4\">WORKDIR <\/span><span style=\"color:#2b2f36\">\/app <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">pom.xml . <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">src .\/src <\/span><\/p>\n<p><span style=\"color:#a626a4\">RUN <\/span><span style=\"color:#2b2f36\">mvn -B clean package -DskipTests <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u8fd0\u2f8f\u9636\u6bb5&#xff08;\u4ec5\u4fdd\u7559\u8fd0\u2f8f\u4f9d\u8d56&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">FROM <\/span><span style=\"color:#2b2f36\">eclipse-temurin:<\/span><span style=\"color:#986801\">17<\/span><span style=\"color:#2b2f36\">-jre-alpine <\/span><\/p>\n<p><span style=\"color:#a626a4\">WORKDIR <\/span><span style=\"color:#2b2f36\">\/app <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">&#8211;from&#061;build \/app\/target\/*.jar app.jar <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u4ece\u6784\u5efa\u9636\u6bb5\u590d\u5236<\/span><span style=\"color:#a0a1a7\">Jar<\/span><span style=\"color:#a0a1a7\">\u5305 <\/span><\/p>\n<p><span style=\"color:#a626a4\">EXPOSE <\/span><span style=\"color:#986801\">8080 <\/span><\/p>\n<p><span style=\"color:#a626a4\">ENTRYPOINT <\/span><span style=\"color:#2b2f36\">[<\/span><span style=\"color:#50a14f\">&#034;java&#034;<\/span><span style=\"color:#2b2f36\">,<\/span><span style=\"color:#50a14f\">&#034;-jar&#034;<\/span><span style=\"color:#2b2f36\">,<\/span><span style=\"color:#50a14f\">&#034;app.jar&#034;<\/span><span style=\"color:#2b2f36\">] <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6784\u5efa\u4e0e\u8fd0\u2f8f\u547d\u4ee4 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6784\u5efa\u955c\u50cf&#xff08;<\/span><span style=\"color:#a0a1a7\">-t <\/span><span style=\"color:#a0a1a7\">\u6307\u5b9a\u540d\u79f0\u548c\u7248\u672c&#xff0c;\u672b\u5c3e<\/span><span style=\"color:#a0a1a7\">.<\/span><span style=\"color:#a0a1a7\">\u4e0d\u53ef\u5c11&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker build -t spring-demo:1.0 . <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u8fd0\u2f8f\u955c\u50cf <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker run -d -p 8080:8080 &#8211;name myapp spring-demo:1.0 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6d4b\u8bd5\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#2b2f36\">curl http:\/\/localhost:8080\/hello <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001Spring Boot &#043; Docker \u96c6\u6210&#xff08;\u5e94\u2f64\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u57fa\u7840\u955c\u50cf\u9009\u62e9&#xff08;\u4f18\u5316\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b98\u2f45&#xff1a; <\/span><span style=\"color:#1f2329\">openjdk:17-jdk-slim <\/span><span style=\"color:#1f2329\">&#xff08;200MB&#043;&#xff0c;\u7a33\u5b9a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u793e\u533a&#xff1a; <\/span><span style=\"color:#1f2329\">eclipse-temurin:17-jre-alpine <\/span><span style=\"color:#1f2329\">&#xff08;\u66f4\u2f29&#xff0c;\u9002\u5408\u2f63\u4ea7&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8<\/span><span style=\"color:#1f2329\">2. \u6838\u2f3c\u8981\u6c42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u80fd\u72ec\u2f74\u7f16\u5199Spring Boot\u9879\u2f6c\u7684Dockerfile&#xff08;\u591a\u9636\u6bb5\u6784\u5efa&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u638c\u63e1\u6784\u5efa\u3001\u8fd0\u2f8f\u3001\u6d4b\u8bd5\u7684\u5b8c\u6574\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7406\u89e3\u7aef\u2f1d\u6620\u5c04\u3001\u5bb9\u5668\u547d\u540d\u7684\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001Docker Compose&#xff08;\u591a\u5bb9\u5668\u7ba1\u7406&#xff0c;\u7efc\u5408\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ba1\u7406\u591a\u5bb9\u5668\u5e94\u2f64&#xff08;\u5982Spring Boot &#043; MySQL&#xff09;&#xff0c;\u7b80\u5316\u914d\u7f6e\u548c\u542f\u52a8\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. docker-compose.yml \u2f70\u4f8b&#xff08;\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#986801\">version: <\/span><span style=\"color:#50a14f\">&#034;3.9&#034; <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u7248\u672c\u9700\u4e0e<\/span><span style=\"color:#a0a1a7\">Docker<\/span><span style=\"color:#a0a1a7\">\u517c\u5bb9 <\/span><\/p>\n<p><span style=\"color:#986801\">services: <\/span><\/p>\n<p><span style=\"color:#986801\">db: <\/span><span style=\"color:#a0a1a7\"># MySQL<\/span><span style=\"color:#a0a1a7\">\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#986801\">image: <\/span><span style=\"color:#50a14f\">mysql:8.0 <\/span><\/p>\n<p><span style=\"color:#986801\">environment: <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u73af\u5883\u53d8\u91cf&#xff08;\u6570\u636e\u5e93\u5bc6\u7801\u3001\u5e93\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">MYSQL_ROOT_PASSWORD: <\/span><span style=\"color:#50a14f\">root <\/span><\/p>\n<p><span style=\"color:#986801\">MYSQL_DATABASE: <\/span><span style=\"color:#50a14f\">demo <\/span><\/p>\n<p><span style=\"color:#986801\">volumes: <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u6301\u4e45\u5316&#xff08;\u907f\u514d\u5bb9\u5668\u5220\u9664\u6570\u636e\u4e22\u5931&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">db_data:\/var\/lib\/mysql <\/span><\/p>\n<p><span style=\"color:#986801\">app: <\/span><span style=\"color:#a0a1a7\"># Spring Boot<\/span><span style=\"color:#a0a1a7\">\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#986801\">build: <\/span><span style=\"color:#50a14f\">. <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u672c\u5730\u6784\u5efa\u955c\u50cf&#xff08;\u5f53\u524d\u2f6c\u5f55<\/span><span style=\"color:#a0a1a7\">Dockerfile<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">ports: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">&#034;8080:8080&#034; <\/span><\/p>\n<p><span style=\"color:#986801\">depends_on: <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u4f9d\u8d56<\/span><span style=\"color:#a0a1a7\">db<\/span><span style=\"color:#a0a1a7\">\u670d\u52a1&#xff0c;\u542f\u52a8\u987a\u5e8f&#xff1a;\u5148\u542f\u52a8<\/span><span style=\"color:#a0a1a7\">db<\/span><span style=\"color:#a0a1a7\">\u518d\u542f\u52a8<\/span><span style=\"color:#a0a1a7\">app <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">db <\/span><\/p>\n<p><span style=\"color:#986801\">environment: <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u5e93\u8fde\u63a5\u914d\u7f6e <\/span><\/p>\n<p><span style=\"color:#986801\">SPRING_DATASOURCE_URL: <\/span><span style=\"color:#50a14f\">jdbc:mysql:\/\/db:3306\/demo <\/span><\/p>\n<p><span style=\"color:#986801\">volumes: <\/span><\/p>\n<p><span style=\"color:#986801\">db_data: <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u5b9a\u4e49\u6570\u636e\u5377&#xff08;\u6301\u4e45\u5316<\/span><span style=\"color:#a0a1a7\">MySQL<\/span><span style=\"color:#a0a1a7\">\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u547d\u4ee4 <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker compose up -d <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u540e\u53f0\u542f\u52a8\u6240\u6709\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">docker compose logs -f app <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u67e5\u770b<\/span><span style=\"color:#a0a1a7\">app<\/span><span style=\"color:#a0a1a7\">\u670d\u52a1\u2f47\u5fd7 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u6700\u4f73\u5b9e\u8df5\u4e0e\u6280\u5de7&#xff08;\u63d0\u5347\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2<\/span><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u955c\u50cf\u4f18\u5316&#xff1a;\u591a\u9636\u6bb5\u6784\u5efa &#043; Alpine\/JRE\u955c\u50cf&#xff08;\u51cf\u2f29\u4f53\u79ef&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7248\u672c\u9501\u5b9a&#xff1a;\u57fa\u7840\u955c\u50cf\u2f64\u5177\u4f53\u7248\u672c&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">17.0.8_7-jre-alpine <\/span><span style=\"color:#1f2329\">&#xff09;&#xff0c;\u907f\u514dlatest\u7248\u672c\u517c\u5bb9\u95ee\u9898 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u654f\u611f\u4fe1\u606f&#xff1a;\u2f64 <\/span><span style=\"color:#1f2329\">env_file <\/span><span style=\"color:#1f2329\">\u5b58\u50a8&#xff0c;\u7981\u2f4c\u786c\u7f16\u7801\u5230Dockerfile\u6216compose\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5f00\u53d1\u70ed\u52a0\u8f7d&#xff1a; <\/span><span style=\"color:#1f2329\">docker run -v &#034;$PWD:\/app&#034; -p 8080:8080 &#8230; <\/span><span style=\"color:#1f2329\">&#xff08;\u6302\u8f7d\u672c\u5730\u6e90\u7801&#xff0c;\u4fee\u6539 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f46\u9700\u91cd\u65b0\u6784\u5efa&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u5bb9\u5668\u8c03\u8bd5&#xff1a; <\/span><span style=\"color:#1f2329\">docker exec -it &lt;<\/span><span style=\"color:#1f2329\">\u5bb9\u5668<\/span><span style=\"color:#1f2329\">ID&gt; sh <\/span><span style=\"color:#1f2329\">&#xff08;\u8fdb\u2f0a\u5bb9\u5668\u7ec8\u7aef\u6392\u67e5\u95ee\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u8003\u70b9\u5206\u5e03\u4e0e\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u9898\u578b\u9884\u6d4b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6982\u5ff5\u9898&#xff08;20%&#xff09;&#xff1a;\u6838\u2f3c\u6982\u5ff5\u8fa8\u6790\u3001\u2f2f\u4f5c\u539f\u7406&#xff08;Namespace\/Cgroups&#xff09;\u3001Docker\u4e0e\u865a\u62df\u673a\u533a\u522b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u547d\u4ee4\u9898&#xff08;30%&#xff09;&#xff1a;\u955c\u50cf\/\u5bb9\u5668\u64cd\u4f5c\u3001\u6784\u5efa\u8fd0\u2f8f\u547d\u4ee4\u3001\u53c2\u6570\u542b\u4e49 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f16\u7a0b\u9898&#xff08;30%&#xff09;&#xff1a;\u7f16\u5199Dockerfile&#xff08;Spring Boot\u9879\u2f6c&#xff09;\u3001\u7f16\u5199docker-compose.yml&#xff08;\u591a\u5bb9\u5668&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u9898&#xff08;20%&#xff09;&#xff1a;\u5bb9\u5668\u5316\u90e8\u7f72\u6d41\u7a0b\u3001\u95ee\u9898\u6392\u67e5&#xff08;\u2f47\u5fd7\u67e5\u770b&#xff09;\u3001\u955c\u50cf\u4f18\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u590d\u4e60\u91cd\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f18\u5148\u638c\u63e1&#xff1a;\u6838\u2f3c\u6982\u5ff5\u3001\u955c\u50cf\/\u5bb9\u5668\u547d\u4ee4\u3001Dockerfile\u57fa\u7840\u6307\u4ee4\u3001Spring Boot\u591a\u9636\u6bb5\u6784\u5efa <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u70b9\u7ec3\u4e60&#xff1a;\u72ec\u2f74\u5b8c\u6210\u201cSpring Boot\u9879\u2f6c\u5bb9\u5668\u5316\u201d\u548c\u201cMySQL&#043;Spring Boot\u591a\u5bb9\u5668\u90e8\u7f72\u201d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u610f\u7ec6\u8282&#xff1a;\u547d\u4ee4\u53c2\u6570&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">-p <\/span><span style=\"color:#1f2329\">\u6620\u5c04\u683c\u5f0f&#xff09;\u3001Dockerfile\u6307\u4ee4\u987a\u5e8f\u3001compose\u914d\u7f6e\u4e2d\u7684\u4f9d\u8d56\u548c\u6301\u4e45\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u5e38\u2f64\u8d44\u6e90&#xff08;\u5907\u67e5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Docker\u5b98\u2f45\u2f42\u6863\u3001Docker Hub&#xff08;\u955c\u50cf\u67e5\u8be2&#xff09;\u3001Spring Boot Docker\u6307\u5357\u3001Compose\u89c4\u8303 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u654f\u6377\u5f00\u53d1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u6838\u2f3c\u6982\u5ff5&#xff1a;\u654f\u6377\u5f00\u53d1\u4e0e\u4f20\u7edf\u5f00\u53d1\u6a21\u5f0f\u5bf9\u2f50 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u654f\u6377\u8f6f\u4ef6\u5f00\u53d1&#xff08;Agile Software Development&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u2f1c\u79f0\u654f\u6377\u5f00\u53d1&#xff0c;\u662f\u5e94\u5bf9\u5feb\u901f\u53d8\u5316\u9700\u6c42\u7684\u8f6f\u4ef6\u5f00\u53d1\u6a21\u5f0f&#xff0c;\u6838\u2f3c\u662f\u2f00\u5957\u4ef7\u503c\u4f53\u7cfb\u548c\u5b9e\u8df5\u539f\u5219\u3002 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u2f6c\u6807&#xff1a;\u5feb\u901f\u4ea4\u4ed8\u2fbc\u8d28\u91cf\u8f6f\u4ef6&#xff0c;\u901a\u8fc7\u9891\u7e41\u53cd\u9988\u4e0e\u8fed\u4ee3\u9002\u5e94\u9700\u6c42\u53d8\u5316&#xff0c;\u63d0\u5347\u5ba2\u2f3e\u6ee1\u610f\u5ea6\u548c\u5f00\u53d1\u6548 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7387\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u7011\u5e03\u5f0f\u5f00\u53d1&#xff08;Waterfall Development&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u4f20\u7edf\u7ebf\u6027\u5f00\u53d1\u6a21\u578b&#xff0c;\u6d41\u7a0b\u5206\u4e3a\u9700\u6c42\u5206\u6790\u3001\u8bbe\u8ba1\u3001\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u90e8\u7f72\u3001\u7ef4\u62a4\u7b49\u9636\u6bb5&#xff0c;\u9636\u6bb5\u95f4\u4e25 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u683c\u987a\u5e8f\u63a8\u8fdb\u3002<\/span><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ebf\u6027\u987a\u5e8f&#xff1a;\u524d\u2f00\u9636\u6bb5\u5b8c\u6210\u540e\u624d\u80fd\u8fdb\u2f0a\u4e0b\u2f00\u9636\u6bb5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u6863\u9a71\u52a8&#xff1a;\u5404\u9636\u6bb5\u9700\u4ea7\u51fa\u8be6\u7ec6\u2f42\u6863 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u7f3a\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7075\u6d3b\u6027\u5dee&#xff1a;\u96be\u4ee5\u878d\u2f0a\u540e\u671f\u9700\u6c42\u53d8\u66f4 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6d4b\u8bd5\u6ede\u540e&#xff1a;\u7f3a\u9677\u665a\u53d1\u73b0\u5bfc\u81f4\u4fee\u590d\u6210\u672c\u2fbc <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u2f3e\u53cd\u9988\u5ef6\u8fdf&#xff1a;\u4ec5\u9879\u2f6c\u5b8c\u6210\u540e\u53ef\u4ecb\u2f0a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u654f\u6377\u5f00\u53d1\u7684\u6838\u2f3c\u57fa\u7840 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u56db\u2f24\u4ef7\u503c\u89c2&#xff08;\u5fc5\u8003\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u4e2a\u4f53\u548c\u4e92\u52a8\u80dc\u8fc7\u6d41\u7a0b\u548c\u2f2f\u5177 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u2f2f\u4f5c\u7684\u8f6f\u4ef6\u80dc\u8fc7\u8be6\u5c3d\u7684\u2f42\u6863 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u534f\u4f5c\u80dc\u8fc7\u5408\u540c\u8c08\u5224 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u54cd\u5e94\u53d8\u5316\u80dc\u8fc7\u9075\u5faa\u8ba1\u5212 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u2f17\u2f06\u6761\u539f\u5219&#xff08;\u6838\u2f3c\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u4f18\u5148\u901a\u8fc7\u6301\u7eed\u4ea4\u4ed8\u6709\u4ef7\u503c\u8f6f\u4ef6\u4fdd\u969c\u5ba2\u2f3e\u6ee1\u610f&#xff0c;\u5feb\u901f\u54cd\u5e94\u9700\u6c42\u53d8\u5316 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u62e5\u62b1\u53d8\u5316&#xff0c;\u5373\u4f7f\u5f00\u53d1\u540e\u671f\u4e5f\u63a5\u53d7\u9700\u6c42\u53d8\u66f4\u5e76\u521b\u9020\u7ade\u4e89\u4f18\u52bf <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u9891\u7e41\u4ea4\u4ed8\u2f2f\u4f5c\u8f6f\u4ef6&#xff08;\u5468\u671f\u2f0f\u5468\u5230\u2f0f\u4e2a\u2f49&#xff0c;\u8d8a\u77ed\u8d8a\u597d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5f00\u53d1\u2f08\u5458\u4e0e\u4e1a\u52a1\u2f08\u5458\u6bcf\u2f47\u534f\u4f5c <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u5efa\u2f74\u6709\u52a8\u2f12\u7684\u56e2\u961f&#xff0c;\u63d0\u4f9b\u5fc5\u8981\u2f40\u6301\u5e76\u4fe1\u4efb\u5176\u5b8c\u6210\u4efb\u52a1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">\u2faf\u5bf9\u2faf\u6c9f\u901a\u662f\u6700\u6709\u6548\u7684\u4fe1\u606f\u4f20\u9012\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">7. <\/span><span style=\"color:#1f2329\">\u2f2f\u4f5c\u7684\u8f6f\u4ef6\u662f\u8fdb\u5ea6\u8861\u91cf\u7684\u4e3b\u8981\u6807\u51c6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">8. <\/span><span style=\"color:#1f2329\">\u4fdd\u6301\u53ef\u6301\u7eed\u5f00\u53d1\u8282\u594f&#xff0c;\u2ed3\u671f\u7a33\u5b9a\u63a8\u8fdb <\/span><\/p>\n<p><span style=\"color:#1456f0\">9. <\/span><span style=\"color:#1f2329\">\u6280\u672f\u5353\u8d8a\u4e0e\u826f\u597d\u8bbe\u8ba1\u63d0\u5347\u654f\u6377\u6027\u548c\u6548\u7387 <\/span><\/p>\n<p><span style=\"color:#1456f0\">10. <\/span><span style=\"color:#1f2329\">\u7b80\u6d01&#xff08;\u51cf\u5c11\u2f46\u2f64\u2f2f\u4f5c&#xff09;\u662f\u5173\u952e <\/span><\/p>\n<p><span style=\"color:#1456f0\">11. <\/span><span style=\"color:#1f2329\">\u2f83\u7ec4\u7ec7\u56e2\u961f\u4ea7\u51fa\u6700\u4f18\u67b6\u6784\u3001\u8bbe\u8ba1\u548c\u9700\u6c42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">12. <\/span><span style=\"color:#1f2329\">\u5b9a\u671f\u53cd\u601d\u56e2\u961f\u6548\u7387\u5e76\u8c03\u6574\u2f8f\u4e3a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001\u654f\u6377\u5f00\u53d1\u7684\u5173\u952e\u8981\u7d20 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u8fed\u4ee3\u4e0e\u589e\u91cf\u5f00\u53d1<\/span><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8fed\u4ee3&#xff1a;\u6bcf\u6b21\u5f00\u53d1\u5468\u671f&#xff08;2-4\u5468&#xff09;&#xff0c;\u7ed3\u675f\u65f6\u4ea4\u4ed8\u53ef\u2f2f\u4f5c\u8f6f\u4ef6\u7248\u672c <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u589e\u91cf&#xff1a;\u6bcf\u4e2a\u8fed\u4ee3\u4ea4\u4ed8\u4ea7\u54c1\u7684\u90e8\u5206\u529f\u80fd&#xff0c;\u7d2f\u52a0\u6784\u5efa\u5b8c\u6574\u8f6f\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u2f64\u2f3e\u6545\u4e8b&#xff08;User Story&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u63cf\u8ff0\u529f\u80fd\u9700\u6c42\u7684\u7b80\u6d01\u2f45\u5f0f&#xff0c;\u2fae\u6280\u672f\u8bed\u2f94\u8868\u8fbe <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6807\u51c6\u683c\u5f0f&#xff1a;\u4f5c\u4e3a\u67d0\u7c7b\u2f64\u2f3e&#xff0c;\u6211\u5e0c\u671b\u505a\u5230\u67d0\u4e2a\u529f\u80fd&#xff0c;\u4ee5\u4fbf\u5b9e\u73b0\u67d0\u4e2a\u2f6c\u7684 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u2f83\u7ec4\u7ec7\u56e2\u961f <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u7279\u5f81&#xff1a;\u6210\u5458\u2f83\u4e3b\u51b3\u5b9a\u2f2f\u4f5c\u2f45\u5f0f\u548c\u95ee\u9898\u89e3\u51b3\u2f45\u6848 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u4f18\u52bf&#xff1a;\u4e3b\u52a8\u6027\u5f3a\u3001\u521b\u65b0\u6027\u2fbc&#xff0c;\u5feb\u901f\u54cd\u5e94\u53d8\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u6301\u7eed\u96c6\u6210\u4e0e\u6301\u7eed\u4ea4\u4ed8&#xff08;CI\/CD&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6301\u7eed\u96c6\u6210&#xff1a;\u56e2\u961f\u9891\u7e41\u5c06\u4ee3\u7801\u96c6\u6210\u5230\u4e3b\u5206\u2f40&#xff0c;\u786e\u4fdd\u529f\u80fd\u53ef\u6d4b\u8bd5\u3001\u53ef\u4ea4\u4ed8 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6301\u7eed\u4ea4\u4ed8&#xff1a;\u901a\u8fc7\u2f83\u52a8\u5316\u2f2f\u5177&#xff0c;\u5c06\u6d4b\u8bd5\u901a\u8fc7\u7684\u529f\u80fd\u968f\u65f6\u90e8\u7f72\u5230\u2f63\u4ea7\u73af\u5883 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e94&#xff09;\u8fed\u4ee3\u56de\u987e <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u6bcf\u6b21\u8fed\u4ee3\u7ed3\u675f\u540e\u7684\u56de\u987e\u4f1a\u8bae&#xff08;Retrospective&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u2f6c\u7684&#xff1a;\u53cd\u601d\u2f2f\u4f5c\u4e2d\u7684\u95ee\u9898&#xff0c;\u8bc6\u522b\u6539\u8fdb\u70b9&#xff0c;\u63d0\u5347\u4e0b\u2f00\u8f6e\u8fed\u4ee3\u6548\u7387 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001\u654f\u6377\u5f00\u53d1\u7684\u4e3b\u8981\u6846\u67b6&#xff08;\u91cd\u70b9\u638c\u63e1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;Scrum&#xff08;\u5e94\u2f64\u6700\u2f34\u6cdb&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5b9a\u4e49&#xff1a;\u2f64\u4e8e\u590d\u6742\u4ea7\u54c1\u5f00\u53d1\u3001\u4ea4\u4ed8\u4e0e\u7ef4\u62a4\u7684\u654f\u6377\u6846\u67b6&#xff0c;\u9002\u2f64\u4e8e\u591a\u9886\u57df <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u2ec6\u2f8a&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ea7\u54c1\u8d1f\u8d23\u2f08&#xff08;Product Owner&#xff09;&#xff1a;\u8d1f\u8d23\u9700\u6c42\u4e0e\u4f18\u5148\u7ea7\u8bbe\u5b9a <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Scrum Master&#xff1a;\u4fdd\u969cScrum\u6d41\u7a0b\u6267\u2f8f&#xff0c;\u534f\u52a9\u56e2\u961f\u514b\u670d\u969c\u788d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f00\u53d1\u56e2\u961f&#xff08;Developers&#xff09;&#xff1a;\u5b9e\u73b0\u4ea7\u54c1\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u4e8b\u4ef6&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Sprint&#xff08;\u51b2\u523a&#xff09;&#xff1a;2-4\u5468\u7684\u8fed\u4ee3\u5468\u671f&#xff0c;\u805a\u7126\u5355\u2f00\u2f6c\u6807 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Sprint Planning&#xff08;\u51b2\u523a\u89c4\u5212\u4f1a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Daily Standup&#xff08;\u6bcf\u2f47\u7ad9\u4f1a&#xff09;&#xff1a;\u68c0\u89c6\u8fdb\u5ea6\u3001\u8c03\u6574\u8ba1\u5212 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Sprint Review&#xff08;\u51b2\u523a\u8bc4\u5ba1\u4f1a&#xff09;&#xff1a;\u4e0e\u5229\u76ca\u76f8\u5173\u2f08\u68c0\u89c6\u6210\u679c <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Sprint Retrospective&#xff08;\u51b2\u523a\u56de\u987e\u4f1a&#xff09;&#xff1a;\u6301\u7eed\u6539\u8fdb <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u770b\u677f&#xff08;Kanban&#xff09;<\/span><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8d77\u6e90&#xff1a;1940\u5e74\u4ee3\u4e30\u2f65\u6c7d\u2ecb\u53d1\u660e\u7684\u7cbe\u76ca\u5236\u9020\u2f2f\u827a <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u5b9a\u4f4d&#xff1a;\u53ef\u89c6\u5316\u2f2f\u4f5c\u6d41\u3001\u9650\u5236\u5728\u5236\u54c1&#xff0c;\u63d0\u5347\u6548\u7387 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u539f\u5219&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53ef\u89c6\u5316\u2f2f\u4f5c&#xff08;\u770b\u677f\u2faf\u677f&#043;\u72b6\u6001\u5361\u2f5a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9650\u5236\u5728\u5236\u54c1&#xff08;WIP&#xff09;&#xff1a;\u907f\u514d\u4efb\u52a1\u5806\u79ef <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ba1\u7406\u2f2f\u4f5c\u6d41\u7a0b&#xff08;\u660e\u786e\u5f85\u5904\u7406\u3001\u8fdb\u2f8f\u4e2d\u3001\u5b8c\u6210\u7b49\u9636\u6bb5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e13\u6ce8\u4e8e\u5b8c\u6210&#xff1a;\u5148\u6536\u5c3e\u5f53\u524d\u4efb\u52a1\u518d\u542f\u52a8\u65b0\u4efb\u52a1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u53cd\u9988\u4e0e\u6539\u8fdb&#xff1a;\u5b9a\u671f\u56de\u987e\u4f18\u5316 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u57fa\u4e8e\u62c9\u52a8\u7684\u7cfb\u7edf&#xff1a;\u6709\u80fd\u2f12\u65f6\u624d\u63a5\u6536\u65b0\u4efb\u52a1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u900f\u660e\u5316&#xff1a;\u9879\u2f6c\u8fdb\u5c55\u5bf9\u6240\u6709\u76f8\u5173\u2f45\u53ef\u2ec5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u6781\u9650\u7f16\u7a0b&#xff08;XP &#8211; Extreme Programming&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u2f6c\u6807&#xff1a;\u63d0\u5347\u8f6f\u4ef6\u8d28\u91cf\u548c\u54cd\u5e94\u53d8\u5316\u7684\u80fd\u2f12 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u5173\u952e\u7279\u5f81&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5ba2\u2f3e\u5168\u7a0b\u53c2\u4e0e&#xff1a;\u63d0\u4f9b\u5b9e\u65f6\u53cd\u9988\u548c\u4f18\u5148\u7ea7\u8bbe\u7f6e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u77ed\u8fed\u4ee3\u5468\u671f&#xff08;1-3\u5468&#xff09;&#xff1a;\u4ea4\u4ed8\u53ef\u2f64\u8f6f\u4ef6\u589e\u91cf <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6301\u7eed\u53cd\u9988&#xff1a;\u9891\u7e41\u53d1\u5e03&#043;\u5feb\u901f\u8c03\u6574 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u4e3b\u8981\u5b9e\u8df5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ed3\u5bf9\u7f16\u7a0b&#xff1a;\u4e24\u540d\u5f00\u53d1\u8005\u534f\u4f5c\u7f16\u5199\u4ee3\u7801 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1&#xff08;TDD&#xff09;&#xff1a;\u5148\u5199\u6d4b\u8bd5\u2f64\u4f8b\u518d\u7f16\u7801 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9891\u7e41\u96c6\u6210&#xff1a;\u6bcf\u2f47\u591a\u6b21\u5c06\u4ee3\u7801\u96c6\u6210\u5230\u4e3b\u2f32 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u5355\u8bbe\u8ba1&#xff1a;\u907f\u514d\u8fc7\u5ea6\u8bbe\u8ba1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u91cd\u6784&#xff1a;\u4f18\u5316\u4ee3\u7801\u7ed3\u6784&#xff08;\u4e0d\u6539\u53d8\u5916\u90e8\u2f8f\u4e3a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u654f\u6377\u5f00\u53d1\u7684\u4f18\u7f3a\u70b9\u5206\u6790&#xff08;\u6848\u4f8b\u5206\u6790\u9898\u2fbc\u9891\u8003\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u4f18\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5feb\u901f\u54cd\u5e94\u9700\u6c42\u53d8\u5316&#xff0c;\u964d\u4f4e\u53d8\u66f4\u2edb\u9669 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6301\u7eed\u4ea4\u4ed8\u65e9\u671f\u4ef7\u503c&#xff0c;\u5ba2\u2f3e\u63d0\u524d\u4f7f\u2f64\u529f\u80fd\u5e76\u53cd\u9988 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5ba2\u2f3e\u6ee1\u610f\u5ea6\u2fbc&#xff08;\u6301\u7eed\u53c2\u4e0e&#043;\u5f71\u54cd\u4ea7\u54c1\u5f62\u6001&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u56e2\u961f\u2f20\u2f53\u63d0\u5347&#xff08;\u5feb\u901f\u770b\u5230\u2f2f\u4f5c\u6210\u679c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u65e9\u671f\u53d1\u73b0\u95ee\u9898&#xff0c;\u964d\u4f4e\u6700\u7ec8\u4ea4\u4ed8\u2edb\u9669<\/span><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u7f3a\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u9700\u6c42\u4e0d\u786e\u5b9a\u6027&#xff1a;\u9891\u7e41\u53d8\u66f4\u53ef\u80fd\u5bfc\u81f4\u9879\u2f6c\u2f6c\u6807\u6a21\u7cca <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u89c4\u5212\u4e0e\u63a7\u5236\u96be\u5ea6\u2f24&#xff1a;\u5468\u671f\u548c\u4ea4\u4ed8\u65f6\u95f4\u96be\u9884\u6d4b&#xff0c;\u5f71\u54cd\u9884\u7b97 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5bf9\u56e2\u961f\u8981\u6c42\u2fbc&#xff1a;\u4f9d\u8d56\u5f3a\u534f\u4f5c\u3001\u2fbc\u2f83\u9a71\u2f12\u548c\u6c9f\u901a\u80fd\u2f12 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u9002\u2f64\u8303\u56f4\u6709\u9650&#xff1a;\u4e0d\u9002\u5408\u9700\u6c42\u7a33\u5b9a\u3001\u89c4\u5212\u5b8c\u5907\u7684\u2f24\u578b\/\u6d41\u7a0b\u56fa\u5b9a\u9879\u2f6c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u5e38\u2ec5\u8003\u70b9\u4e0e\u590d\u4e60\u63d0\u2f70 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f00&#xff09;\u540d\u8bcd\u89e3\u91ca\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u654f\u6377\u5f00\u53d1\u3001\u8fed\u4ee3\u5f00\u53d1\u3001\u589e\u91cf\u5f00\u53d1\u3001\u2f64\u2f3e\u6545\u4e8b\u3001Sprint\u3001CI\/CD\u3001\u770b\u677f\u3001\u7ed3\u5bf9\u7f16\u7a0b\u3001TDD <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b54\u9898\u8981\u70b9&#xff1a;\u5b9a\u4e49&#043;\u6838\u2f3c\u7279\u5f81\/\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f06&#xff09;\u7b80\u7b54\u9898\u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5bf9\u2f50\u654f\u6377\u5f00\u53d1\u4e0e\u7011\u5e03\u5f0f\u5f00\u53d1\u7684\u6838\u2f3c\u5dee\u5f02&#xff08;\u4ece\u6d41\u7a0b\u3001\u7075\u6d3b\u6027\u3001\u53cd\u9988\u673a\u5236\u3001\u2f42\u6863\u8981\u6c42\u7b49\u2ec6\u5ea6&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7b80\u8ff0\u654f\u6377\u5f00\u53d1\u7684\u56db\u2f24\u4ef7\u503c\u89c2\u548c\u6838\u2f3c\u539f\u5219 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u8bf4\u660eScrum\u6846\u67b6\u7684\u6838\u2f3c\u2ec6\u2f8a\u4e0e\u5173\u952e\u4e8b\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u770b\u677f\u7684\u6838\u2f3c\u539f\u5219\u4e0e\u5b9e\u8df5\u662f\u4ec0\u4e48&#xff1f; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u654f\u6377\u5f00\u53d1\u4e2d&#034;\u6301\u7eed\u96c6\u6210&#034;\u4e0e&#034;\u6301\u7eed\u4ea4\u4ed8&#034;\u7684\u533a\u522b\u4e0e\u8054\u7cfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u4e09&#xff09;\u6848\u4f8b\u5206\u6790\u9898\u7b54\u9898\u601d\u8def <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u573a\u666f\u5224\u65ad&#xff1a;\u7ed9\u5b9a\u9879\u2f6c\u80cc\u666f&#xff08;\u5982\u521b\u4e1a\u516c\u53f8\u521b\u65b0\u4ea7\u54c1\u3001\u2f24\u578b\u4f01\u4e1a\u56fa\u5b9a\u6d41\u7a0b\u9879\u2f6c&#xff09;&#xff0c;\u5224\u65ad\u9002\u5408\u7684\u5f00\u53d1\u6a21\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e76\u8bf4\u660e\u7406\u7531 <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u95ee\u9898\u5206\u6790&#xff1a;\u9488\u5bf9\u654f\u6377\u5b9e\u65bd\u4e2d\u7684\u95ee\u9898&#xff08;\u5982\u9700\u6c42\u9891\u7e41\u53d8\u66f4\u5bfc\u81f4\u8fdb\u5ea6\u5ef6\u8bef\u3001\u56e2\u961f\u534f\u4f5c\u4e0d\u7545&#xff09;&#xff0c;\u7ed3\u5408\u654f\u6377\u539f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5219\u63d0\u51fa\u89e3\u51b3\u2f45\u6848 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u6846\u67b6\u9009\u62e9&#xff1a;\u6839\u636e\u9879\u2f6c\u7279\u70b9&#xff08;\u5982\u9700\u6c42\u53d8\u5316\u9891\u7387\u3001\u56e2\u961f\u89c4\u6a21\u3001\u4ea4\u4ed8\u5468\u671f\u8981\u6c42&#xff09;&#xff0c;\u9009\u62e9\u5408\u9002\u7684\u654f\u6377\u6846\u67b6\u5e76 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u8ba1\u6838\u2f3c\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u56db&#xff09;\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u91cd\u70b9\u8bb0\u5fc6\u56db\u2f24\u4ef7\u503c\u89c2\u3001\u2f17\u2f06\u6761\u539f\u5219\u3001\u4e09\u2f24\u6846\u67b6\u7684\u6838\u2f3c\u8981\u7d20&#xff08;\u2ec6\u2f8a\u3001\u4e8b\u4ef6\u3001\u5b9e\u8df5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u7406\u89e3&#034;\u8fed\u4ee3&#034;&#034;\u589e\u91cf&#034;&#034;\u2f83\u7ec4\u7ec7&#034;&#034;\u62c9\u52a8\u5f0f&#034;\u7b49\u6838\u2f3c\u6982\u5ff5\u7684\u672c\u8d28 <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u7ed3\u5408\u5b9e\u9645\u9879\u2f6c\u573a\u666f&#xff0c;\u7ec3\u4e60\u654f\u6377\u4e0e\u4f20\u7edf\u5f00\u53d1\u6a21\u5f0f\u7684\u9009\u62e9\u4e0e\u5e94\u2f64\u5206\u6790 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u5173\u6ce8\u5404\u6846\u67b6\u7684\u9002\u2f64\u573a\u666f\u5dee\u5f02&#xff08;\u5982Scrum\u9002\u2f64\u4e8e\u590d\u6742\u4ea7\u54c1\u3001\u770b\u677f\u9002\u2f64\u4e8e\u6d41\u7a0b\u4f18\u5316\u3001XP\u9002\u2f64\u4e8e\u5feb\u901f\u53d8\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7684\u2f29\u578b\u56e2\u961f&#xff09;<\/span><span style=\"color:#1f2329\">Ex \u5b9e\u9a8c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f00\u3001\u5b9e\u9a8c\u6838\u2f3c\u4efb\u52a1\u4e0e\u529f\u80fd\u8981\u6c42&#xff08;\u5fc5\u8003\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u4efb\u52a1 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u8ba1\u5e76\u5b9e\u73b0\u5728\u7ebf\u8d2d\u7269\u2f79\u7ad9&#xff0c;\u5b8c\u6210\u6307\u5b9a\u57fa\u672c\u529f\u80fd\u3001\u6570\u636e\u5e93\u8bbe\u8ba1&#xff08;\u63a8\u8350MySQL&#xff09;\u3001\u4e0a\u7ebf\u90e8\u7f72&#xff0c;\u662f\u671f\u672b\u8003\u8bd5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u8003\u6838\u8f7d\u4f53&#xff08;\u5360\u5b9e\u9a8c\u6210\u7ee930%&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u4e24\u2f24\u6838\u2f3c\u529f\u80fd\u6a21\u5757 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u987e\u5ba2\u7aef\u529f\u80fd&#xff08;\u57fa\u7840\u5fc5\u5b9e\u73b0&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f9d\u4efd\u7ba1\u7406&#xff1a;\u6ce8\u518c\u3001\u767b\u5f55\u3001\u6ce8\u9500&#xff08;\u9700\u5b9e\u73b0\u4f1a\u8bdd\u4fdd\u6301\u3001\u6743\u9650\u9a8c\u8bc1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ea7\u54c1\u4ea4\u4e92&#xff1a;\u4ea7\u54c1\u5217\u8868\u5c55\u2f70\u3001\u4ea7\u54c1\u67e5\u8be2&#xff08;\u2f40\u6301\u5173\u952e\u8bcd\/\u5206\u7c7b\u7b5b\u9009&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d2d\u4e70\u6d41\u7a0b&#xff08;\u5b8c\u6574\u4e1a\u52a1\u94fe&#xff09;&#xff1a;\u6d4f\u89c8\/\u67e5\u8be2 \u2192 \u6dfb\u52a0\u2f84\u8d2d\u7269\u2ecb \u2192 \u4ed8\u6b3e&#xff08;\u6a21\u62df\u6216\u5bf9\u63a5\u2f40\u4ed8\u903b\u8f91&#xff09; \u2192 \u7535\u2f26\u90ae <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ef6\u53d1\u8d27\u786e\u8ba4 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba2\u5355\u7ba1\u7406&#xff1a;\u67e5\u770b\u8ba2\u5355\u72b6\u6001&#xff08;\u5f85\u4ed8\u6b3e\/\u5df2\u4ed8\u6b3e\/\u5df2\u53d1\u8d27\u7b49&#xff09;\u3001\u8ba2\u5355\u5386\u53f2\u8bb0\u5f55 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u9500\u552e\u7ba1\u7406\u7aef\u529f\u80fd&#xff08;\u7ba1\u7406\u7c7b\u6838\u2f3c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5546\u54c1\u2f6c\u5f55\u7ba1\u7406&#xff1a;\u5546\u54c1\u7684\u6dfb\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\u3001\u67e5\u8be2&#xff08;CRUD\u5b8c\u6574\u5b9e\u73b0&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba2\u5355\u7ba1\u7406&#xff1a;\u8ba2\u5355\u72b6\u6001\u66f4\u65b0\u3001\u8ba2\u5355\u4fe1\u606f\u67e5\u8be2 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9500\u552e\u7edf\u8ba1&#xff1a;\u2f63\u6210\u9500\u552e\u7edf\u8ba1\u62a5\u8868&#xff08;\u9700\u7ed3\u5408\u6570\u636e\u5e93\u805a\u5408\u67e5\u8be2&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u6280\u672f\u9009\u578b\u4e0e\u6838\u2f3c\u6280\u672f\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6570\u636e\u5e93\u8bbe\u8ba1&#xff08;MySQL\u4e3a\u4e3b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6570\u636e\u8868\u8bbe\u8ba1&#xff08;\u5fc5\u8003&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f64\u2f3e\u8868&#xff08;\u5b58\u50a8\u987e\u5ba2\/\u7ba1\u7406\u5458\u4fe1\u606f&#xff1a;\u8d26\u53f7\u3001\u5bc6\u7801\u3001\u90ae\u7bb1\u3001\u6743\u9650\u2ec6\u2f8a\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ea7\u54c1\u8868&#xff08;\u5546\u54c1\u4fe1\u606f&#xff1a;ID\u3001\u540d\u79f0\u3001\u4ef7\u683c\u3001\u5e93\u5b58\u3001\u5206\u7c7b\u3001\u63cf\u8ff0\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d2d\u7269\u2ecb\u8868&#xff08;\u5173\u8054\u2f64\u2f3eID\u3001\u4ea7\u54c1ID\u3001\u6570\u91cf\u3001\u9009\u4e2d\u72b6\u6001\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba2\u5355\u8868&#xff08;\u5173\u8054\u2f64\u2f3eID\u3001\u8ba2\u5355\u53f7\u3001\u4e0b\u5355\u65f6\u95f4\u3001\u603b\u2fa6\u989d\u3001\u8ba2\u5355\u72b6\u6001\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba2\u5355\u660e\u7ec6\u8868&#xff08;\u5173\u8054\u8ba2\u5355ID\u3001\u4ea7\u54c1ID\u3001\u8d2d\u4e70\u6570\u91cf\u3001\u5355\u4ef7\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5173\u7cfb&#xff1a;\u2f00\u5bf9\u2f00&#xff08;\u2f64\u2f3e-\u8ba2\u5355\u57fa\u7840\u4fe1\u606f&#xff09;\u3001\u2f00\u5bf9\u591a&#xff08;\u2f64\u2f3e-\u591a\u4e2a\u8ba2\u5355\u3001\u8ba2\u5355-\u591a\u4e2a\u660e\u7ec6&#xff09;\u3001\u591a\u5bf9\u591a <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;\u2f64\u2f3e-\u4ea7\u54c1\u901a\u8fc7\u8d2d\u7269\u2ecb\u5173\u8054&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u64cd\u4f5c&#xff1a;\u67e5\u8be2&#xff08;\u4ea7\u54c1\u7b5b\u9009\u3001\u8ba2\u5355\u7edf\u8ba1&#xff09;\u3001\u66f4\u65b0&#xff08;\u5e93\u5b58\u6263\u51cf\u3001\u8ba2\u5355\u72b6\u6001\u53d8\u66f4&#xff09;\u3001\u4e8b\u52a1\u5904\u7406&#xff08;\u4ed8\u6b3e\u6d41 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7a0b\u4e2d\u5e93\u5b58\u4e0e\u8ba2\u5355\u7684\u539f\u2f26\u64cd\u4f5c&#xff09;<\/span><span style=\"color:#1f2329\">2. \u524d\u540e\u7aef\u4ea4\u4e92\u4e0e\u4e1a\u52a1\u903b\u8f91 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u524d\u7aef&#xff1a;\u4ea7\u54c1\u5217\u8868\u6e32\u67d3\u3001\u8d2d\u7269\u2ecb\u4ea4\u4e92\u3001\u8ba2\u5355\u63d0\u4ea4\u8868\u5355\u3001\u767b\u5f55\u6ce8\u518c\u754c\u2faf&#xff08;\u9700\u4fdd\u8bc1\u754c\u2faf\u53ef\u2f64\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540e\u7aef&#xff1a;\u63a5\u2f1d\u8bbe\u8ba1&#xff08;\u2f64\u2f3e\u64cd\u4f5c\u63a5\u2f1d\u3001\u5546\u54c1\u7ba1\u7406\u63a5\u2f1d\u3001\u8ba2\u5355\u5904\u7406\u63a5\u2f1d&#xff09;\u3001\u4f1a\u8bdd\u7ba1\u7406&#xff08;\u767b\u5f55\u72b6\u6001\u4fdd\u6301&#xff0c;\u907f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u514d\u672a\u767b\u5f55\u8bbf\u95ee\u53d7\u9650\u529f\u80fd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u6280\u672f\u70b9&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8d2d\u7269\u2ecb\u6570\u636e\u5b58\u50a8&#xff08;\u4f1a\u8bdd\u5b58\u50a8\/\u6570\u636e\u5e93\u5b58\u50a8&#xff0c;\u9700\u8003\u8651\u767b\u5f55\u72b6\u6001\u540c\u6b65&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u90ae\u4ef6\u53d1\u9001\u529f\u80fd&#xff08;SMTP\u534f\u8bae\u5e94\u2f64&#xff0c;\u5b9e\u73b0\u53d1\u8d27\u786e\u8ba4\u901a\u77e5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6743\u9650\u63a7\u5236&#xff08;\u533a\u5206\u987e\u5ba2\u4e0e\u7ba1\u7406\u5458\u2ec6\u2f8a&#xff0c;\u9650\u5236\u7ba1\u7406\u7aef\u529f\u80fd\u8bbf\u95ee&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e09\u3001\u4ee3\u7801\u63d0\u4ea4\u89c4\u8303&#xff08;\u5360\u5b9e\u9a8c\u6210\u7ee930%&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u63d0\u4ea4\u5e73\u53f0&#xff08;\u2f06\u9009\u2f00&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Github&#xff1a;<\/span><span style=\"color:#336df4\">https:\/\/github.com\/ <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7801\u4e91&#xff1a;<\/span><span style=\"color:#336df4\">https:\/\/gitee.com\/ <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u63d0\u4ea4\u8981\u6c42&#xff08;\u8003\u8bd5\u9700\u9a8c\u8bc1\u5408\u89c4\u6027&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u9a8c\u62a5\u544a\u4e2d\u5fc5\u987b\u6ce8\u660e\u4ee3\u7801\u4ed3\u5e93\u5730\u5740&#xff08;\u5730\u5740\u2f46\u6548\u89c6\u4e3a\u672a\u5b8c\u6210&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ed3\u5e93\u9700\u5305\u542b <\/span><span style=\"color:#1f2329\">readme.md <\/span><span style=\"color:#1f2329\">\u2f42\u4ef6&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5fc5\u586b\u5185\u5bb9&#xff1a;\u5b66\u53f7\u3001\u59d3\u540d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u5185\u5bb9&#xff1a;\u6e90\u4ee3\u7801\u2f42\u4ef6\u8bf4\u660e&#xff08;\u2f6c\u5f55\u7ed3\u6784\u3001\u6838\u2f3c\u6a21\u5757\u4f5c\u2f64&#xff09;\u3001\u8fd0\u2f8f\u73af\u5883\u8981\u6c42\u3001\u542f\u52a8\u2f45\u5f0f <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u89c4\u8303&#xff1a;\u7ed3\u6784\u6e05\u6670\u3001\u6a21\u5757\u5316\u8bbe\u8ba1\u3001\u5173\u952e\u4ee3\u7801\u6dfb\u52a0\u6ce8\u91ca <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56db\u3001\u5728\u7ebf\u90e8\u7f72\u8981\u70b9&#xff08;\u5fc5\u8003&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u90e8\u7f72\u5e73\u53f0 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u963f\u2fa5\u4e91\u3001AWS\u6216\u5176\u4ed6\u6b63\u89c4\u4e91\u670d\u52a1\u5546 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u90e8\u7f72\u8981\u6c42&#xff08;\u76f4\u63a5\u5f71\u54cd\u5b9e\u9a8c\u5b8c\u6210\u5ea6\u5224\u5b9a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u9a8c\u62a5\u544a\u4e2d\u6ce8\u660e\u2f79\u7ad9\u8bbf\u95ee\u5730\u5740\u3001\u6d4b\u8bd5\u8d26\u2f3e&#xff08;\u542b\u987e\u5ba2\/\u7ba1\u7406\u5458\u2ec6\u2f8a&#xff09;\u53ca\u2f1d\u4ee4 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbf\u95ee\u6709\u6548\u6027&#xff1a;\u63d0\u4ea4\u62a5\u544a\u540e3\u4e2a\u2f49\u5185&#xff0c;\u6821\u56ed\u2f79\u73af\u5883\u53ef\u6b63\u5e38\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u90e8\u7f72\u5173\u952e\u6b65\u9aa4&#xff08;\u9700\u5728\u62a5\u544a\u4e2d\u8be6\u7ec6\u8bb0\u5f55&#043;\u622a\u56fe&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">a. <\/span><span style=\"color:#1f2329\">\u4e91\u670d\u52a1\u5668\u73af\u5883\u914d\u7f6e&#xff08;\u5982LAMP\/WAMP\u3001Python\u865a\u62df\u73af\u5883\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">b. <\/span><span style=\"color:#1f2329\">MySQL\u6570\u636e\u5e93\u90e8\u7f72\u4e0e\u6570\u636e\u5bfc\u2f0a <\/span><\/p>\n<p><span style=\"color:#1456f0\">c. <\/span><span style=\"color:#1f2329\">\u9879\u2f6c\u2f42\u4ef6\u4e0a\u4f20&#xff08;\u901a\u8fc7FTP\/\u547d\u4ee4\u2f8f\u2f2f\u5177&#xff09;<\/span><span style=\"color:#1456f0\">d. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u542f\u52a8\u4e0e\u7aef\u2f1d\u914d\u7f6e&#xff08;\u786e\u4fdd\u5916\u2f79\u53ef\u8bbf\u95ee&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">e. <\/span><span style=\"color:#1f2329\">\u529f\u80fd\u6d4b\u8bd5&#xff08;\u9a8c\u8bc1\u6240\u6709\u6838\u2f3c\u529f\u80fd\u53ef\u6b63\u5e38\u4f7f\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001\u5b9e\u9a8c\u62a5\u544a\u89c4\u8303&#xff08;\u5360\u5b9e\u9a8c\u6210\u7ee940%&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u683c\u5f0f\u4e0e\u547d\u540d <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u683c\u5f0f\u6a21\u677f&#xff1a;\u53c2\u7167\u8bfe\u7a0bQQ\u7fa4\u5171\u4eab\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f42\u4ef6\u540d&#xff1a;\u5b66\u53f7_\u59d3\u540d.doc \u6216 \u5b66\u53f7_\u59d3\u540d.pdf <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u63d0\u4ea4\u622a\u2f4c\u2f47\u671f&#xff1a;2025\u5e7412\u2f4916\u2f47&#xff08;\u903e\u671f\u6309\u672a\u63d0\u4ea4\u5904\u7406&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u6838\u2f3c\u5185\u5bb9&#xff08;\u7f3a\u2f00\u4e0d\u53ef&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u9a8c\u9898\u2f6c\u4e0e\u8981\u6c42&#xff08;\u660e\u786e\u6838\u2f3c\u4efb\u52a1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bbe\u8ba1\u601d\u8def&#xff1a;\u67b6\u6784\u8bbe\u8ba1&#xff08;\u524d\u540e\u7aef\u5206\u79bb\/\u5355\u4f53\u67b6\u6784&#xff09;\u3001\u6280\u672f\u9009\u578b\u7406\u7531\u3001\u6570\u636e\u5e93\u8bbe\u8ba1&#xff08;\u8868\u7ed3\u6784\u3001\u5173\u7cfb <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56fe&#xff09;\u3001\u4e1a\u52a1\u6d41\u7a0b\u56fe&#xff08;\u5982\u8d2d\u4e70\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u9a8c\u4ee3\u7801&#xff1a;\u6838\u2f3c\u6a21\u5757\u4ee3\u7801\u2f5a\u6bb5&#xff08;\u5982\u767b\u5f55\u9a8c\u8bc1\u3001\u8d2d\u7269\u2ecb\u6dfb\u52a0\u3001\u8ba2\u5355\u2f63\u6210&#xff09;&#043; \u4ee3\u7801\u89e3\u91ca <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd\u6d4b\u8bd5&#xff1a;\u6d4b\u8bd5\u2f64\u4f8b&#xff08;\u8986\u76d6\u6240\u6709\u6838\u2f3c\u529f\u80fd&#xff09;\u3001\u6d4b\u8bd5\u7ed3\u679c\u3001\u5173\u952e\u6b65\u9aa4\u622a\u56fe <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u90e8\u7f72&#xff1a;\u8be6\u7ec6\u90e8\u7f72\u6b65\u9aa4\u3001\u670d\u52a1\u5668\u914d\u7f6e\u622a\u56fe\u3001\u2f79\u7ad9\u8bbf\u95ee\u622a\u56fe <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u7eaa\u5f8b\u8981\u6c42&#xff08;\u4e25\u91cd\u5f71\u54cd\u6210\u7ee9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u62a5\u544a\u5185\u5bb9\u96f7\u540c\u3001\u5728\u7ebf\u90e8\u7f72\u2f79\u7ad9\u96f7\u540c&#xff0c;\u5747\u89c6\u4e3a\u6284\u88ad&#xff0c;\u6309\u76f8\u5173\u89c4\u5b9a\u5904\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672a\u6309\u65f6\u63d0\u4ea4\u3001\u4ee3\u7801\u5730\u5740\u2f46\u6548\u3001\u90e8\u7f72\u2f79\u7ad9\u2f46\u6cd5\u8bbf\u95ee&#xff0c;\u5747\u6309\u672a\u5b8c\u6210\u5b9e\u9a8c\u5904\u7406 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u590d\u4e60\u5efa\u8bae <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u529f\u80fd\u4f18\u5148&#xff1a;\u786e\u4fdd\u987e\u5ba2\u7aef\u6838\u2f3c\u6d41\u7a0b&#xff08;\u6ce8\u518c-\u767b\u5f55-\u52a0\u8d2d-\u4e0b\u5355-\u67e5\u8ba2\u5355&#xff09;\u5b8c\u6574\u5b9e\u73b0&#xff0c;\u518d\u8865\u5145\u7ba1\u7406\u7aef\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u5148\u2f8f&#xff1a;\u5148\u8bbe\u8ba1\u5408\u7406\u7684\u6570\u636e\u8868\u7ed3\u6784&#xff0c;\u660e\u786e\u5b57\u6bb5\u542b\u4e49\u4e0e\u5173\u8054\u5173\u7cfb&#xff0c;\u907f\u514d\u540e\u7eed\u4e1a\u52a1\u903b\u8f91\u8fd4\u2f2f <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u90e8\u7f72\u63d0\u524d\u7ec3&#xff1a;\u63d0\u524d\u719f\u6089\u4e91\u670d\u52a1\u5668\u914d\u7f6e\u3001\u9879\u2f6c\u90e8\u7f72\u6d41\u7a0b&#xff0c;\u7559\u5b58\u5173\u952e\u6b65\u9aa4\u622a\u56fe&#xff0c;\u786e\u4fdd\u90e8\u7f72\u540e\u53ef\u7a33\u5b9a\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u89c4\u8303\u8bb0\u4e8e\u2f3c&#xff1a;\u4e25\u683c\u9075\u5b88\u4ee3\u7801\u63d0\u4ea4\u3001\u62a5\u544a\u683c\u5f0f\u8981\u6c42&#xff0c;\u907f\u514d\u56e0\u89c4\u8303\u95ee\u9898\u5f71\u54cd\u6210\u7ee9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u907f\u5751\u91cd\u70b9&#xff1a;\u62d2\u7edd\u6284\u88ad&#xff08;\u4ee3\u7801\u3001\u62a5\u544a\u3001\u2f79\u7ad9\u5747\u9700\u539f\u521b&#xff09;&#xff0c;\u786e\u4fdd\u4ee3\u7801\u4ed3\u5e93\u53ef\u8bbf\u95ee\u3001\u90e8\u7f72\u2f79\u7ad9\u2ed3\u671f\u6709\u6548 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u201c\u51e1\u4e8b\u8c6b\u5219\u2f74&#xff0c;\u4e0d\u8c6b\u5219\u5e9f\u201d&#xff0c;\u7ed3\u5408\u5b9e\u9a8c\u5b89\u6392&#xff08;B3-138\u5b9e\u9a8c\u5ba4&#xff0c;14:00-17:00\u7b2c5-8\u8282&#xff09;&#xff0c;\u5408\u7406\u89c4\u5212\u65f6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u95f4&#xff0c;\u9010\u2f00\u653b\u514b\u529f\u80fd\u6a21\u5757\u4e0e\u6280\u672f\u96be\u70b9&#xff0c;\u786e\u4fdd\u5b9e\u9a8c\u987a\u5229\u5b8c\u6210&#xff01; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8bfe\u7a0bQQ\u7fa4&#xff1a;&#xff08;\u53ca\u65f6\u5173\u6ce8\u7fa4\u5185\u6a21\u677f\u2f42\u4ef6\u4e0e\u901a\u77e5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">Docker &#043; Spring Boot \u7535\u5546\u7cfb\u7edf\u5f00\u53d1<\/span><span style=\"color:#1f2329\">\u2f00\u3001\u590d\u4e60\u603b\u7eb2 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u672c\u6b21\u8003\u8bd5\u56f4\u7ed5\u300c\u4e2d\u2f29\u578b\u7535\u5546\u7cfb\u7edf\u7684\u5bb9\u5668\u5316\u5f00\u53d1\u4e0e\u90e8\u7f72\u300d\u6838\u2f3c\u5c55\u5f00&#xff0c;\u91cd\u70b9\u8003\u5bdf Spring Boot \u5206\u5c42\u67b6\u6784\u8bbe <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba1\u3001\u6838\u2f3c\u6a21\u5757\u5b9e\u73b0\u3001Docker \u5bb9\u5668\u5316\u914d\u7f6e\u53ca\u5b8c\u6574\u4e1a\u52a1\u6d41\u7a0b&#xff08;\u767b\u5f55-\u5546\u54c1-\u8d2d\u7269\u2ecb&#xff09;\u3002\u8003\u8bd5\u5f62\u5f0f\u5305\u62ec\u9009\u62e9 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u9898\u3001\u7b80\u7b54\u9898\u3001\u4ee3\u7801\u586b\u7a7a\u9898\u3001\u914d\u7f6e\u9898&#xff0c;\u9700\u638c\u63e1\u4ece\u9879\u2f6c\u642d\u5efa\u5230\u90e8\u7f72\u6d4b\u8bd5\u7684\u5168\u6d41\u7a0b&#xff0c;\u91cd\u70b9\u5173\u6ce8\u6ce8\u89e3\u4f7f\u2f64\u3001\u4e1a <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a1\u903b\u8f91\u5b9e\u73b0\u3001\u5bb9\u5668\u5316\u914d\u7f6e\u4e09\u2f24\u6838\u2f3c\u677f\u5757\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f06\u3001\u6838\u2f3c\u6280\u672f\u6808\u4e0e\u5fc5\u5907\u2f2f\u5177&#xff08;\u5fc5\u8003\u57fa\u7840&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u6280\u672f\u6808 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5206\u5c42 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6280\u672f\u9009\u578b <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u4f5c\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540e\u7aef\u6838\u2f3c <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring Boot 2.7.18 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5feb\u901f\u6784\u5efa Web \u5e94\u2f64&#xff0c;\u2f83\u52a8\u914d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8ba4\u8bc1\u6388\u6743 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring Security <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0\u2f64\u2f3e\u767b\u5f55\u8ba4\u8bc1&#xff0c;\u5bc6\u7801\u52a0\u5bc6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5e93\u64cd\u4f5c <\/span><\/p>\n<p><span style=\"color:#1f2329\">Spring Data JPA <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u5316 CRUD&#xff0c;\u2f46\u9700\u2f3f\u5199 SQL <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u524d\u7aef\u6a21\u677f <\/span><\/p>\n<p><span style=\"color:#1f2329\">Thymeleaf &#043; Bootstrap 5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u540e\u7aef\u6e32\u67d3\u2eda\u2faf&#xff0c;\u5feb\u901f\u5b9e\u73b0\u54cd\u5e94 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5f0f\u6837\u5f0f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5e93 <\/span><\/p>\n<p><span style=\"color:#1f2329\">MySQL 8.0&#xff08;Docker \u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5316&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b58\u50a8\u2f64\u2f3e\u3001\u5546\u54c1\u3001\u8d2d\u7269\u2ecb\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bb9\u5668\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Docker &#043; Docker Compose <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5e94\u2f64\u4e0e\u6570\u636e\u5e93\u5bb9\u5668\u5316&#xff0c;\u2f00\u952e\u542f <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u52a8 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u5316\u2f2f\u5177 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Lombok&#xff08;&#064;Data \u6ce8\u89e3&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f83\u52a8\u2f63\u6210 getter\/setter&#xff0c;\u7b80\u5316 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u4f53\u7c7b\u4ee3\u7801 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u5fc5\u5907\u2f2f\u5177\u4e0e\u7248\u672c\u8981\u6c42 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">JDK 8&#043;\/11&#xff08;\u9879\u2f6c\u6307\u5b9a 1.8&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Maven&#xff08;\u9879\u2f6c\u6784\u5efa\u2f2f\u5177&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Docker &#043; Docker Compose&#xff08;\u5bb9\u5668\u5316\u73af\u5883&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">IDE&#xff08;IDEA\/Eclipse&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6d4f\u89c8\u5668&#xff08;\u529f\u80fd\u6d4b\u8bd5&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a;\u6280\u672f\u6808\u5bf9\u5e94\u4f5c\u2f64&#xff08;\u5982 Spring Security \u8d1f\u8d23\u4ec0\u4e48&#xff09;\u3001\u2f2f\u5177\u7248\u672c\u5339\u914d&#xff08;\u5982 JDK \u7248\u672c\u4e0e Spring Boot <\/span><\/p>\n<p><span style=\"color:#1f2329\">2.7.x \u517c\u5bb9&#xff09;\u3002<\/span><span style=\"color:#1f2329\">\u4e09\u3001\u9879\u2f6c\u5206\u5c42\u67b6\u6784&#xff08;\u91cd\u4e2d\u4e4b\u91cd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u5206\u5c42\u8bbe\u8ba1\u539f\u5219 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u601d\u60f3&#xff1a;\u89e3\u8026\u3001\u804c\u8d23\u5206\u79bb\u3001\u4fbf\u4e8e\u7ef4\u62a4\u6269\u5c55 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67b6\u6784\u7c7b\u2f50&#xff1a;\u2f2f\u2f1a\u6d41\u2f54\u7ebf&#xff08;\u5b9e\u4f53\u5c42&#061;\u539f\u6750\u6599\u89c4\u683c\u2192\u4ed3\u5e93\u5c42&#061;\u539f\u6750\u6599\u4ed3\u5e93\u2192\u670d\u52a1\u5c42&#061;\u2f63\u4ea7\u2ecb\u95f4\u2192\u63a7\u5236\u5668\u5c42&#061; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u524d\u53f0\u7a97\u2f1d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u5404\u5c42\u6838\u2f3c\u804c\u8d23\u3001\u6ce8\u89e3\u4e0e\u4ee3\u7801\u6a21\u677f <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;\u5b9e\u4f53\u5c42&#xff08;Entity&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u804c\u8d23&#xff1a;\u6620\u5c04\u6570\u636e\u5e93\u8868&#xff0c;\u5b9a\u4e49\u6570\u636e\u7ed3\u6784&#xff08;\u2f46\u4e1a\u52a1\u903b\u8f91&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6ce8\u89e3&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Entity <\/span><span style=\"color:#1f2329\">&#xff1a;\u6807\u8bb0\u4e3a JPA \u5b9e\u4f53&#xff08;\u5bf9\u5e94\u6570\u636e\u5e93\u8868&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Table(name&#061;&#034;<\/span><span style=\"color:#1f2329\">\u8868\u540d<\/span><span style=\"color:#1f2329\">&#034;) <\/span><span style=\"color:#1f2329\">&#xff1a;\u6307\u5b9a\u6570\u636e\u5e93\u8868\u540d&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">users <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">products <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Id &#043; &#064;GeneratedValue(strategy&#061;GenerationType.IDENTITY) <\/span><span style=\"color:#1f2329\">&#xff1a;\u4e3b\u952e &#043; \u2f83\u589e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Column <\/span><span style=\"color:#1f2329\">&#xff1a;\u5b57\u6bb5\u7ea6\u675f&#xff08; <\/span><span style=\"color:#1f2329\">unique&#061;true <\/span><span style=\"color:#1f2329\">\u552f\u2f00\u3001 <\/span><span style=\"color:#1f2329\">nullable&#061;false <\/span><span style=\"color:#1f2329\">\u2fae\u7a7a&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;OneToMany\/&#064;ManyToOne <\/span><span style=\"color:#1f2329\">&#xff1a;\u8868\u5173\u8054&#xff08;\u2f64\u2f3e-\u8d2d\u7269\u2ecb\u9879&#xff1a;\u2f00\u5bf9\u591a&#xff1b;\u8d2d\u7269\u2ecb\u9879-\u5546\u54c1&#xff1a;\u591a\u5bf9\u2f00&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Data <\/span><span style=\"color:#1f2329\">&#xff08;Lombok&#xff09;&#xff1a;\u7b80\u5316\u4ee3\u7801 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u6a21\u677f&#xff08;User \u5b9e\u4f53\u6838\u2f3c\u2f5a\u6bb5&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Data <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Entity <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Table(name &#061; &#034;users&#034;) <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">User <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Id <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;GeneratedValue(strategy &#061; GenerationType.IDENTITY) <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">Long id; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Column(unique &#061; true, nullable &#061; false) <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">String username; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f64\u2f3e\u540d&#xff08;\u552f\u2f00&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Column(nullable &#061; false) <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">String password; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u52a0\u5bc6\u5b58\u50a8 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5173\u8054\u8d2d\u7269\u2ecb\u9879&#xff08;\u2f00\u5bf9\u591a&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;OneToMany(mappedBy &#061; &#034;user&#034;, cascade &#061; CascadeType.ALL) <\/span><\/p>\n<p><span style=\"color:#a626a4\">private <\/span><span style=\"color:#2b2f36\">Set&lt;CartItem&gt; cartItems; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18<\/span><span style=\"color:#1f2329\">&#xff08;2&#xff09;\u4ed3\u5e93\u5c42&#xff08;Repository&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u804c\u8d23&#xff1a;\u6570\u636e\u8bbf\u95ee\u63a5\u2f1d&#xff0c;\u5b9e\u73b0 CRUD&#xff08;\u4f9d\u8d56 Spring Data JPA&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u89c4\u8303&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7ee7\u627f <\/span><span style=\"color:#1f2329\">JpaRepository&lt;<\/span><span style=\"color:#1f2329\">\u5b9e\u4f53\u7c7b<\/span><span style=\"color:#1f2329\">, <\/span><span style=\"color:#1f2329\">\u4e3b\u952e\u7c7b\u578b<\/span><span style=\"color:#1f2329\">&gt; <\/span><span style=\"color:#1f2329\">&#xff08;\u5185\u7f6e <\/span><span style=\"color:#1f2329\">findAll() <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">findById() <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">save() <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">delete() <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f83\u5b9a\u4e49\u67e5\u8be2\u2f45\u6cd5&#xff1a;\u6309\u300c\u2f45\u6cd5\u540d\u89c4\u5219\u300d\u2f83\u52a8\u2f63\u6210 SQL&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">findByUsername <\/span><span style=\"color:#1f2329\">\u6309\u2f64\u2f3e\u540d\u67e5\u8be2&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u6a21\u677f&#xff08;UserRepository&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a626a4\">public interface <\/span><span style=\"color:#4078f2\">UserRepository <\/span><span style=\"color:#a626a4\">extends <\/span><span style=\"color:#4078f2\">JpaRepository<\/span><span style=\"color:#2b2f36\">&lt;User, Long&gt; { <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f83\u5b9a\u4e49\u67e5\u8be2&#xff1a;\u6839\u636e\u2f64\u2f3e\u540d\u67e5\u8be2\u2f64\u2f3e&#xff08;\u767b\u5f55\u8ba4\u8bc1\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Optional&lt;User&gt; <\/span><span style=\"color:#4078f2\">findByUsername<\/span><span style=\"color:#2b2f36\">(String username); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;3&#xff09;\u670d\u52a1\u5c42&#xff08;Service&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u804c\u8d23&#xff1a;\u4e1a\u52a1\u903b\u8f91\u5904\u7406&#xff08;\u5982\u52a0\u2f0a\u8d2d\u7269\u2ecb\u3001\u5bc6\u7801\u52a0\u5bc6&#xff09;\u3001\u4e8b\u52a1\u7ba1\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6ce8\u89e3&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Service <\/span><span style=\"color:#1f2329\">&#xff1a;\u6807\u8bb0\u4e3a\u4e1a\u52a1\u5c42\u7ec4\u4ef6&#xff08;Spring \u2f83\u52a8\u7ba1\u7406\u5b9e\u4f8b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6784\u9020\u5668\u6ce8\u2f0a&#xff1a;\u2f46\u9700 <\/span><span style=\"color:#1f2329\">&#064;Autowired <\/span><span style=\"color:#1f2329\">&#xff0c;Spring \u2f83\u52a8\u88c5\u914d Repository \u5b9e\u4f8b <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u8981\u6c42&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5b9e\u73b0 <\/span><span style=\"color:#1f2329\">UserDetailsService <\/span><span style=\"color:#1f2329\">\u63a5\u2f1d&#xff08;Spring Security \u8ba4\u8bc1\u8981\u6c42&#xff09;&#xff0c;\u91cd\u5199 <\/span><\/p>\n<p><span style=\"color:#1f2329\">loadUserByUsername <\/span><span style=\"color:#1f2329\">\u2f45\u6cd5 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bc6\u7801\u52a0\u5bc6&#xff1a;\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">PasswordEncoder <\/span><span style=\"color:#1f2329\">\u52a0\u5bc6&#xff08;Spring Security \u5f3a\u5236\u8981\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u6a21\u677f&#xff08;UserService \u6838\u2f3c\u2f5a\u6bb5&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Service <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">UserService <\/span><span style=\"color:#a626a4\">implements <\/span><span style=\"color:#4078f2\">UserDetailsService <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a626a4\">private final <\/span><span style=\"color:#2b2f36\">UserRepository userRepository; <\/span><\/p>\n<p><span style=\"color:#a626a4\">private final <\/span><span style=\"color:#2b2f36\">PasswordEncoder passwordEncoder; <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6784\u9020\u5668\u6ce8\u2f0a <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#4078f2\">UserService<\/span><span style=\"color:#2b2f36\">(UserRepository userRepository, PasswordEncoder <\/span><\/p>\n<p><span style=\"color:#2b2f36\">passwordEncoder) { <\/span><\/p>\n<p><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.userRepository &#061; userRepository; <\/span><\/p>\n<p><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.passwordEncoder &#061; passwordEncoder; <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9<\/span><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u767b\u5f55\u8ba4\u8bc1\u6838\u2f3c\u2f45\u6cd5&#xff1a;\u6839\u636e\u2f64\u2f3e\u540d\u67e5\u8be2\u2f64\u2f3e\u5e76\u5c01\u88c5\u4e3a <\/span><span style=\"color:#a0a1a7\">UserDetails <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Override <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">UserDetails <\/span><span style=\"color:#4078f2\">loadUserByUsername<\/span><span style=\"color:#2b2f36\">(String username) <\/span><span style=\"color:#a626a4\">throws <\/span><\/p>\n<p><span style=\"color:#2b2f36\">UsernameNotFoundException { <\/span><\/p>\n<p><span style=\"color:#986801\">User user <\/span><span style=\"color:#2b2f36\">&#061; userRepository.findByUsername(username) <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.orElseThrow(() -&gt; <\/span><span style=\"color:#a626a4\">new <\/span><span style=\"color:#4078f2\">UsernameNotFoundException<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#50a14f\">\u2f64\u2f3e\u4e0d\u5b58\u5728<\/span><span style=\"color:#50a14f\">&#034;<\/span><span style=\"color:#2b2f36\">)); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5c01\u88c5\u2f64\u2f3e\u540d\u3001\u52a0\u5bc6\u5bc6\u7801\u3001\u6743\u9650&#xff08;\u65b0\u2f3f\u7b80\u5316\u4e3a\u2f46\u6743\u9650&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">return new <\/span><span style=\"color:#4078f2\">org<\/span><span style=\"color:#2b2f36\">.springframework.security.core.userdetails.User( <\/span><\/p>\n<p><span style=\"color:#2b2f36\">user.getUsername(), user.getPassword(), Collections.emptyList() <\/span><\/p>\n<p><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u4fdd\u5b58\u2f64\u2f3e&#xff08;\u5bc6\u7801\u52a0\u5bc6&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">User <\/span><span style=\"color:#4078f2\">saveUser<\/span><span style=\"color:#2b2f36\">(User user) { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">user.setPassword(passwordEncoder.encode(user.getPassword())); <\/span><\/p>\n<p><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">userRepository.save(user); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;4&#xff09;\u63a7\u5236\u5668\u5c42&#xff08;Controller&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u804c\u8d23&#xff1a;\u63a5\u6536\u524d\u7aef\u8bf7\u6c42\u3001\u8c03\u2f64\u670d\u52a1\u5c42\u3001\u2eda\u2faf\u8df3\u8f6c\/\u6570\u636e\u4f20\u9012 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6ce8\u89e3&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;Controller <\/span><span style=\"color:#1f2329\">&#xff1a;\u6807\u8bb0\u4e3a Web \u63a7\u5236\u5668&#xff08;\u5904\u7406\u2eda\u2faf\u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;GetMapping(&#034;\/<\/span><span style=\"color:#1f2329\">\u8def\u5f84<\/span><span style=\"color:#1f2329\">&#034;) <\/span><span style=\"color:#1f2329\">&#xff1a;\u5904\u7406 GET \u8bf7\u6c42&#xff08;\u5982\u2eda\u2faf\u8bbf\u95ee&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;PostMapping(&#034;\/<\/span><span style=\"color:#1f2329\">\u8def\u5f84<\/span><span style=\"color:#1f2329\">&#034;) <\/span><span style=\"color:#1f2329\">&#xff1a;\u5904\u7406 POST \u8bf7\u6c42&#xff08;\u5982\u8868\u5355\u63d0\u4ea4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#064;RequestMapping(&#034;\/<\/span><span style=\"color:#1f2329\">\u524d\u7f00<\/span><span style=\"color:#1f2329\">&#034;) <\/span><span style=\"color:#1f2329\">&#xff1a;\u7edf\u2f00\u63a5\u2f1d\u524d\u7f00&#xff08;\u5982\u8d2d\u7269\u2ecb\u63a5\u2f1d <\/span><span style=\"color:#1f2329\">\/cart\/* <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Model <\/span><span style=\"color:#1f2329\">&#xff1a;\u4f20\u9012\u6570\u636e\u5230\u524d\u7aef&#xff08; <\/span><span style=\"color:#1f2329\">model.addAttribute(&#034;key&#034;, <\/span><span style=\"color:#1f2329\">\u6570\u636e<\/span><span style=\"color:#1f2329\">) <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Authentication <\/span><span style=\"color:#1f2329\">&#xff1a;\u83b7\u53d6\u5f53\u524d\u767b\u5f55\u2f64\u2f3e\u4fe1\u606f&#xff08; <\/span><span style=\"color:#1f2329\">authentication.getName() <\/span><span style=\"color:#1f2329\">\u83b7\u2f64\u2f3e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><span style=\"color:#1f2329\">\u540d<\/span><span style=\"color:#1f2329\">re<\/span><span style=\"color:#1f2329\">&#xff09;<\/span><span style=\"color:#1f2329\">direct:\/<\/span><span style=\"color:#1f2329\">\u8def\u5f84 &#xff1a;\u91cd\u5b9a\u5411&#xff08;\u5982\u52a0\u2f0a\u8d2d\u7269\u2ecb\u540e\u8df3\u56de\u5546\u54c1\u5217\u8868&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u6a21\u677f&#xff08;CartController \u6838\u2f3c\u2f5a\u6bb5&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Controller <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;RequestMapping(&#034;\/cart&#034;) <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">CartController <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a626a4\">private final <\/span><span style=\"color:#2b2f36\">CartService cartService; <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#4078f2\">CartController<\/span><span style=\"color:#2b2f36\">(CartService cartService) { <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27 <\/span><\/p>\n<p><span style=\"color:#646a73\">28 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6<\/span><span style=\"color:#c18401\">this<\/span><span style=\"color:#2b2f36\">.cartService &#061; cartService; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u52a0\u2f0a\u8d2d\u7269\u2ecb&#xff08;<\/span><span style=\"color:#a0a1a7\">POST <\/span><span style=\"color:#a0a1a7\">\u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;PostMapping(&#034;\/add&#034;) <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">String <\/span><span style=\"color:#4078f2\">addToCart<\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#4078f2\">&#064;RequestParam <\/span><span style=\"color:#2b2f36\">Long productId, <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;RequestParam(defaultValue &#061; &#034;1&#034;) <\/span><span style=\"color:#2b2f36\">Integer quantity, <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Authentication authentication) { <\/span><\/p>\n<p><span style=\"color:#986801\">String username <\/span><span style=\"color:#2b2f36\">&#061; authentication.getName(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">cartService.addToCart(username, productId, quantity); <\/span><\/p>\n<p><span style=\"color:#a626a4\">return <\/span><span style=\"color:#50a14f\">&#034;redirect:\/products&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u91cd\u5b9a\u5411\u5230\u5546\u54c1\u5217\u8868 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u67e5\u770b\u8d2d\u7269\u2ecb&#xff08;<\/span><span style=\"color:#a0a1a7\">GET <\/span><span style=\"color:#a0a1a7\">\u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;GetMapping <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">String <\/span><span style=\"color:#4078f2\">viewCart<\/span><span style=\"color:#2b2f36\">(Model model, Authentication authentication) { <\/span><\/p>\n<p><span style=\"color:#986801\">String username <\/span><span style=\"color:#2b2f36\">&#061; authentication.getName(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">model.addAttribute(<\/span><span style=\"color:#50a14f\">&#034;cartItems&#034;<\/span><span style=\"color:#2b2f36\">, cartService.getCartItems(username)); <\/span><\/p>\n<p><span style=\"color:#a626a4\">return <\/span><span style=\"color:#50a14f\">&#034;cart&#034;<\/span><span style=\"color:#2b2f36\">; <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u6e32\u67d3 <\/span><span style=\"color:#a0a1a7\">templates\/cart.html <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;5&#xff09;\u914d\u7f6e\u5c42&#xff08;Config&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u804c\u8d23&#xff1a;\u9879\u2f6c\u914d\u7f6e&#xff08;\u8ba4\u8bc1\u3001\u6570\u636e\u5e93\u3001\u524d\u7aef\u7f13\u5b58\u7b49&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u914d\u7f6e&#xff1a;Spring Security \u914d\u7f6e&#xff08; <\/span><span style=\"color:#1f2329\">SecurityConfig <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u89e3&#xff1a; <\/span><span style=\"color:#1f2329\">&#064;Configuration <\/span><span style=\"color:#1f2329\">&#xff08;\u6807\u8bb0\u914d\u7f6e\u7c7b&#xff09;\u3001 <\/span><span style=\"color:#1f2329\">&#064;EnableWebSecurity <\/span><span style=\"color:#1f2329\">&#xff08;\u542f\u2f64\u5b89\u5168\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c Bean&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25aa <\/span><\/p>\n<p><span style=\"color:#1f2329\">PasswordEncoder <\/span><span style=\"color:#1f2329\">&#xff1a;\u8fd4\u56de <\/span><span style=\"color:#1f2329\">BCryptPasswordEncoder <\/span><span style=\"color:#1f2329\">&#xff08;\u5bc6\u7801\u52a0\u5bc6\u5668&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25aa <\/span><\/p>\n<p><span style=\"color:#1f2329\">SecurityFilterChain <\/span><span style=\"color:#1f2329\">&#xff1a;\u914d\u7f6e\u767b\u5f55\u89c4\u5219\u3001\u8bf7\u6c42\u6743\u9650\u3001\u9000\u51fa\u903b\u8f91 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u6a21\u677f&#xff08;SecurityConfig \u6838\u2f3c\u2f5a\u6bb5&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Configuration <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;EnableWebSecurity <\/span><\/p>\n<p><span style=\"color:#a626a4\">public class <\/span><span style=\"color:#4078f2\">SecurityConfig <\/span><span style=\"color:#2b2f36\">{ <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5bc6\u7801\u52a0\u5bc6\u5668&#xff08;<\/span><span style=\"color:#a0a1a7\">Spring <\/span><span style=\"color:#a0a1a7\">\u5bb9\u5668\u7ba1\u7406&#xff09; <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Bean <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">PasswordEncoder <\/span><span style=\"color:#4078f2\">passwordEncoder<\/span><span style=\"color:#2b2f36\">() { <\/span><\/p>\n<p><span style=\"color:#a626a4\">return new <\/span><span style=\"color:#4078f2\">BCryptPasswordEncoder<\/span><span style=\"color:#2b2f36\">(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9<\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5b89\u5168\u8fc7\u6ee4\u94fe&#xff1a;\u914d\u7f6e\u767b\u5f55\u3001\u6743\u9650\u3001\u9000\u51fa <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#064;Bean <\/span><\/p>\n<p><span style=\"color:#a626a4\">public <\/span><span style=\"color:#2b2f36\">SecurityFilterChain <\/span><span style=\"color:#4078f2\">securityFilterChain<\/span><span style=\"color:#2b2f36\">(HttpSecurity http) <\/span><span style=\"color:#a626a4\">throws <\/span><\/p>\n<p><span style=\"color:#2b2f36\">Exception { <\/span><\/p>\n<p><span style=\"color:#2b2f36\">http <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.csrf().disable() <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u65b0\u2f3f\u7b80\u5316&#xff08;\u2f63\u4ea7\u73af\u5883\u9700\u5f00\u542f&#xff09; <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.authorizeHttpRequests(auth -&gt; auth <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.antMatchers(<\/span><span style=\"color:#50a14f\">&#034;\/login&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;\/css\/**&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;\/js\/**&#034;<\/span><span style=\"color:#2b2f36\">).permitAll() <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u533f\u540d <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">\u8bbf\u95ee <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.anyRequest().authenticated() <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u5176\u4ed6\u8bf7\u6c42\u9700\u767b\u5f55 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">) <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.formLogin(form -&gt; form <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.loginPage(<\/span><span style=\"color:#50a14f\">&#034;\/login&#034;<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u2f83\u5b9a\u4e49\u767b\u5f55\u2eda <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.defaultSuccessUrl(<\/span><span style=\"color:#50a14f\">&#034;\/products&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#0184bb\">true<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u767b\u5f55\u6210\u529f\u8df3\u5546\u54c1\u5217\u8868 <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.permitAll() <\/span><\/p>\n<p><span style=\"color:#2b2f36\">) <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.logout(logout -&gt; logout <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.logoutSuccessUrl(<\/span><span style=\"color:#50a14f\">&#034;\/login?logout&#034;<\/span><span style=\"color:#2b2f36\">) <\/span><span style=\"color:#a0a1a7\">\/\/ <\/span><span style=\"color:#a0a1a7\">\u9000\u51fa\u8df3\u767b\u5f55\u2eda <\/span><\/p>\n<p><span style=\"color:#2b2f36\">.permitAll() <\/span><\/p>\n<p><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a626a4\">return <\/span><span style=\"color:#2b2f36\">http.build(); <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#2b2f36\">} <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;6&#xff09;\u524d\u7aef\u5c42&#xff08;Templates&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6280\u672f&#xff1a;Thymeleaf&#xff08;\u540e\u7aef\u6a21\u677f\u5f15\u64ce&#xff09;&#043; Bootstrap&#xff08;\u6837\u5f0f&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5173\u952e\u8bed\u6cd5&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u6e32\u67d3&#xff1a; <\/span><span style=\"color:#1f2329\">[[${<\/span><span style=\"color:#1f2329\">\u53d8\u91cf\u540d<\/span><span style=\"color:#1f2329\">}]] <\/span><span style=\"color:#1f2329\">&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">[[${username}]] <\/span><span style=\"color:#1f2329\">\u663e\u2f70\u767b\u5f55\u2f64\u2f3e\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5faa\u73af\u904d\u5386&#xff1a; <\/span><span style=\"color:#1f2329\">th:each&#061;&#034;product : ${products}&#034; <\/span><span style=\"color:#1f2329\">&#xff08;\u904d\u5386\u5546\u54c1\u5217\u8868&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6761\u4ef6\u5224\u65ad&#xff1a; <\/span><span style=\"color:#1f2329\">th:if&#061;&#034;${#lists.isEmpty(cartItems)}&#034; <\/span><span style=\"color:#1f2329\">&#xff08;\u8d2d\u7269\u2ecb\u4e3a\u7a7a\u5224\u65ad&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u5355\u63d0\u4ea4&#xff1a; <\/span><span style=\"color:#1f2329\">th:action&#061;&#034;&#064;{\/<\/span><span style=\"color:#1f2329\">\u63a5\u2f1d\u8def\u5f84<\/span><span style=\"color:#1f2329\">}&#034; <\/span><span style=\"color:#1f2329\">&#xff08;\u5982\u52a0\u2f0a\u8d2d\u7269\u2ecb\u63d0\u4ea4\u5230 <\/span><span style=\"color:#1f2329\">\/cart\/add <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u56fe\u2f5a\/\u94fe\u63a5&#xff1a; <\/span><span style=\"color:#1f2329\">th:src&#061;&#034;${product.imageUrl}&#034; <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">th:href&#061;&#034;&#064;{\/cart\/remove\/{id}(id&#061;${item.id})}&#034; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2eda\u2faf&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">login.html <\/span><span style=\"color:#1f2329\">&#xff1a;\u767b\u5f55\u2eda&#xff08;\u8868\u5355\u63d0\u4ea4\u5230 <\/span><span style=\"color:#1f2329\">\/login <\/span><span style=\"color:#1f2329\">&#xff0c;\u2f40\u6301\u9519\u8bef\/\u9000\u51fa\u63d0\u2f70&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">products.html <\/span><span style=\"color:#1f2329\">&#xff1a;\u5546\u54c1\u5217\u8868\u2eda&#xff08;\u5bfc\u822a\u680f\u3001\u5546\u54c1\u5361\u2f5a\u3001\u52a0\u2f0a\u8d2d\u7269\u2ecb\u8868\u5355&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">cart.html <\/span><span style=\"color:#1f2329\">&#xff1a;\u8d2d\u7269\u2ecb\u2eda&#xff08;\u5546\u54c1\u5217\u8868\u3001\u5220\u9664\u3001\u7ed3\u7b97\u529f\u80fd&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a;\u5206\u5c42\u804c\u8d23\u3001\u6838\u2f3c\u6ce8\u89e3\u5339\u914d\u3001\u4ee3\u7801\u2f5a\u6bb5\u8865\u5168&#xff08;\u5982\u5b9e\u4f53\u7c7b\u7f3a\u5c11\u7684\u6ce8\u89e3\u3001\u63a7\u5236\u5668\u7f3a\u5c11\u7684\u8bf7\u6c42\u6620\u5c04&#xff09;\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u5173\u8054\u5173\u7cfb\u8bbe\u8ba1\u3002 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27 <\/span><\/p>\n<p><span style=\"color:#646a73\">28 <\/span><\/p>\n<p><span style=\"color:#646a73\">29 <\/span><\/p>\n<p><span style=\"color:#646a73\">30<\/span><span style=\"color:#1f2329\">\u56db\u3001\u6838\u2f3c\u4e1a\u52a1\u6d41\u7a0b\u5b9e\u73b0&#xff08;\u7efc\u5408\u5e94\u2f64\u9898&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u767b\u5f55\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8bbf\u95ee <\/span><span style=\"color:#1f2329\">\/login <\/span><span style=\"color:#1f2329\">\u2192 \u63a7\u5236\u5668\u8fd4\u56de <\/span><span style=\"color:#1f2329\">login.html <\/span><span style=\"color:#1f2329\">\u2eda\u2faf <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8f93\u2f0a\u2f64\u2f3e\u540d\/\u5bc6\u7801\u63d0\u4ea4\u8868\u5355 \u2192 Spring Security \u8c03\u2f64 <\/span><span style=\"color:#1f2329\">UserService.loadUserByUsername <\/span><span style=\"color:#1f2329\">\u67e5 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8be2\u2f64\u2f3e <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u5bc6\u7801\u6821\u9a8c&#xff08;Spring Security \u2f83\u52a8\u5bf9\u2f50\u52a0\u5bc6\u540e\u7684\u5bc6\u7801&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u6821\u9a8c\u6210\u529f \u2192 \u8df3\u8f6c\u5230 <\/span><span style=\"color:#1f2329\">\/products <\/span><span style=\"color:#1f2329\">&#xff08;\u5546\u54c1\u5217\u8868&#xff09;&#xff1b;\u5931\u8d25 \u2192 \u663e\u2f70\u9519\u8bef\u63d0\u2f70 <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u52a0\u2f0a\u8d2d\u7269\u2ecb\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5546\u54c1\u5217\u8868\u2eda\u9009\u62e9\u5546\u54c1&#xff0c;\u8f93\u2f0a\u6570\u91cf \u2192 \u63d0\u4ea4\u8868\u5355\u5230 <\/span><span style=\"color:#1f2329\">\/cart\/add <\/span><span style=\"color:#1f2329\">&#xff08;POST \u8bf7\u6c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u63a7\u5236\u5668\u63a5\u6536 <\/span><span style=\"color:#1f2329\">productId <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">quantity <\/span><span style=\"color:#1f2329\">\u2192 \u8c03\u2f64 <\/span><span style=\"color:#1f2329\">CartService.addToCart <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5c42\u903b\u8f91&#xff1a; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67e5\u8be2\u5f53\u524d\u2f64\u2f3e\u548c\u5546\u54c1 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u68c0\u67e5\u5546\u54c1\u662f\u5426\u5df2\u5728\u8d2d\u7269\u2ecb&#xff1a;\u5df2\u5b58\u5728\u5219\u66f4\u65b0\u6570\u91cf&#xff0c;\u4e0d\u5b58\u5728\u5219\u65b0\u589e <\/span><span style=\"color:#1f2329\">CartItem <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u25e6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">CartItemRepository.save <\/span><span style=\"color:#1f2329\">\u4fdd\u5b58\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411\u5230 <\/span><span style=\"color:#1f2329\">\/products <\/span><span style=\"color:#1f2329\">\u2eda\u2faf <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u8d2d\u7269\u2ecb\u7ed3\u7b97\u6d41\u7a0b <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u8d2d\u7269\u2ecb\u2eda\u70b9\u51fb\u300c\u7ed3\u7b97\u8d2d\u7269\u2ecb\u300d\u2192 \u8bbf\u95ee <\/span><span style=\"color:#1f2329\">\/cart\/checkout <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u670d\u52a1\u5c42\u8c03\u2f64 <\/span><span style=\"color:#1f2329\">cartService.clearCart <\/span><span style=\"color:#1f2329\">&#xff08;\u6e05\u7a7a\u5f53\u524d\u2f64\u2f3e\u8d2d\u7269\u2ecb&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u91cd\u5b9a\u5411\u5230 <\/span><span style=\"color:#1f2329\">\/products?checkout&#061;success <\/span><span style=\"color:#1f2329\">\u2192 \u663e\u2f70\u7ed3\u7b97\u6210\u529f\u63d0\u2f70 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a;\u4e1a\u52a1\u6d41\u7a0b\u6b65\u9aa4\u63cf\u8ff0\u3001\u670d\u52a1\u5c42\u6838\u2f3c\u903b\u8f91&#xff08;\u5982\u52a0\u2f0a\u8d2d\u7269\u2ecb\u7684\u5224\u65ad\u903b\u8f91&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e94\u3001Docker \u5bb9\u5668\u5316\u90e8\u7f72&#xff08;\u914d\u7f6e\u9898\u91cd\u70b9&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6838\u2f3c\u914d\u7f6e\u2f42\u4ef6 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;1&#xff09;Dockerfile&#xff08;\u5e94\u2f64\u5bb9\u5668\u5316&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u591a\u9636\u6bb5\u6784\u5efa&#xff1a;\u5148\u6253\u5305 Jar \u5305&#xff0c;\u518d\u2f64\u8f7b\u91cf\u955c\u50cf\u8fd0\u2f8f&#xff08;\u51cf\u2f29\u4f53\u79ef&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u6307\u4ee4&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u9636\u6bb5<\/span><span style=\"color:#a0a1a7\">1<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u6784\u5efa <\/span><span style=\"color:#a0a1a7\">Jar <\/span><span style=\"color:#a0a1a7\">\u5305 <\/span><\/p>\n<p><span style=\"color:#a626a4\">FROM <\/span><span style=\"color:#2b2f36\">maven:<\/span><span style=\"color:#986801\">3.8<\/span><span style=\"color:#2b2f36\">.<\/span><span style=\"color:#986801\">5<\/span><span style=\"color:#2b2f36\">-openjdk-<\/span><span style=\"color:#986801\">8 <\/span><span style=\"color:#2b2f36\">AS build <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2<\/span><span style=\"color:#a626a4\">WORKDIR <\/span><span style=\"color:#2b2f36\">\/app <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">pom.xml . <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">src .\/src <\/span><\/p>\n<p><span style=\"color:#a626a4\">RUN <\/span><span style=\"color:#2b2f36\">mvn clean package -DskipTests <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u9636\u6bb5<\/span><span style=\"color:#a0a1a7\">2<\/span><span style=\"color:#a0a1a7\">&#xff1a;\u8fd0\u2f8f <\/span><span style=\"color:#a0a1a7\">Jar <\/span><span style=\"color:#a0a1a7\">\u5305&#xff08;<\/span><span style=\"color:#a0a1a7\">alpine <\/span><span style=\"color:#a0a1a7\">\u955c\u50cf\u8f7b\u91cf&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">FROM <\/span><span style=\"color:#2b2f36\">openjdk:<\/span><span style=\"color:#986801\">8<\/span><span style=\"color:#2b2f36\">-jdk-alpine <\/span><\/p>\n<p><span style=\"color:#a626a4\">WORKDIR <\/span><span style=\"color:#2b2f36\">\/app <\/span><\/p>\n<p><span style=\"color:#a626a4\">COPY <\/span><span style=\"color:#2b2f36\">&#8211;from&#061;build \/app\/target\/ecommerce-1.0.0.jar app.jar <\/span><\/p>\n<p><span style=\"color:#a626a4\">EXPOSE <\/span><span style=\"color:#986801\">8080 <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u66b4\u9732\u7aef\u2f1d&#xff08;\u4e0e <\/span><span style=\"color:#a0a1a7\">application.properties <\/span><span style=\"color:#a0a1a7\">\u2f00\u81f4&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">ENTRYPOINT <\/span><span style=\"color:#2b2f36\">[<\/span><span style=\"color:#50a14f\">&#034;java&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;-jar&#034;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#034;app.jar&#034;<\/span><span style=\"color:#2b2f36\">] <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u542f\u52a8\u547d\u4ee4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08;2&#xff09;docker-compose.yml&#xff08;\u591a\u5bb9\u5668\u7f16\u6392&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd&#xff1a;\u540c\u65f6\u542f\u52a8 Spring Boot \u5e94\u2f64\u548c MySQL \u5bb9\u5668&#xff0c;\u914d\u7f6e\u2f79\u7edc\u548c\u6570\u636e\u6301\u4e45\u5316 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u914d\u7f6e&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#986801\">version: <\/span><span style=\"color:#50a14f\">&#039;3.8&#039; <\/span><\/p>\n<p><span style=\"color:#986801\">services: <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># MySQL <\/span><span style=\"color:#a0a1a7\">\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#986801\">mysql: <\/span><\/p>\n<p><span style=\"color:#986801\">image: <\/span><span style=\"color:#50a14f\">mysql:8.0 <\/span><\/p>\n<p><span style=\"color:#986801\">container_name: <\/span><span style=\"color:#50a14f\">ecommerce-mysql <\/span><\/p>\n<p><span style=\"color:#986801\">restart: <\/span><span style=\"color:#50a14f\">always <\/span><\/p>\n<p><span style=\"color:#986801\">environment: <\/span><\/p>\n<p><span style=\"color:#986801\">MYSQL_ROOT_PASSWORD: <\/span><span style=\"color:#50a14f\">root123 <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6839\u5bc6\u7801&#xff08;\u4e0e <\/span><span style=\"color:#a0a1a7\">application.properties <\/span><span style=\"color:#a0a1a7\">\u2f00\u81f4&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">MYSQL_DATABASE: <\/span><span style=\"color:#50a14f\">ecommerce_db <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u2f83\u52a8\u521b\u5efa\u6570\u636e\u5e93 <\/span><\/p>\n<p><span style=\"color:#986801\">MYSQL_CHARACTER_SET_SERVER: <\/span><span style=\"color:#50a14f\">utf8mb4 <\/span><\/p>\n<p><span style=\"color:#986801\">ports: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">&#034;3306:3306&#034; <\/span><\/p>\n<p><span style=\"color:#986801\">volumes: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">mysql-data:\/var\/lib\/mysql <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u6301\u4e45\u5316 <\/span><\/p>\n<p><span style=\"color:#986801\">networks: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">ecommerce-network <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u5e94\u2f64\u670d\u52a1 <\/span><\/p>\n<p><span style=\"color:#986801\">app: <\/span><\/p>\n<p><span style=\"color:#986801\">build: <\/span><span style=\"color:#50a14f\">. <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6784\u5efa\u5f53\u524d\u2f6c\u5f55\u7684 <\/span><span style=\"color:#a0a1a7\">Dockerfile <\/span><\/p>\n<p><span style=\"color:#986801\">container_name: <\/span><span style=\"color:#50a14f\">ecommerce-app <\/span><\/p>\n<p><span style=\"color:#986801\">restart: <\/span><span style=\"color:#50a14f\">always <\/span><\/p>\n<p><span style=\"color:#986801\">ports: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">&#034;8080:8080&#034; <\/span><\/p>\n<p><span style=\"color:#986801\">depends_on: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">mysql <\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u4f9d\u8d56 <\/span><span style=\"color:#a0a1a7\">MySQL<\/span><span style=\"color:#a0a1a7\">&#xff0c;\u5148\u542f\u52a8 <\/span><span style=\"color:#a0a1a7\">MySQL <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">17 <\/span><\/p>\n<p><span style=\"color:#646a73\">18 <\/span><\/p>\n<p><span style=\"color:#646a73\">19 <\/span><\/p>\n<p><span style=\"color:#646a73\">20 <\/span><\/p>\n<p><span style=\"color:#646a73\">21 <\/span><\/p>\n<p><span style=\"color:#646a73\">22 <\/span><\/p>\n<p><span style=\"color:#646a73\">23 <\/span><\/p>\n<p><span style=\"color:#646a73\">24 <\/span><\/p>\n<p><span style=\"color:#646a73\">25 <\/span><\/p>\n<p><span style=\"color:#646a73\">26 <\/span><\/p>\n<p><span style=\"color:#646a73\">27<\/span><span style=\"color:#986801\">networks: <\/span><\/p>\n<p><span style=\"color:#4078f2\">&#8211; <\/span><span style=\"color:#50a14f\">ecommerce-network <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u2f79\u7edc&#xff08;\u5bb9\u5668\u4e92\u901a&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">networks: <\/span><\/p>\n<p><span style=\"color:#986801\">ecommerce-network: <\/span><\/p>\n<p><span style=\"color:#986801\">driver: <\/span><span style=\"color:#50a14f\">bridge <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u5377&#xff08;\u6301\u4e45\u5316 <\/span><span style=\"color:#a0a1a7\">MySQL <\/span><span style=\"color:#a0a1a7\">\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">volumes: <\/span><\/p>\n<p><span style=\"color:#986801\">mysql-data: <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u5173\u952e\u914d\u7f6e\u8bf4\u660e <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">spring.datasource.url <\/span><span style=\"color:#1f2329\">&#xff1a; <\/span><span style=\"color:#1f2329\">jdbc:mysql:\/\/mysql:3306\/ecommerce_db?xxx <\/span><\/p>\n<p><span style=\"color:#1f2329\">&#xff08; <\/span><span style=\"color:#1f2329\">mysql <\/span><span style=\"color:#1f2329\">\u662f Docker Compose \u4e2d MySQL \u5bb9\u5668\u540d&#xff0c;\u2f40\u6301\u5185\u90e8\u57df\u540d\u89e3\u6790&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u6301\u4e45\u5316&#xff1a; <\/span><span style=\"color:#1f2329\">volumes: mysql-data:\/var\/lib\/mysql <\/span><span style=\"color:#1f2329\">&#xff08;\u5bb9\u5668\u5220\u9664\u540e\u6570\u636e\u4e0d\u4e22\u5931&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f9d\u8d56\u987a\u5e8f&#xff1a; <\/span><span style=\"color:#1f2329\">depends_on: &#8211; mysql <\/span><span style=\"color:#1f2329\">&#xff08;\u786e\u4fdd\u5e94\u2f64\u542f\u52a8\u524d MySQL \u5df2\u5c31\u7eea&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u6838\u2f3c\u547d\u4ee4&#xff08;\u5fc5\u8003&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u529f\u80fd <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u547d\u4ee4 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6784\u5efa\u5e76\u542f\u52a8\u5bb9\u5668&#xff08;\u540e\u53f0&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker compose up &#8212; <\/span><\/p>\n<p><span style=\"color:#1f2329\">build -d <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67e5\u770b\u8fd0\u2f8f\u4e2d\u7684\u5bb9\u5668 <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker compose ps <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u67e5\u770b\u5e94\u2f64\u2f47\u5fd7&#xff08;\u6392\u9519&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker compose logs <\/span><\/p>\n<p><span style=\"color:#1f2329\">app <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u505c\u2f4c\u5e76\u5220\u9664\u5bb9\u5668&#xff08;\u4fdd\u6570\u636e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker compose down <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u505c\u2f4c\u5e76\u5220\u9664\u5bb9\u5668&#043;\u6570\u636e <\/span><\/p>\n<p><span style=\"color:#1f2329\">docker compose down &#8211; <\/span><\/p>\n<p><span style=\"color:#1f2329\">v <\/span><span style=\"color:#1f2329\">&#xff08;\u8c28\u614e\u4f7f\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a;Dockerfile \u6307\u4ee4\u542b\u4e49\u3001docker-compose.yml \u914d\u7f6e\u9879\u89e3\u91ca&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">depends_on <\/span><span style=\"color:#1f2329\">\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">volumes <\/span><span style=\"color:#1f2329\">&#xff09;\u3001\u6838\u2f3c\u547d\u4ee4\u4f7f\u2f64\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u516d\u3001\u9879\u2f6c\u914d\u7f6e\u2f42\u4ef6&#xff08;application.properties&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u914d\u7f6e\u9879&#xff08;\u9700\u8bb0\u5fc6\u5173\u952e\u53c2\u6570&#xff09;&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">28 <\/span><\/p>\n<p><span style=\"color:#646a73\">29 <\/span><\/p>\n<p><span style=\"color:#646a73\">30 <\/span><\/p>\n<p><span style=\"color:#646a73\">31 <\/span><\/p>\n<p><span style=\"color:#646a73\">32 <\/span><\/p>\n<p><span style=\"color:#646a73\">33 <\/span><\/p>\n<p><span style=\"color:#646a73\">34 <\/span><\/p>\n<p><span style=\"color:#646a73\">35 <\/span><\/p>\n<p><span style=\"color:#646a73\">36 <\/span><\/p>\n<p><span style=\"color:#646a73\">37 <\/span><\/p>\n<p><span style=\"color:#646a73\">38<\/span><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u670d\u52a1\u5668\u7aef\u2f1d <\/span><\/p>\n<p><span style=\"color:#986801\">server.port<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">8080 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># <\/span><span style=\"color:#a0a1a7\">\u6570\u636e\u5e93\u914d\u7f6e&#xff08;\u8fde\u63a5 <\/span><span style=\"color:#a0a1a7\">Docker <\/span><span style=\"color:#a0a1a7\">\u4e2d\u7684 <\/span><span style=\"color:#a0a1a7\">MySQL<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">spring.datasource.url<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">jdbc:mysql:\/\/mysql:3306\/ecommerce_db? <\/span><\/p>\n<p><span style=\"color:#50a14f\">useUnicode&#061;true&amp;characterEncoding&#061;utf8&amp;useSSL&#061;false&amp;serverTimezone&#061;UTC <\/span><\/p>\n<p><span style=\"color:#986801\">spring.datasource.username<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">root <\/span><\/p>\n<p><span style=\"color:#986801\">spring.datasource.password<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">root123 <\/span><\/p>\n<p><span style=\"color:#986801\">spring.datasource.driver-class-name<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">com.mysql.cj.jdbc.Driver <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># JPA <\/span><span style=\"color:#a0a1a7\">\u914d\u7f6e&#xff08;\u2f83\u52a8\u5efa\u8868\u3001\u663e\u2f70 <\/span><span style=\"color:#a0a1a7\">SQL<\/span><span style=\"color:#a0a1a7\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">spring.jpa.hibernate.ddl-auto<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">update # <\/span><span style=\"color:#50a14f\">\u542f\u52a8\u65f6\u2f83\u52a8\u521b\u5efa<\/span><span style=\"color:#50a14f\">\/<\/span><span style=\"color:#50a14f\">\u66f4\u65b0\u8868 <\/span><\/p>\n<p><span style=\"color:#986801\">spring.jpa.show-sql<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">true # <\/span><span style=\"color:#50a14f\">\u663e\u2f70 <\/span><span style=\"color:#50a14f\">SQL <\/span><span style=\"color:#50a14f\">\u8bed\u53e5 <\/span><\/p>\n<p><span style=\"color:#986801\">spring.jpa.properties.hibernate.format_sql<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">true # <\/span><span style=\"color:#50a14f\">\u683c\u5f0f\u5316 <\/span><span style=\"color:#50a14f\">SQL <\/span><\/p>\n<p><span style=\"color:#a0a1a7\"># Thymeleaf <\/span><span style=\"color:#a0a1a7\">\u5f00\u53d1\u6a21\u5f0f&#xff08;\u7981\u2f64\u7f13\u5b58&#xff09; <\/span><\/p>\n<p><span style=\"color:#986801\">spring.thymeleaf.cache<\/span><span style=\"color:#2b2f36\">&#061;<\/span><span style=\"color:#50a14f\">false # <\/span><span style=\"color:#50a14f\">\u4fee\u6539\u2eda\u2faf\u2f46\u9700\u91cd\u542f\u9879\u2f6c <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a; <\/span><span style=\"color:#1f2329\">spring.jpa.hibernate.ddl-auto&#061;update <\/span><span style=\"color:#1f2329\">\u7684\u4f5c\u2f64\u3001 <\/span><\/p>\n<p><span style=\"color:#1f2329\">spring.thymeleaf.cache&#061;false <\/span><span style=\"color:#1f2329\">\u7684\u610f\u4e49\u3001\u6570\u636e\u5e93 URL \u4e2d\u7684 <\/span><span style=\"color:#1f2329\">mysql <\/span><span style=\"color:#1f2329\">\u542b\u4e49\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e03\u3001\u6570\u636e\u521d\u59cb\u5316&#xff08;data.sql&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4f5c\u2f64&#xff1a;\u9879\u2f6c\u542f\u52a8\u65f6\u2f83\u52a8\u6267\u2f8f SQL&#xff0c;\u521d\u59cb\u5316\u6d4b\u8bd5\u6570\u636e&#xff08;\u2f64\u2f3e\u3001\u5546\u54c1&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6838\u2f3c\u2f70\u4f8b&#xff1a; <\/span><\/p>\n<p><span style=\"color:#646a73\">\u4ee3\u7801\u5757 <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&#8212; <\/span><span style=\"color:#a0a1a7\">\u6d4b\u8bd5\u2f64\u2f3e&#xff08;\u5bc6\u7801 <\/span><span style=\"color:#a0a1a7\">123456<\/span><span style=\"color:#a0a1a7\">&#xff0c;<\/span><span style=\"color:#a0a1a7\">BCrypt <\/span><span style=\"color:#a0a1a7\">\u52a0\u5bc6\u540e&#xff09; <\/span><\/p>\n<p><span style=\"color:#a626a4\">INSERT INTO <\/span><span style=\"color:#2b2f36\">users (username, password, full_name) <\/span><\/p>\n<p><span style=\"color:#a626a4\">VALUES <\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#039;testuser&#039;<\/span><span style=\"color:#2b2f36\">, <\/span><\/p>\n<p><span style=\"color:#50a14f\">&#039;$2a$10$8H9w5f8G7y6D4s3a2q1z0b9n8m7l6k5j4h3g2f1d0s9a8s7d6f5g4h3j2k1l0&#039;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#50a14f\">\u6d4b\u8bd5\u2f64 <\/span><\/p>\n<p><span style=\"color:#50a14f\">\u2f3e<\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#a0a1a7\">&#8212; <\/span><span style=\"color:#a0a1a7\">\u6d4b\u8bd5\u5546\u54c1 <\/span><\/p>\n<p><span style=\"color:#a626a4\">INSERT INTO <\/span><span style=\"color:#2b2f36\">products (name, description, price, image_url) <\/span><\/p>\n<p><span style=\"color:#a626a4\">VALUES <\/span><span style=\"color:#2b2f36\">(<\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#50a14f\">\u2f29\u2f76\u2f3f\u673a<\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#50a14f\">\u2fbc\u6027\u80fd\u667a\u80fd\u2f3f\u673a<\/span><span style=\"color:#50a14f\">&#039;<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#986801\">2999.00<\/span><span style=\"color:#2b2f36\">, <\/span><span style=\"color:#50a14f\">&#039;https:\/\/picsum.photos\/200\/200? <\/span><\/p>\n<p><span style=\"color:#50a14f\">random&#061;1&#039;<\/span><span style=\"color:#2b2f36\">); <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8003\u70b9&#xff1a;data.sql \u7684\u4f5c\u2f64\u3001\u6d4b\u8bd5\u2f64\u2f3e\u7684\u2f64\u2f3e\u540d\/\u5bc6\u7801&#xff08;testuser\/123456&#xff09;\u3002 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u2f0b\u3001\u6613\u9519\u70b9\u4e0e\u2fbc\u9891\u8003\u70b9\u603b\u7ed3 <\/span><\/p>\n<p><span style=\"color:#1f2329\">1. \u6613\u9519\u70b9 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7 <\/span><\/p>\n<p><span style=\"color:#646a73\">8 <\/span><\/p>\n<p><span style=\"color:#646a73\">9 <\/span><\/p>\n<p><span style=\"color:#646a73\">10 <\/span><\/p>\n<p><span style=\"color:#646a73\">11 <\/span><\/p>\n<p><span style=\"color:#646a73\">12 <\/span><\/p>\n<p><span style=\"color:#646a73\">13 <\/span><\/p>\n<p><span style=\"color:#646a73\">14 <\/span><\/p>\n<p><span style=\"color:#646a73\">15 <\/span><\/p>\n<p><span style=\"color:#646a73\">16 <\/span><\/p>\n<p><span style=\"color:#646a73\">1 <\/span><\/p>\n<p><span style=\"color:#646a73\">2 <\/span><\/p>\n<p><span style=\"color:#646a73\">3 <\/span><\/p>\n<p><span style=\"color:#646a73\">4 <\/span><\/p>\n<p><span style=\"color:#646a73\">5 <\/span><\/p>\n<p><span style=\"color:#646a73\">6 <\/span><\/p>\n<p><span style=\"color:#646a73\">7<\/span><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6ce8\u89e3\u6df7\u6dc6&#xff1a; <\/span><span style=\"color:#1f2329\">&#064;Entity <\/span><span style=\"color:#1f2329\">&#xff08;\u5b9e\u4f53\u5c42&#xff09; vs <\/span><span style=\"color:#1f2329\">&#064;Service <\/span><span style=\"color:#1f2329\">&#xff08;\u670d\u52a1\u5c42&#xff09; vs <\/span><span style=\"color:#1f2329\">&#064;Controller <\/span><span style=\"color:#1f2329\">&#xff08;\u63a7\u5236\u5668\u5c42&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u6570\u636e\u5e93 URL \u9519\u8bef&#xff1a;\u5c06 <\/span><span style=\"color:#1f2329\">mysql <\/span><span style=\"color:#1f2329\">\u5199\u6210 <\/span><span style=\"color:#1f2329\">localhost <\/span><span style=\"color:#1f2329\">&#xff08;Docker \u73af\u5883\u4e0b\u9700\u2f64\u5bb9\u5668\u540d&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u5bc6\u7801\u672a\u52a0\u5bc6&#xff1a;Spring Security \u5f3a\u5236\u8981\u6c42\u5bc6\u7801\u52a0\u5bc6&#xff0c;\u9700\u901a\u8fc7 <\/span><span style=\"color:#1f2329\">PasswordEncoder <\/span><span style=\"color:#1f2329\">\u5904\u7406 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">Thymeleaf \u7f13\u5b58\u672a\u5173\u95ed&#xff1a;\u5f00\u53d1\u65f6\u4fee\u6539\u2eda\u2faf\u4e0d\u2f63\u6548&#xff08;\u9700\u8bbe\u7f6e <\/span><\/p>\n<p><span style=\"color:#1f2329\">spring.thymeleaf.cache&#061;false <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u8868\u5173\u8054\u6ce8\u89e3\u9519\u8bef&#xff1a; <\/span><span style=\"color:#1f2329\">&#064;OneToMany(mappedBy&#061;&#034;user&#034;) <\/span><span style=\"color:#1f2329\">\u4e2d <\/span><span style=\"color:#1f2329\">mappedBy <\/span><span style=\"color:#1f2329\">\u5bf9\u5e94\u5173\u8054\u5b57\u6bb5\u540d <\/span><\/p>\n<p><span style=\"color:#1f2329\">2. \u2fbc\u9891\u8003\u70b9 <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u5206\u5c42\u67b6\u6784\u7684\u804c\u8d23\u4e0e\u6ce8\u89e3&#xff08;\u5982 Service \u5c42\u2f64\u4ec0\u4e48\u6ce8\u89e3&#xff0c;\u4f5c\u2f64\u662f\u4ec0\u4e48&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">Spring Security \u767b\u5f55\u6d41\u7a0b\u4e0e\u5bc6\u7801\u52a0\u5bc6&#xff08; <\/span><span style=\"color:#1f2329\">PasswordEncoder <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">UserDetailsService <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">Spring Data JPA \u2f83\u5b9a\u4e49\u67e5\u8be2\u2f45\u6cd5&#xff08;\u5982 <\/span><span style=\"color:#1f2329\">findByUsername <\/span><span style=\"color:#1f2329\">\u7684\u4f5c\u2f64&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">Docker \u5bb9\u5668\u5316\u914d\u7f6e&#xff08;Dockerfile\u3001docker-compose.yml \u6838\u2f3c\u914d\u7f6e&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">5. <\/span><span style=\"color:#1f2329\">\u6838\u2f3c\u4e1a\u52a1\u903b\u8f91&#xff08;\u52a0\u2f0a\u8d2d\u7269\u2ecb\u7684\u5224\u65ad\u903b\u8f91\u3001\u7ed3\u7b97\u6d41\u7a0b&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">6. <\/span><span style=\"color:#1f2329\">\u63a7\u5236\u5668\u7684\u8bf7\u6c42\u6620\u5c04\u4e0e\u2eda\u2faf\u8df3\u8f6c&#xff08; <\/span><span style=\"color:#1f2329\">&#064;GetMapping <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">redirect <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">7. <\/span><span style=\"color:#1f2329\">\u5b9e\u4f53\u7c7b\u7684 JPA \u6ce8\u89e3\u4e0e\u8868\u5173\u8054&#xff08; <\/span><span style=\"color:#1f2329\">&#064;OneToMany <\/span><span style=\"color:#1f2329\">\u3001 <\/span><span style=\"color:#1f2329\">&#064;ManyToOne <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">3. \u7b54\u9898\u6280\u5de7 <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4ee3\u7801\u586b\u7a7a\u9898&#xff1a;\u5148\u660e\u786e\u5206\u5c42&#xff08;\u5982\u5b9e\u4f53\u5c42\u8865 <\/span><span style=\"color:#1f2329\">&#064;Entity <\/span><span style=\"color:#1f2329\">&#xff0c;\u670d\u52a1\u5c42\u8865 <\/span><span style=\"color:#1f2329\">&#064;Service <\/span><span style=\"color:#1f2329\">&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u914d\u7f6e\u9898&#xff1a;\u56f4\u7ed5\u300c\u2f00\u81f4\u6027\u300d\u539f\u5219&#xff08;\u5982 MySQL \u5bc6\u7801\u5728 <\/span><span style=\"color:#1f2329\">application.properties <\/span><span style=\"color:#1f2329\">\u548c <\/span><span style=\"color:#1f2329\">docker<\/span><\/p>\n<p><span style=\"color:#1f2329\">compose.yml <\/span><span style=\"color:#1f2329\">\u4e2d\u5fc5\u987b\u2f00\u81f4&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">\u2022 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u7b80\u7b54\u9898&#xff1a;\u6309\u300c\u6b65\u9aa4&#043;\u6838\u2f3c\u7ec4\u4ef6\u300d\u63cf\u8ff0&#xff08;\u5982\u767b\u5f55\u6d41\u7a0b&#xff1a;\u2eda\u2faf\u63d0\u4ea4\u2192Security \u8c03\u2f64 <\/span><\/p>\n<p><span style=\"color:#1f2329\">loadUserByUsername <\/span><span style=\"color:#1f2329\">\u2192\u67e5\u8be2\u2f64\u2f3e\u2192\u5bc6\u7801\u6821\u9a8c\u2192\u8df3\u8f6c&#xff09; <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u4e5d\u3001\u5b9e\u6218\u6d4b\u8bd5\u6d41\u7a0b&#xff08;\u8f85\u52a9\u7406\u89e3&#xff09; <\/span><\/p>\n<p><span style=\"color:#1456f0\">1. <\/span><span style=\"color:#1f2329\">\u542f\u52a8\u5bb9\u5668&#xff1a; <\/span><span style=\"color:#1f2329\">docker compose up &#8211;build -d <\/span><\/p>\n<p><span style=\"color:#1456f0\">2. <\/span><span style=\"color:#1f2329\">\u8bbf\u95ee\u767b\u5f55\u2eda&#xff1a; <\/span><span style=\"color:#336df4\">http:\/\/localhost:8080\/login <\/span><\/p>\n<p><span style=\"color:#1456f0\">3. <\/span><span style=\"color:#1f2329\">\u767b\u5f55&#xff1a;\u2f64\u2f3e\u540d <\/span><span style=\"color:#1f2329\">testuser <\/span><span style=\"color:#1f2329\">&#xff0c;\u5bc6\u7801 <\/span><span style=\"color:#1f2329\">123456 <\/span><\/p>\n<p><span style=\"color:#1456f0\">4. <\/span><span style=\"color:#1f2329\">\u64cd\u4f5c\u6d41\u7a0b&#xff1a;\u5546\u54c1\u5217\u8868\u2192\u52a0\u2f0a\u8d2d\u7269\u2ecb\u2192\u67e5\u770b\u8d2d\u7269\u2ecb\u2192\u5220\u9664\u5546\u54c1\u2192\u7ed3\u7b97\u2192\u9000\u51fa\u767b\u5f55 <\/span><\/p>\n<p><span style=\"color:#1f2329\">\u901a\u8fc7\u5b9e\u6218\u6d41\u7a0b\u7406\u89e3\u5404\u6a21\u5757\u7684\u4ea4\u4e92\u5173\u7cfb&#xff0c;\u52a9\u2f12\u7406\u8bba\u7b54\u9898&#xff01;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u590d\u4e60\u8bfe\u6572\u91cd\u70b9 \u2f00\u3001\u8003\u8bd5\u6838\u2f3c\u4fe1\u606f 1. \u8003\u8bd5\u65f6\u95f4&#xff1a;2026\u5e741\u2f4912\u2f47&#xff08;\u661f\u671f\u2f00&#xff09;9:00-11:00 2. \u8003\u8bd5\u5730\u70b9&#xff1a;A1-201\u3001A1-202 3. \u7b54\u9898\u8981\u6c42&#xff1a; \u25e6 \u8bd5\u5377\u542b\u8bd5\u9898\u5377&#xff08;4\u2eda&#xff09;\u548c\u7b54\u9898\u5377&#xff08;6\u2eda&#xff09;&#xff0c;\u7b54\u6848\u5fc5\u987b\u5199\u5728\u7b54\u9898\u5377\u4e0a&#xff0c;\u8bd5\u9898\u5377\u7b54\u9898\u2f46\u6548 \u25e6 \u9700\u5728\u8bd5\u9898\u5377\u548c\u7b54\u9898\u5377\u6307\u5b9a\u4f4d\u7f6e\u586b\u5199\u59d3\u540d\u3001\u5b66\u53f7\u3001\u4e13\u4e1a\u73ed\u7ea7\u3001\u5ea7\u4f4d\u53f7&#xff08;\u5ea7\u4f4d\u53f7<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[779,482,99,190,2330,305],"topic":[],"class_list":["post-60579","post","type-post","status-publish","format-standard","hentry","category-server","tag-hadoop","tag-hive","tag-java","tag-190","tag-2330","tag-305"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/60579.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u590d\u4e60\u8bfe\u6572\u91cd\u70b9 \u2f00\u3001\u8003\u8bd5\u6838\u2f3c\u4fe1\u606f 1. \u8003\u8bd5\u65f6\u95f4&#xff1a;2026\u5e741\u2f4912\u2f47&#xff08;\u661f\u671f\u2f00&#xff09;9:00-11:00 2. \u8003\u8bd5\u5730\u70b9&#xff1a;A1-201\u3001A1-202 3. \u7b54\u9898\u8981\u6c42&#xff1a; \u25e6 \u8bd5\u5377\u542b\u8bd5\u9898\u5377&#xff08;4\u2eda&#xff09;\u548c\u7b54\u9898\u5377&#xff08;6\u2eda&#xff09;&#xff0c;\u7b54\u6848\u5fc5\u987b\u5199\u5728\u7b54\u9898\u5377\u4e0a&#xff0c;\u8bd5\u9898\u5377\u7b54\u9898\u2f46\u6548 \u25e6 \u9700\u5728\u8bd5\u9898\u5377\u548c\u7b54\u9898\u5377\u6307\u5b9a\u4f4d\u7f6e\u586b\u5199\u59d3\u540d\u3001\u5b66\u53f7\u3001\u4e13\u4e1a\u73ed\u7ea7\u3001\u5ea7\u4f4d\u53f7&#xff08;\u5ea7\u4f4d\u53f7\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/60579.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-15T14:57:18+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"51 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/60579.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/60579.html\",\"name\":\"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-01-15T14:57:18+00:00\",\"dateModified\":\"2026-01-15T14:57:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/60579.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/60579.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/60579.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/60579.html","og_locale":"zh_CN","og_type":"article","og_title":"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u590d\u4e60\u8bfe\u6572\u91cd\u70b9 \u2f00\u3001\u8003\u8bd5\u6838\u2f3c\u4fe1\u606f 1. \u8003\u8bd5\u65f6\u95f4&#xff1a;2026\u5e741\u2f4912\u2f47&#xff08;\u661f\u671f\u2f00&#xff09;9:00-11:00 2. \u8003\u8bd5\u5730\u70b9&#xff1a;A1-201\u3001A1-202 3. \u7b54\u9898\u8981\u6c42&#xff1a; \u25e6 \u8bd5\u5377\u542b\u8bd5\u9898\u5377&#xff08;4\u2eda&#xff09;\u548c\u7b54\u9898\u5377&#xff08;6\u2eda&#xff09;&#xff0c;\u7b54\u6848\u5fc5\u987b\u5199\u5728\u7b54\u9898\u5377\u4e0a&#xff0c;\u8bd5\u9898\u5377\u7b54\u9898\u2f46\u6548 \u25e6 \u9700\u5728\u8bd5\u9898\u5377\u548c\u7b54\u9898\u5377\u6307\u5b9a\u4f4d\u7f6e\u586b\u5199\u59d3\u540d\u3001\u5b66\u53f7\u3001\u4e13\u4e1a\u73ed\u7ea7\u3001\u5ea7\u4f4d\u53f7&#xff08;\u5ea7\u4f4d\u53f7","og_url":"https:\/\/www.wsisp.com\/helps\/60579.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-01-15T14:57:18+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"51 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/60579.html","url":"https:\/\/www.wsisp.com\/helps\/60579.html","name":"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-01-15T14:57:18+00:00","dateModified":"2026-01-15T14:57:18+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/60579.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/60579.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/60579.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u3010\u534e\u5de52025\u7248\u3011\u7f51\u7edc\u5e94\u7528\u67b6\u6784PPT\u7b14\u8bb0\uff08\u53ef\u4ee5\u5728\u4e13\u680f\u4e0b\u8f7d\u683c\u5f0f\u89c4\u6574\u7684pdf\uff09"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/60579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=60579"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/60579\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=60579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=60579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=60579"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=60579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}