亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Servlet學習 ——Web部分第十天

2019-11-14 08:51:13
字體:
來源:轉載
供稿:網友

Servlet學習 ——Web部分第十天

小知識點

Servlet是java web 的三大組件之一,它屬于動態資源。java web 的三大組件有Servlet,Filter,Listener。常見的端口號:http/80 ; smtp/25 ; pop3/110 ; ftp/23 ; https/443

1. Servlet簡介

Servlet是用來完成客戶端向服務器發出請求的處理行為的編寫。即接受請求數據,處理請求,完成響應。實現Servlet的方式有我們自己編寫,通過繼承或實現接口的方式有關接口和類信息:javax.servlet.Servlet 接口 ; javax.servlet.GenericServlet 抽象類 ;javax.servlet.http.HttpServlet 抽象類

特性

Servlet是單例類,可以實現多個Servlet類,但每個類只有一個對象。線程不安全,它存在多個客戶端訪問同一個Servlet資源,所以不要在Servlet類中實現可以同時讀和寫的方法 。Servlet由我們編寫,但是由服務器去創建對象,并且由服務器來調用相應的方法。

寫完后的Servlet實現要在WEB-INF下的web.xml中編寫xml信息

<servlet> <!--servlet標簽中存放的信息就是ServletConfig的信息,并且通過以下方法獲取關鍵的信息--> <!--public String getInitParameter(String name) 通過指定的名稱獲取指定初始化參數的值--> <!--public Enumeration getInitParameterNames() 獲取所有初始化參數的名稱 --> <!--public ServletContext getServletContext()獲取Servet上下文對象 --> <!--public String getServletName() :用于獲取servlet-name標簽下的內容--> <!--servlet-name標簽是自定義訪問名稱,用于servlet-mapping標簽中的servlet-name標簽來相匹配--> <!--servlet-class 中存放的應是classes目錄下實現的MySerlevt的類名--> <!--init-param標簽下設置的是初始化參數--> <!--load-on-startup表示當服務器啟動時就訪問該Servlet參數為多個Servlet標簽時的執行順序--> <servlet-name>abc</servlet-name> <servlet-class>包名.MyServlet</servlet-class> <load-on-startup>0</load-on-startup> <init-param> <param-name>p1</param-name> <param-value>v1</param-value> </init-param> <init-param> <param-name>p2</param-name> <param-value>v2</param-value> </init-param><servlet><servlet-mapping> <servlet-name>abc</servlet-name> <!--url-pattern 決定了當服務器訪問該Servlet的路徑名稱,可以為多個標簽常用的標簽表達方式如下三種--> <!--通配符*只能出現在末尾或者開頭--> <!--表示serlevtpath地址下的的所有路徑對應此servlet--> <url-pattern>/servletpath/*</url-pattern> <!--表示對應的擴展名為.xxxx的路徑對應此servlet--> <url-pattern>*.xxx</url-pattern> <!--表示所有路徑都對應此servlet--> <url-pattern>/*</url-pattern></servlet-mapping>

通過實現Servlet接口實現MyServlet

import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class MyServlet implements Servlet { @Override public void destroy() { //該方法會在Servlet對象銷毀之前執行,并且只執行一次。 } @Override public ServletConfig getServletConfig() { //獲取Servlet的配置信息 return null; } @Override public String getServletInfo() { //獲取Servlet的信息 return null; } @Override public void init(ServletConfig config) throws ServletException { //由Tomcat服務器來調用并且只調用一次 //該方法會在Servlet對象創建之后馬上執行,并且只執行一次。 } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //該方法會被多次調用,用于處理每次發出的請求,并做出回應或處理。 }}

通過實現GenericServlet接口實現MyServlet

GenericServlet該類視為了方便程序員對Servlet接口的重復操作的編寫創建的抽象類以下代碼即為GenericServlet功能的主要實現。MyServlet就可以模擬GenericServlet存在的目的當繼承GenericServlet類時,重寫無參的init()方法即可。//手寫GenericServlet類的源碼實現import java.io.IOException;import java.util.Enumeration;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class MyServlet implements Servlet,ServletConfig{ //創建ServletConfig對象,方便服務調用, PRivate ServletConfig config; @Override public void destroy() { } @Override public ServletConfig getServletConfig() { return this.config; } //如下四個方法是是實現的ServletConfig接口中的方法 public String getInitParameter(String name) { return getServletConfig().getInitParameter(name); } public Enumeration getInitParameterNames() { return getServletConfig().getInitParameterNames(); } public ServletContext getServletContext() { return getServletConfig().getServletContext(); } public String getServletName() { return getServletConfig().getServletName(); } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig servletConfig) throws ServletException { this.config = servletConfig; init(); } //通過創建無參init方法方便子類繼承并能夠正常的享有父類擁有的信息 public void init() throws ServletException { } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { }}

通過繼承HttpServlet接口實現MyServlet

HttpServlet是專門對GenericServlet類中ServletRequest, ServletResponse 的參數進行強轉來處理Http的請求繼承該類后只需實現其中的doGet()和doPost()方法即可如果沒有實現其中的一種方法而用該種方式請求瀏覽器則瀏覽器會報405狀態碼,表示客戶端向服務器請求方式的錯誤。package text.web.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }}

2.ServletContext關鍵類

一個項目只有一個ServletContext對象,他的創建和銷毀是對應服務器的創建和銷毀。

它可以被個Servlet來獲取該對象,它可以被用來給多個Servlet對象傳遞數據。

獲取ServletContext對象的方式

ServletConfig中的getServletContext() ;GenericServlet中的getSerletContext() ;Httpsession中的getSerletContext() ;SerletContextEvent中的getSerletContext() ;

ServletContext是javaweb的四大域對象之一

四大域對象分別是: PageContext;ServletRequest;HttpSession ;ServletContext所有域對象內部有一個Map。用來儲存數據

ServletContext操作數據的方法

void setAttribute(String name, Object object) 保存一個域信息,和map相同的是相同的name會覆蓋object ;Object getAttribute(String name) 得到name的域信息void removeAttribute(String name) 刪除name的鍵值對信息;Enumeration getAttributeNames() 得到所有的name的域信息

ServletContext的對象可以獲取真實的路徑

可以使用ServletContext來獲取web應用下的資源文件,String realPath = servletContext.getRealPath("/WEB下的文件") ;//realPath返回的是帶盤符的真實路徑可以使用ServletContext來獲取web應用下的資源流,InputStream in = servletContext.getResourceAsStream("/WEB下的文件") ;可以使用ServletContext來獲取web目錄下的所有資源Set set = servletContext.getResourcePaths("/WEB下的文件") ;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利视频网| 国产99久久久欧美黑人| 欧美视频一区二区三区…| 中文字幕少妇一区二区三区| 久久亚洲精品一区二区| 久久精品国产一区二区电影| 3344国产精品免费看| 成人一区二区电影| 欧美自拍视频在线观看| 亚洲精品国精品久久99热一| 亚洲国产精品推荐| 九九久久综合网站| 亚洲人线精品午夜| 中文字幕亚洲欧美一区二区三区| 国产亚洲精品久久久久动| 国产一区二中文字幕在线看| 午夜精品福利在线观看| 亚洲第一男人天堂| 精品国产一区二区三区久久狼5月| 成人春色激情网| 久久成人这里只有精品| 亚洲精品国产suv| 久久国产精品影片| 成人啪啪免费看| 亚洲另类欧美自拍| 国内精品视频久久| 成人黄色在线免费| 国内精品一区二区三区四区| 亚洲国产精品成人精品| 久久精品91久久久久久再现| 欧美老妇交乱视频| 国产ts人妖一区二区三区| 5566日本婷婷色中文字幕97| 国产精品美女视频网站| 色偷偷91综合久久噜噜| 97香蕉超级碰碰久久免费的优势| 成人欧美一区二区三区黑人| 91精品国产91久久| 欧美又大又硬又粗bbbbb| 在线观看欧美日韩国产| xvideos亚洲人网站| 国产美女主播一区| 欧美在线观看一区二区三区| 欧美老女人在线视频| 中文日韩在线视频| 成人av在线天堂| 久久视频在线视频| 麻豆乱码国产一区二区三区| 国产亚洲欧美另类中文| 亚洲免费av网址| 久久久精品国产| 日本19禁啪啪免费观看www| 亚洲欧美国产精品专区久久| 日韩成人在线观看| 欧美成人免费在线视频| 国产精品久久久久久久久免费看| 国产美女精品视频免费观看| 国产精品老牛影院在线观看| 欧美精品videos| 欧美成aaa人片在线观看蜜臀| 欧美成人精品一区二区三区| 欧美色视频日本高清在线观看| 国产黑人绿帽在线第一区| 久久精品国产成人精品| 欧美俄罗斯性视频| 欧美一区三区三区高中清蜜桃| 色偷偷888欧美精品久久久| 国产一区深夜福利| 国产主播精品在线| 精品国产91久久久久久老师| 亚洲变态欧美另类捆绑| 欧美电影免费观看大全| 久久久久这里只有精品| 欧美日韩国产精品一区二区三区四区| 久久影视电视剧凤归四时歌| 97精品视频在线播放| 国产精品7m视频| 狠狠躁夜夜躁久久躁别揉| 欧美一性一乱一交一视频| 中文字幕精品—区二区| 亚洲国产精久久久久久久| 日韩大片免费观看视频播放| 国产一区二区成人| 国产最新精品视频| 亚洲精品国产拍免费91在线| 久久乐国产精品| 色偷偷91综合久久噜噜| 中文在线资源观看视频网站免费不卡| xxxxxxxxx欧美| 日韩色av导航| 一区二区欧美日韩视频| 久久精品国产69国产精品亚洲| xvideos亚洲人网站| 国产激情久久久| 55夜色66夜色国产精品视频| 久久久久久综合网天天| 欧美一级片一区| 欧美国产一区二区三区| 高清在线视频日韩欧美| 亚洲国产精品电影| 亚洲欧美一区二区三区情侣bbw| 色狠狠av一区二区三区香蕉蜜桃| 91精品国产综合久久香蕉922| 欧美日韩精品国产| 一本色道久久综合狠狠躁篇的优点| 欧美成人免费在线视频| 精品小视频在线| 亚洲欧美另类人妖| 国产精欧美一区二区三区| 亚洲另类欧美自拍| 911国产网站尤物在线观看| 欧美精品九九久久| 亚洲视频在线看| 国产精品一二三在线| 狠狠躁夜夜躁人人躁婷婷91| 久久久久久91香蕉国产| 最近中文字幕mv在线一区二区三区四区| 在线播放国产一区中文字幕剧情欧美| 亚洲成人网在线观看| 亚洲第一在线视频| 国产精品久久久久久久天堂| 欧美超级乱淫片喷水| 亚洲精品日产aⅴ| 蜜臀久久99精品久久久久久宅男| 亚洲奶大毛多的老太婆| 日韩国产欧美精品在线| 自拍亚洲一区欧美另类| 久久综合88中文色鬼| 精品欧美国产一区二区三区| 久久久亚洲精选| 丰满岳妇乱一区二区三区| 日韩电影在线观看永久视频免费网站| 欧美影院成年免费版| 国产精品免费一区| 日韩小视频网址| 美女视频黄免费的亚洲男人天堂| 欧美一性一乱一交一视频| 国产精品羞羞答答| 爽爽爽爽爽爽爽成人免费观看| 日韩美女写真福利在线观看| 国产欧美精品一区二区| 欧美丰满少妇xxxx| 国产亚洲人成a一在线v站| 日韩av中文字幕在线免费观看| 中文字幕亚洲综合久久| 国a精品视频大全| 久久精品国产亚洲精品2020| 欧美日韩国产限制| 最近的2019中文字幕免费一页| 久久久免费在线观看| 最近中文字幕日韩精品| 日韩精品视频在线播放| 欧美成人激情视频免费观看| 91免费视频网站| 欧美激情a在线| 成人h视频在线观看播放| 亚洲精品国产精品国自产观看浪潮| 国产自摸综合网| 91在线高清免费观看| 热99精品里视频精品| 狠狠躁夜夜躁人人爽天天天天97| 国产成人精品免费久久久久| 欧美xxxx做受欧美| 91中文在线观看|