zoukankan      html  css  js  c++  java
  • Week3——文档代码分析

    该段代码代码显示了不使用异步处理的基本servlet:

    @WebServlet(urlPatterns={"/syncservlet"})

    public class SyncServlet extends HttpServlet {

      private MyRemoteResource resource;

      @Override

      public void init(ServletConfig config) {

        resource = MyRemoteResource.create("config1=x,config2=y");

       }
      @Override

      public void doGet(HttpServletRequest request, HttpServletResponse response) {

        response.setContentType("text/html;charset=UTF-8");

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

        String result = resource.process(param);
        /* ... print to the response ... */

       }

    }

    下面的代码使用异步处理显示同一servlet:

    @WebServlet(urlPatterns={"/asyncservlet"}, asyncSupported=true)

    public class AsyncServlet extends HttpServlet {

       /* ... Same variables and init method as in SyncServlet ... */
      @Override

       public void doGet(HttpServletRequest request, HttpServletResponse response) {

         response.setContentType("text/html;charset=UTF-8");

         final AsyncContext acontext = request.startAsync();

         acontext.start(new Runnable() {

           public void run() {

             String param = acontext.getRequest().getParameter("param");

             String result = resource.process(param);

             HttpServletResponse response = acontext.getResponse();

             /* ... print to the response ... */ acontext.complete();

         }

    }

    区别:

      AsyncServlet 添加了asyncSupported=true是属于 @WebServlet 注释的。

      1、request.startAsync()使 request 请求使异步处理;  response 在 service方法结束后没有发送到客户端。

      2、acontext.start(new Runnable() {...}) 从容器中获取一个新线程。

      3、内部类的run()方法的代码在新线程执行。内部类可以访问异步上下文以从请求读取参数并写入响应。调用异步上下文的方法有complete()响应发送给客户端。

  • 相关阅读:
    Ajax配合Node搭建服务器,运用实例
    mapMutations m
    seaJS使用教程
    节流函数
    【Gin-API系列】Gin中间件之日志模块(四)
    【Gin-API系列】配置文件和数据库操作(三)
    【Gin-API系列】请求和响应参数的检查绑定(二)
    【Gin-API系列】需求设计和功能规划(一)
    【ansible】api 调用出现ssh交互式输入
    【ansible】api 调试
  • 原文地址:https://www.cnblogs.com/xiaojing0628/p/8650351.html
Copyright © 2011-2022 走看看