{"id":38544,"date":"2023-12-11T14:44:46","date_gmt":"2023-12-11T06:44:46","guid":{"rendered":"https:\/\/wx.kaifamiao.info\/?p=38544"},"modified":"2023-12-11T14:44:46","modified_gmt":"2023-12-11T06:44:46","slug":"%e8%af%b7%e8%af%b4%e6%98%8e%e4%b8%80%e4%b8%8bservlet-3%e4%b8%ad%e7%9a%84%e5%bc%82%e6%ad%a5%e5%a4%84%e7%90%86%e6%8c%87%e7%9a%84%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f","status":"publish","type":"post","link":"http:\/\/wx.kaifamiao.info\/index.php\/2023\/12\/11\/%e8%af%b7%e8%af%b4%e6%98%8e%e4%b8%80%e4%b8%8bservlet-3%e4%b8%ad%e7%9a%84%e5%bc%82%e6%ad%a5%e5%a4%84%e7%90%86%e6%8c%87%e7%9a%84%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f\/","title":{"rendered":"\u8bf7\u8bf4\u660e\u4e00\u4e0bServlet 3\u4e2d\u7684\u5f02\u6b65\u5904\u7406\u6307\u7684\u662f\u4ec0\u4e48\uff1f"},"content":{"rendered":"<p>&#8220;`&#8221;                    \u8003\u5bdf\u70b9\uff1aservlet<\/p>\n<p>\u5728Servlet 3\u4e2d\u5f15\u5165\u4e86\u4e00\u9879\u65b0\u7684\u6280\u672f\u53ef\u4ee5\u8ba9Servlet\u5f02\u6b65\u5904\u7406\u8bf7\u6c42\u3002\u6709\u4eba\u53ef\u80fd\u4f1a\u8d28\u7591\uff0c\u65e2\u7136\u90fd\u6709\u591a\u7ebf\u7a0b\u4e86\uff0c\u8fd8\u9700\u8981\u5f02\u6b65\u5904\u7406\u8bf7\u6c42\u5417\uff1f\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0c\u56e0\u4e3a\u5982\u679c\u4e00\u4e2a\u4efb\u52a1\u5904\u7406\u65f6\u95f4\u76f8\u5f53\u957f\uff0c\u90a3\u4e48Servlet\u6216Filter\u4f1a\u4e00\u76f4\u5360\u7528\u7740\u8bf7\u6c42\u5904\u7406\u7ebf\u7a0b\u76f4\u5230\u4efb\u52a1\u7ed3\u675f\uff0c\u968f\u7740\u5e76\u53d1\u7528\u6237\u7684\u589e\u52a0\uff0c\u5bb9\u5668\u5c06\u4f1a\u906d\u9047\u7ebf\u7a0b\u8d85\u51fa\u7684\u98ce\u9669\uff0c\u8fd9\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5f88\u591a\u7684\u8bf7\u6c42\u5c06\u4f1a\u88ab\u5806\u79ef\u8d77\u6765\u800c\u540e\u7eed\u7684\u8bf7\u6c42\u53ef\u80fd\u4f1a\u906d\u9047\u62d2\u7edd\u670d\u52a1\uff0c\u76f4\u5230\u6709\u8d44\u6e90\u53ef\u4ee5\u5904\u7406\u8bf7\u6c42\u4e3a\u6b62\u3002\u5f02\u6b65\u7279\u6027\u53ef\u4ee5\u5e2e\u52a9\u5e94\u7528\u8282\u7701\u5bb9\u5668\u4e2d\u7684\u7ebf\u7a0b\uff0c\u7279\u522b\u9002\u5408\u6267\u884c\u65f6\u95f4\u957f\u800c\u4e14\u7528\u6237\u9700\u8981\u5f97\u5230\u7ed3\u679c\u7684\u4efb\u52a1\uff0c\u5982\u679c\u7528\u6237\u4e0d\u9700\u8981\u5f97\u5230\u7ed3\u679c\u5219\u76f4\u63a5\u5c06\u4e00\u4e2aRunnable\u5bf9\u8c61\u4ea4\u7ed9Executor\u5e76\u7acb\u5373\u8fd4\u56de\u5373\u53ef\u3002<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<p>&lt;pre&gt;&lt;code class=&quot;&quot;language-java&quot;&quot; lang=&quot;&quot;java&quot;&quot;&gt;import<br \/>\njava.io.IOException;<br \/>\n import javax.servlet.AsyncContext;<br \/>\n import javax.servlet.ServletException;<br \/>\n import javax.servlet.annotation.WebServlet;<br \/>\n import javax.servlet.http.HttpServlet;<br \/>\n import javax.servlet.http.HttpServletRequest;<br \/>\n import javax.servlet.http.HttpServletResponse;<br \/>\n @WebServlet(urlPatterns = {&quot;&quot;\/async&quot;&quot;}, asyncSupported = true)<br \/>\n public class AsyncServlet extends HttpServlet {<br \/>\n     private static final long serialVersionUID = 1L;<br \/>\n     @Override<br \/>\n     public void doGet(HttpServletRequest req,<br \/>\nHttpServletResponse resp)<br \/>\n             throws<br \/>\nServletException, IOException {<br \/>\n         \/\/ \u5f00\u542fTomcat\u5f02\u6b65Servlet\u652f\u6301<\/p>\n<p>req.setAttribute(&quot;&quot;org.apache.catalina.ASYNC_SUPPORTED&quot;&quot;, true);<br \/>\n         final AsyncContext ctx =<br \/>\nreq.startAsync();  \/\/ \u542f\u52a8\u5f02\u6b65\u5904\u7406\u7684\u4e0a\u4e0b\u6587<br \/>\n         \/\/ ctx.setTimeout(30000);<br \/>\n         ctx.start(new Runnable() {<br \/>\n             @Override<br \/>\n             public void<br \/>\nrun() {<\/p>\n<p>\/\/ \u5728\u6b64\u5904\u6dfb\u52a0\u5f02\u6b65\u5904\u7406\u7684\u4ee3\u7801<\/p>\n<p>ctx.complete();<br \/>\n             }<br \/>\n         });<br \/>\n     }<br \/>\n }<br \/>\n&lt;\/code&gt;&lt;\/pre&gt;<\/p>\n<p>\u00a0<\/p>\n<p>&lt;pre&gt;&lt;code&gt;            &quot;&#8220;`<br \/>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;`&#8221; \u8003\u5bdf\u70b9\uff1aservlet \u5728Servlet 3\u4e2d\u5f15\u5165\u4e86\u4e00\u9879\u65b0\u7684\u6280\u672f\u53ef\u4ee5\u8ba9Serv [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-38544","post","type-post","status-publish","format-standard","hentry","category-c"],"_links":{"self":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/38544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/comments?post=38544"}],"version-history":[{"count":1,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/38544\/revisions"}],"predecessor-version":[{"id":38545,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/posts\/38544\/revisions\/38545"}],"wp:attachment":[{"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/media?parent=38544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/categories?post=38544"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/wx.kaifamiao.info\/index.php\/wp-json\/wp\/v2\/tags?post=38544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}