大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Javaweb學(xué)習(xí)視頻全集:Servlet實現(xiàn)方式

Javaweb學(xué)習(xí)視頻全集:Servlet實現(xiàn)方式

更新時間:2020-03-06 10:37:10 來源:動力節(jié)點 瀏覽2287次


  Java編寫的服務(wù)器端程序,具有獨立于平臺和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動態(tài)Web內(nèi)容。使用Servlet,可以收集來自網(wǎng)頁表單的用戶輸入,呈現(xiàn)來自數(shù)據(jù)庫或者其他源的記錄,還可以動態(tài)創(chuàng)建網(wǎng)頁。


Javaweb學(xué)習(xí)視頻全集:Servlet實現(xiàn)方式


  二、實現(xiàn)方式


  1、繼承HttpServlet


  API簡介


  繼承自GenericServlet.遵守HTTP協(xié)議實現(xiàn),以設(shè)計模式的角度看,HttpServlet擔(dān)任抽象模板角色,模板方法:由service()方法擔(dān)任。基本方法:由doPost()、doGet()等方法擔(dān)任。service()方法流程,省略了部分判斷邏輯。該方法調(diào)用七個do方法中的一個或幾個,完成對客戶端請求的響應(yīng)。這些do方法需要由HttpServlet的具體子類提供,這種API封裝是典型的模板方法模式。


  代碼案例


  publicclassServletOneImplextendsHttpServlet{


  @Override


  protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)


  throwsServletException,IOException{


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


  response.getWriter().print("執(zhí)行:doGet");


  }


  @Override


  protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)


  throwsServletException,IOException{


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


  response.getWriter().print("執(zhí)行:doPost");


  }


  }


  2、繼承GenericServlet


  API簡介


  Servlet接口和ServletConfig接口的實現(xiàn)類.一個抽象類.其中的service方法為抽象方法。


  代碼案例


  publicclassServletTwoImplextendsGenericServlet{


  @Override


  publicvoidservice(ServletRequestservletRequest,ServletResponseservletResponse)


  throwsServletException,IOException{


  HttpServletResponseresponse=(HttpServletResponse)servletResponse;


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


  response.getWriter().print("執(zhí)行:service");


  }


  }


  3、實現(xiàn)Servlet接口


  API簡介


  Servlet是一個接口,其中包含init、getServletConfig、service、getServletInfo、destroy幾個核心方法。


  代碼案例


  publicclassServletThreeImplimplementsServlet{


  @Override


  publicvoidinit(ServletConfigservletConfig)throwsServletException{


  servletConfig.getServletName();


  System.out.println("init被調(diào)用...");


  }


  @Override


  publicvoidservice(ServletRequestservletRequest,ServletResponseservletResponse)


  throwsServletException,IOException{


  System.out.println("ThreadId:"+Thread.currentThread().getId());


  System.out.println("service被調(diào)用...");


  HttpServletResponseresponse=(HttpServletResponse)servletResponse;


  response.getWriter().print("Servlet.Life");


  }


  @Override


  publicvoiddestroy(){


  System.out.println("destroy被調(diào)用...");


  }


  @Override


  publicServletConfiggetServletConfig(){


  System.out.println("getServletConfig被調(diào)用...");


  returnnull;


  }


  @Override


  publicStringgetServletInfo(){


  System.out.println("getServletInfo被調(diào)用...");


  returnnull;


  }


  }


  三、生命周期


  加載和實例化


  當(dāng)Servlet容器啟動或客戶端發(fā)送請求時,Servlet容器會查找是否存在該Servlet實例,若存在,則直接讀取該實例響應(yīng)請求;如果不存在,就創(chuàng)建一個Servlet實例(屬于單例設(shè)計模式)。load-on-startup可以配置創(chuàng)建時序。


  初始化:init()


  實例化后,Servlet容器將調(diào)用init方法一次,初始化當(dāng)前Servlet。


  服務(wù):service()


  初始化后,Servlet處于響應(yīng)請求的就緒狀態(tài)。當(dāng)接收到客戶端請求時,調(diào)用service()的方法處理客戶端請求,HttpServlet的service()方法會根據(jù)不同的請求調(diào)用不同的模板方法。


  銷毀:destroy()


  當(dāng)Servlet容器關(guān)閉時,Servlet實例也隨時銷毀。關(guān)閉Tomcat服務(wù)時可以通過日志打印看到該方法的執(zhí)行。


  四、運行配置


  1、web.xml配置


  <servlet>


  <servlet-name>servletOneImpl</servlet-name>


  <servlet-class>com.node01.servlet.impl.ServletOneImpl</servlet-class>


  </servlet>


  <servlet-mapping>


  <servlet-name>servletOneImpl</servlet-name>


  <url-pattern>/servletOneImpl</url-pattern>


  </servlet-mapping>


  <servlet>


  <servlet-name>servletTwoImpl</servlet-name>


  <servlet-class>com.node01.servlet.impl.ServletTwoImpl</servlet-class>


  </servlet>


  <servlet-mapping>


  <servlet-name>servletTwoImpl</servlet-name>


  <url-pattern>/servletTwoImpl</url-pattern>


  </servlet-mapping>


  <servlet>


  <servlet-name>servletThreeImpl</servlet-name>


  <servlet-class>com.node01.servlet.impl.ServletThreeImpl</servlet-class>


  </servlet>


  <servlet-mapping>


  <servlet-name>servletThreeImpl</servlet-name>


  <url-pattern>/servletThreeImpl</url-pattern>


  </servlet-mapping>


  請求:http://localhost:6003/servletOneImpl測試。


  servlet-name:Servlet注冊名稱。


  servlet-class:Servlet全路徑類名。


  serlvet-mapping:同一個Servlet可以被映射到多個URL上。


  url-pattern:Servlet訪問的映射路徑。


  2、線程池運行


  觀察上述第三種Servlet實現(xiàn)方式的日志打印:Thread.currentThread().getId());。


  ThreadId:32


  ThreadId:33


  ThreadId:32


  ThreadId:31


  ThreadId:32


Javaweb學(xué)習(xí)視頻全集:Servlet實現(xiàn)方式


      以上就是動力節(jié)點Java培訓(xùn)機(jī)構(gòu)小編介紹的“Javaweb學(xué)習(xí)視頻全集:Servlet實現(xiàn)方式”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 97影院秋霞国产精品 | 天天干b | 久久一区 | 777xxxxx欧美| 热99在线| 国产成人综合网在线观看 | 国产亚洲精品一区二区三区 | 高清一区二区 | 九九在线 | 97欧美精品一区二区三区 | 一级片免费看 | 国产精品视频专区 | 99在线观看精品 | 在线免费午夜视频 | 久久99热这里只有精品 | 毛片免费看看 | 国产成人久久综合热 | 思99re久久这里只有精品首页 | 亚洲第一成年免费网站 | 国产精品视频ccav | 精品视频在线播放 | 欧美一级视频在线观看 | 亚洲精品久久久久久婷婷 | 国产成人综合在线视频 | 手机看片国产永久1204 | 真人午夜a一级毛片 | 久久中文在线 | 手机看片亚洲 | 日本高清免费不卡毛片 | 欧美亚洲图片 | 日日摸夜夜摸人人嗷嗷叫 | 可以看美女隐私的网站 | 国产亚洲综合在线 | 欧洲a级毛片 | 亚洲 欧美 中文字幕 | 久久久欧美综合久久久久 | 欧美一级免费大片 | 日本一级www乱码在线 | 91情国产l精品国产亚洲区 | 日日操夜夜操天天操 | 久久99热这里只有精品 |