{"id":4073,"date":"2018-08-19T10:59:15","date_gmt":"2018-08-19T02:59:15","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=4073"},"modified":"2018-08-19T10:59:15","modified_gmt":"2018-08-19T02:59:15","slug":"servlet-tomcat-jetty-netty%e5%88%86%e5%88%ab%e6%98%af%e4%bb%80%e4%b9%88","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/4073.html","title":{"rendered":"Servlet, Tomcat, Jetty, Netty\u5206\u522b\u662f\u4ec0\u4e48?"},"content":{"rendered":"<p>=Start=<\/p>\n<h4 id=\"id-\u6a21\u677f-\u7f18\u7531\uff1a\">\u7f18\u7531\uff1a<\/h4>\n<p>\u56e0\u4e3aJava\u5c5e\u4e8e\u81ea\u5b66\u7684\uff0c\u4e0d\u90a3\u4e48\u7cfb\u7edf\uff0c\u6240\u4ee5\u6709\u65f6\u5019\u5728\u78b0\u5230\u4e00\u4e9b\u540d\u8bcd\u65f6\u8fd8\u4e0d\u592a\u7406\u89e3\u5b83\u7684\u542b\u4e49\u548c\u4f5c\u7528\uff0c\u4ee5\u53ca\u5b83\u548c\u5176\u5b83\u6982\u5ff5\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u8fd9\u91cc\u8981\u6574\u7406\u548c\u603b\u7ed3\u7684\u5c31\u662f\u5728Java Web\u4e2d\u5e38\u89c1\u7684\u51e0\u4e2a\u6982\u5ff5\u548c\u5b83\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u5982\u679c\u6709\u4e0d\u5bf9\u7684\u5730\u65b9\uff0c\u8fd8\u8bf7\u5e2e\u5fd9\u6307\u51fa\uff0c\u8c22\u8c22\u3002<\/p>\n<h4 id=\"id-\u6a21\u677f-\u6b63\u6587\uff1a\">\u6b63\u6587\uff1a<\/h4>\n<h5 id=\"id-\u6a21\u677f-\u53c2\u8003\u89e3\u7b54\uff1a\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n<p><strong># \u5404\u81ea\u7684\u6982\u5ff5<\/strong><\/p>\n<h2><a href=\"https:\/\/en.wikipedia.org\/wiki\/Java_servlet\">Servlet<\/a><\/h2>\n<p><span style=\"color: #ff0000;\"><strong>\u9996\u5148\uff0c\u5728\u4ee3\u7801\u5c42\u9762\uff0cServlet\u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u63a5\u53e3<\/strong>\uff1a<\/span><\/p>\n<pre class=\"lang:default decode:true \">public interface Servlet {\r\n\r\n    public void init(ServletConfig config) throws ServletException;\r\n\r\n    public ServletConfig getServletConfig();\r\n\r\n    public void service(ServletRequest req, ServletResponse res)\r\n            throws ServletException, IOException;\r\n\r\n    public String getServletInfo();\r\n\r\n    public void destroy();\r\n}<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>\u5176\u6b21\uff0cServlet\u8fd9\u4e2a\u63a5\u53e3\u8d77\u5230\u7684\u662f\u4e00\u4e2a\u300c\u89c4\u8303\u300d\u7684\u4f5c\u7528\uff01<\/strong><\/span>Servlet\u63a5\u53e3\u5b9a\u4e49\u4e86\u4e00\u5957\u5904\u7406\u7f51\u7edc\u8bf7\u6c42\u7684\u89c4\u8303\uff0c\u6240\u6709\u5b9e\u73b0Servlet\u7684\u7c7b\uff0c\u90fd\u9700\u8981\u5b9e\u73b0\u5b83\u90a3\u4e94\u4e2a\u65b9\u6cd5\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u662f\u4e24\u4e2a\u751f\u547d\u5468\u671f\u65b9\u6cd5init()\u548cdestroy()\uff0c\u8fd8\u6709\u4e00\u4e2a\u5904\u7406\u8bf7\u6c42\u7684service()\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u6240\u6709\u5b9e\u73b0Servlet\u63a5\u53e3\u7684\u7c7b\uff0c\u6216\u8005\u8bf4\uff0c\u6240\u6709\u60f3\u8981\uff08\u6309\u7167\u8fd9\u4e2a\u89c4\u8303\uff09\u5904\u7406\u7f51\u7edc\u8bf7\u6c42\u7684\u7c7b\uff0c\u90fd\u9700\u8981\u56de\u7b54\u8fd9\u4e09\u4e2a\u95ee\u9898\uff1a<\/p>\n<ol>\n<li>\u4f60\u521d\u59cb\u5316\u65f6\u8981\u505a\u4ec0\u4e48\uff1f\uff08init()\uff09<\/li>\n<li>\u4f60\u63a5\u53d7\u5230\u8bf7\u6c42\u65f6\u8981\u505a\u4ec0\u4e48\uff1f\uff08service()\uff09<\/li>\n<li>\u4f60\u9500\u6bc1\u65f6\u8981\u505a\u4ec0\u4e48\uff1f\uff08destroy()\uff09<\/li>\n<\/ol>\n<p>J2EE \u00a06\u6587\u6863\u7684\u4ecb\u7ecd\uff1a<\/p>\n<blockquote><p>A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.<\/p><\/blockquote>\n<p><i>\u201c<strong>Servlet<\/strong>\u00a0\u662f\u8fd0\u884c\u5728<strong>Web\u670d\u52a1\u5668<\/strong>\u7684Java\u5c0f\u7a0b\u5e8f\u3002Servlet\u53ef\u4ee5\u83b7\u53d6\u5e76\u9488\u5bf9Web\u5ba2\u6237\u7aef\u7684<strong>\u8bf7\u6c42\u4f5c\u51fa\u54cd\u5e94<\/strong>\u3002\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u901a\u8fc7<strong>HTTP<\/strong><\/i><i>\uff0c\u5373\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff0c\u8fdb\u884c\u4f20\u8f93\u901a\u4fe1\u3002\u201d<\/i><\/p>\n<div class=\"highlight\"><strong><span style=\"color: #ff0000;\">\u7efc\u4e0a\uff0cServlet\u662fJ2EE \u89c4\u8303\u4e2d\u7684\u4e00\u79cd\uff0c\u4e3b\u8981\u662f\u4e3a\u4e86\u6269\u5c55Java\u4f5c\u4e3aWeb\u670d\u52a1\u7684\u529f\u80fd\u3002<\/span><\/strong><\/div>\n<h2><a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Tomcat\">Tomcat<\/a><\/h2>\n<blockquote><p><b>Apache Tomcat<\/b>, often referred to as\u00a0<b>Tomcat Server<\/b>, is an open-source\u00a0<a class=\"mw-redirect\" title=\"Servlet container\" href=\"https:\/\/en.wikipedia.org\/wiki\/Servlet_container\">Java Servlet Container<\/a>\u00a0developed by the\u00a0<a title=\"Apache Software Foundation\" href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Software_Foundation\">Apache Software Foundation<\/a>\u00a0(ASF). Tomcat implements several\u00a0<a title=\"Java Platform, Enterprise Edition\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_Platform,_Enterprise_Edition\">Java EE<\/a>\u00a0specifications including\u00a0<a class=\"mw-redirect\" title=\"Java Servlet\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_Servlet\">Java Servlet<\/a>,\u00a0<a title=\"JavaServer Pages\" href=\"https:\/\/en.wikipedia.org\/wiki\/JavaServer_Pages\">JavaServer Pages<\/a>\u00a0(JSP),\u00a0<a title=\"Unified Expression Language\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unified_Expression_Language\">Java EL<\/a>, and\u00a0<a title=\"WebSocket\" href=\"https:\/\/en.wikipedia.org\/wiki\/WebSocket\">WebSocket<\/a>, and provides a &#8220;pure\u00a0<a title=\"Java (programming language)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>&#8221;\u00a0<a title=\"Hypertext Transfer Protocol\" href=\"https:\/\/en.wikipedia.org\/wiki\/Hypertext_Transfer_Protocol\">HTTP<\/a>\u00a0<a title=\"Web server\" href=\"https:\/\/en.wikipedia.org\/wiki\/Web_server\">web server<\/a>\u00a0environment in which\u00a0<a title=\"Java (programming language)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>\u00a0code can run.<\/p><\/blockquote>\n<p><span style=\"color: #ff0000;\"><strong>Tomcat\u662f\u4e00\u4e2a\u7531Apache\u8f6f\u4ef6\u57fa\u91d1\u4f1a\uff08ASF\uff09\u5f00\u6e90\u7684Java Servlet\u5bb9\u5668\u3002<\/strong><\/span>Tomcat\u5b9e\u73b0\u4e86\u4e00\u4e9bJava EE\u89c4\u8303\uff0c\u5305\u62ecServlet\uff0cJSP\uff0cJava EL\u548cWebSocket\uff1b\u540c\u65f6\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7eafJava\u7684HTTP Web\u670d\u52a1\u8fd0\u884c\u73af\u5883\u3002<\/p>\n<blockquote><p>Tomcat 4.x was released with Catalina (a servlet container), Coyote (an HTTP connector) and Jasper (a\u00a0<a class=\"mw-redirect\" title=\"JSP engine\" href=\"https:\/\/en.wikipedia.org\/wiki\/JSP_engine\">JSP engine<\/a>).<\/p>\n<p>Three new components were added with the release of Tomcat 7:<br \/>\nCluster \/ High availability \/ Web application<\/p><\/blockquote>\n<h2><a href=\"https:\/\/en.wikipedia.org\/wiki\/Jetty_(web_server)\">Jetty<\/a><\/h2>\n<blockquote><p><b>Eclipse Jetty<\/b>\u00a0is a\u00a0<a title=\"Java (programming language)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>\u00a0<a title=\"Web server\" href=\"https:\/\/en.wikipedia.org\/wiki\/Web_server\">HTTP (Web) server<\/a>\u00a0and\u00a0<a class=\"mw-redirect\" title=\"Java Servlet\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_Servlet\">Java Servlet<\/a>\u00a0container. While Web Servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks. Jetty is developed as a\u00a0<a title=\"Free software\" href=\"https:\/\/en.wikipedia.org\/wiki\/Free_software\">free<\/a>\u00a0and\u00a0<a class=\"mw-redirect\" title=\"Open source\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open_source\">open source<\/a>\u00a0project as part of the\u00a0<a title=\"Eclipse Foundation\" href=\"https:\/\/en.wikipedia.org\/wiki\/Eclipse_Foundation\">Eclipse Foundation<\/a>.<\/p><\/blockquote>\n<p><span style=\"color: #ff0000;\"><strong>Jetty\u662f\u4e00\u4e2aJava HTTP(Web)\u670d\u52a1\u5668\u548cJava Servlet\u5bb9\u5668\u3002<\/strong><\/span>\u5c3d\u7ba1Jetty\u901a\u5e38\u88ab\u4eba\u4eec\u8bb0\u5f55\u6210Web\u670d\u52a1\u5668\uff0c\u4f46\u662fJetty\u73b0\u5728\u4e3b\u8981\u88ab\u7528\u4e8e\u5927\u578b\u8f6f\u4ef6\u67b6\u6784\u4e2d\u673a\u5668\u4e4b\u95f4\u7684\u901a\u8baf\u3002Jetty\u662f\u88ab\u4f5c\u4e3aEclipse\u57fa\u91d1\u4f1a\u7684\u4e00\u90e8\u5206\u6765\u5f00\u53d1\u7684\u5f00\u6e90\u9879\u76ee\u3002<\/p>\n<h2><a href=\"https:\/\/en.wikipedia.org\/wiki\/Netty_(software)\">Netty<\/a><\/h2>\n<blockquote><p><b>Netty<\/b>\u00a0is a\u00a0<a class=\"mw-redirect\" title=\"Non-blocking I\/O\" href=\"https:\/\/en.wikipedia.org\/wiki\/Non-blocking_I\/O\">non-blocking I\/O<\/a>\u00a0client-server\u00a0<a title=\"Software framework\" href=\"https:\/\/en.wikipedia.org\/wiki\/Software_framework\">framework<\/a>\u00a0for the development of\u00a0<a title=\"Java (software platform)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Java_(software_platform)\">Java<\/a>\u00a0network applications such as protocol servers and clients. The asynchronous\u00a0<a title=\"Event-driven programming\" href=\"https:\/\/en.wikipedia.org\/wiki\/Event-driven_programming\">event-driven<\/a>\u00a0network application framework and tools are used to simplify\u00a0<a title=\"Computer network programming\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_network_programming\">network programming<\/a>\u00a0such as\u00a0<a title=\"Transmission Control Protocol\" href=\"https:\/\/en.wikipedia.org\/wiki\/Transmission_Control_Protocol\">TCP<\/a>and\u00a0<a title=\"User Datagram Protocol\" href=\"https:\/\/en.wikipedia.org\/wiki\/User_Datagram_Protocol\">UDP<\/a>\u00a0socket servers.<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Netty_(software)#cite_note-2\">[2]<\/a><\/sup>\u00a0Netty includes an implementation of the\u00a0<a title=\"Reactor pattern\" href=\"https:\/\/en.wikipedia.org\/wiki\/Reactor_pattern\">reactor pattern<\/a>\u00a0of programming. Originally developed by JBoss, Netty is now developed and maintained by the Netty Project Community.<\/p>\n<p>Besides being an asynchronous network application framework, Netty also includes built-in\u00a0<a class=\"mw-redirect\" title=\"HTTP\" href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP\">HTTP<\/a>,\u00a0<a class=\"mw-redirect\" title=\"HTTP2\" href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP2\">HTTP2<\/a>,\u00a0<a class=\"mw-redirect\" title=\"DNS\" href=\"https:\/\/en.wikipedia.org\/wiki\/DNS\">DNS<\/a>\u00a0and more protocols support, including the ability to run inside a\u00a0<a class=\"mw-redirect\" title=\"Servlet container\" href=\"https:\/\/en.wikipedia.org\/wiki\/Servlet_container\">servlet container<\/a>, support for\u00a0<a title=\"WebSocket\" href=\"https:\/\/en.wikipedia.org\/wiki\/WebSocket\">WebSockets<\/a>, integration with\u00a0<a title=\"Google\" href=\"https:\/\/en.wikipedia.org\/wiki\/Google\">Google<\/a>\u00a0<a title=\"Protocol Buffers\" href=\"https:\/\/en.wikipedia.org\/wiki\/Protocol_Buffers\">Protocol Buffers<\/a>,\u00a0<a class=\"mw-redirect\" title=\"Secure Sockets Layer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Secure_Sockets_Layer\">SSL<\/a>\/<a title=\"Transport Layer Security\" href=\"https:\/\/en.wikipedia.org\/wiki\/Transport_Layer_Security\">TLS<\/a>\u00a0support, support for\u00a0<a title=\"SPDY\" href=\"https:\/\/en.wikipedia.org\/wiki\/SPDY\">SPDY<\/a>\u00a0protocol and support for message\u00a0<a title=\"Data compression\" href=\"https:\/\/en.wikipedia.org\/wiki\/Data_compression\">compression<\/a>. Netty has been actively developed since 2004.<sup id=\"cite_ref-3\" class=\"reference\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Netty_(software)#cite_note-3\">[3]<\/a><\/sup><\/p>\n<p>As of version 4.0.0, Netty also supports the usage of\u00a0<a class=\"mw-redirect\" title=\"New I\/O\" href=\"https:\/\/en.wikipedia.org\/wiki\/New_I\/O#JDK_7_and_NIO.2\">NIO.2<\/a>\u00a0as a\u00a0<a title=\"Front and back ends\" href=\"https:\/\/en.wikipedia.org\/wiki\/Front_and_back_ends\">backend<\/a>, along with\u00a0<a class=\"mw-redirect\" title=\"New I\/O\" href=\"https:\/\/en.wikipedia.org\/wiki\/New_I\/O\">NIO<\/a>\u00a0and blocking Java sockets.<\/p><\/blockquote>\n<p><span style=\"color: #ff0000;\"><strong>Netty \u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\u3001\u5f02\u6b65\u4e8b\u4ef6\u9a71\u52a8\u7684 NIO \u6846\u67b6<\/strong><\/span>\uff0c\u5b83\u63d0\u4f9b\u4e86\u5bf9 TCP\u3001UDP \u548c\u6587\u4ef6\u4f20\u8f93\u7684\u652f\u6301\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u5f02\u6b65 NIO \u6846\u67b6\uff0cNetty \u7684\u6240\u6709 IO \u64cd\u4f5c\u90fd\u662f\u5f02\u6b65\u975e\u963b\u585e\u7684\uff0c\u901a\u8fc7 Future-Listener \u673a\u5236\uff0c\u7528\u6237\u53ef\u4ee5\u65b9\u4fbf\u7684\u4e3b\u52a8\u83b7\u53d6\u6216\u8005\u901a\u8fc7\u901a\u77e5\u673a\u5236\u83b7\u5f97 IO \u64cd\u4f5c\u7ed3\u679c\u3002<\/p>\n<p><strong># \u5404\u81ea\u7684\u9002\u7528\u573a\u666f\u3001\u8303\u56f4<\/strong><\/p>\n<ul>\n<li>\u73b0\u5728\u5f88\u5c11\u6709\u4eba\u76f4\u63a5\u88f8\u5199 Servlet \uff0c\u4e00\u822c\u90fd\u57fa\u4e8e\u67d0\u4e2a Web \u6846\u67b6\uff08\u6bd4\u5982\uff1aSpring Boot\uff09\u6765\u5f00\u53d1Web\u5e94\u7528\uff0c\u4f46\u662f\u52a0\u6df1\u5bf9 Servlet \u7684\u7406\u89e3\u5bf9\u4e8e\u4e2a\u4eba\u7684\u6210\u957f\u4ee5\u53ca\u4e00\u4e9b\u95ee\u9898\u7684\u5206\u6790\u548c\u5b9a\u4f4d\u4f1a\u5f88\u6709\u5e2e\u52a9\u3002<\/li>\n<li>Tomcat\u548cJetty\u4e00\u822c\u4f5c\u4e3aServlet\u5bb9\u5668\u548cWeb\u670d\u52a1\u5668\u4f7f\u7528\uff0c\u6027\u80fd\u4e5f\u4e0d\u9519\uff08\u5927\u6982\u51e0\u5343 QPS\u7684\u6837\u5b50\uff09\u3002<\/li>\n<li>Netty\u4e3b\u8981\u7528\u4e8e\u5bf9\u6027\u80fd\u8981\u6c42\u6bd4\u8f83\u9ad8\u7684\u901a\u4fe1\u573a\u666f\uff0c\u5982\u679c\u5904\u7406\u7684\u597d\u7684\u8bdd\u6027\u80fd\u4f1a\u5f88\u9ad8\uff08\u51e0\u4e07\u3001\u51e0\u5341\u4e07 QPS\uff09\u3002<\/li>\n<\/ul>\n<p><strong># Java Web\u4e2d\u5e38\u89c1\u670d\u52a1\u3001\u7ec4\u4ef6\u6240\u5904\u4f4d\u7f6e<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4074\" src=\"https:\/\/ixyzero.com\/blog\/wp-content\/uploads\/2018\/08\/Netty_container_Servlet.png\" alt=\"\" width=\"1642\" height=\"944\" srcset=\"https:\/\/ixyzero.com\/wp-content\/uploads\/2018\/08\/Netty_container_Servlet.png 1642w, https:\/\/ixyzero.com\/wp-content\/uploads\/2018\/08\/Netty_container_Servlet-300x172.png 300w, https:\/\/ixyzero.com\/wp-content\/uploads\/2018\/08\/Netty_container_Servlet-768x442.png 768w, https:\/\/ixyzero.com\/wp-content\/uploads\/2018\/08\/Netty_container_Servlet-1024x589.png 1024w\" sizes=\"auto, (max-width: 1642px) 100vw, 1642px\" \/><\/p>\n<h5 id=\"id-\u6a21\u677f-\u53c2\u8003\u94fe\u63a5\uff1a\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n<ul>\n<li><a href=\"https:\/\/www.zhihu.com\/question\/21416727\">servlet\u7684\u672c\u8d28\u662f\u4ec0\u4e48\uff0c\u5b83\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f<\/a><\/li>\n<li><a href=\"https:\/\/zhuanlan.zhihu.com\/p\/25828675\">\u56fe\u89e3 &amp; \u6df1\u5165\u6d45\u51fa JavaWeb\uff1aServlet\u5fc5\u4f1a\u5fc5\u77e5<\/a><\/li>\n<li><a href=\"https:\/\/www.zhihu.com\/question\/37962386\">Jsp\u548cServlet\u6709\u4ec0\u4e48\u533a\u522b\uff1f<\/a><\/li>\n<li><a href=\"https:\/\/zhuanlan.zhihu.com\/p\/20563588\">Java Servlet\u7b80\u4ecb<\/a><\/li>\n<li><a href=\"https:\/\/zhuanlan.zhihu.com\/p\/34518314\">Java &#8211; Servlet\u7a76\u7adf\u662f\u4ec0\u4e48<\/a><\/li>\n<li><a href=\"https:\/\/www.zhihu.com\/topic\/19634546\/top-answers\">Servlet\u8bdd\u9898<\/a><\/li>\n<li><a href=\"https:\/\/www.mulesoft.com\/cn\/tcat\/tomcat-servlet\">An Introduction to Tomcat Servlet Interactions<\/a><\/li>\n<li>==<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Tomcat\">https:\/\/en.wikipedia.org\/wiki\/Apache_Tomcat<\/a><\/li>\n<li>==<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Jetty_(web_server)\">https:\/\/en.wikipedia.org\/wiki\/Jetty_(web_server)<\/a><\/li>\n<li>==<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Netty_(software)\">https:\/\/en.wikipedia.org\/wiki\/Netty_(software)<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_MINA\">https:\/\/en.wikipedia.org\/wiki\/Apache_MINA<\/a><\/li>\n<li><a href=\"http:\/\/wiki.jikexueyuan.com\/project\/java-special-topic\/netty.html\">Netty \u7cfb\u5217\u4e4b Netty \u9ad8\u6027\u80fd\u4e4b\u9053<\/a><\/li>\n<li>==<\/li>\n<li><a href=\"https:\/\/www.vatalu.com\/2018\/06\/01\/Servlet-Tomcat-Jetty-Netty-Mina-%E5%AE%83%E4%BB%AC%E9%83%BD%E6%98%AF%E4%BB%80%E4%B9%88\/\">Servlet, Tomcat, Jetty, Netty, Mina \u5b83\u4eec\u90fd\u662f\u4ec0\u4e48?<\/a><\/li>\n<\/ul>\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u56e0\u4e3aJava\u5c5e\u4e8e\u81ea\u5b66\u7684\uff0c\u4e0d\u90a3\u4e48\u7cfb\u7edf\uff0c\u6240\u4ee5\u6709\u65f6\u5019\u5728\u78b0\u5230\u4e00\u4e9b\u540d\u8bcd\u65f6\u8fd8\u4e0d\u592a\u7406\u89e3\u5b83\u7684\u542b\u4e49\u548c\u4f5c\u7528 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7,12],"tags":[637,1206,1205,58],"class_list":["post-4073","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","category-tools","tag-jetty","tag-netty","tag-servlet","tag-tomcat"],"views":14074,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=4073"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4073\/revisions"}],"predecessor-version":[{"id":4075,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4073\/revisions\/4075"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=4073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=4073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=4073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}