Servlet是java web中的動態(tài)資源,是三大組件(Servlet,Filter,Listener)之一,用于處理客戶端的請求,并作出相應,具體用法為:
在義縣等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設計制作按需網(wǎng)站策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,全網(wǎng)營銷推廣,外貿(mào)營銷網(wǎng)站建設,義縣網(wǎng)站建設費用合理。一,實現(xiàn)Servlet的三種方式:
1.實現(xiàn)javax.servlet.Servlet接口
public class ServletOne implements Servlet{
public void destroy(){}
public ServletConfig getServletConfig(){}
public String getServletInfo(){}
public void init(ServletConfig arg0) throws ServletException {}
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {}
}
(1).init()方法在Servlet創(chuàng)建時被調用
(2).destroy()方法在Servlet銷毀時創(chuàng)建
(3).service()方法每請求一次servelt調用一次
2.繼承javax.servlet.GenericServlet,并重寫其所有的抽象方法
public class ServletTwo extends GenericServlet{
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {}
}
3.繼承javax.servlet.http.HttpServlet
public class ServletFour extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
(1).doGet()處理get請求
(2).doPost()處理post請求
注:用此方法實現(xiàn)的Servlet只能處理http協(xié)議的請求
二,配置Servlet
通過以上方式定義好了一個Servlet,但此時的Servlet還不能處理客戶端請求,因為沒有給此Servlet指定處理來自客戶端的那個請求,因此要把此Servlet配置成能處理客戶端請求的Servlet。在WebContent/WEB-INF/web.xml中配置如下:
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>com.web.servlet.ServletOne</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>one</servlet-name>
<url-pattern>/one</url-pattern>
</servlet-mapping>
一個<servlet>標簽就把一個Servlet和一個名字綁定在了一起,一個<servlet-mapping>標簽就把一個servlet名字和一個路徑綁定在了一起,因此經(jīng)過此配置客戶端就可以通過訪問 http://localhost:8080/項目名/one 這一個路徑來訪問 com.web.servlet.ServletOne 這個Servlet。當然一個<servlet-mapping> 標簽也可以有多個<url-pattern>標簽,來給一個Servlet綁定多個訪問路徑,如:
<servlet-mapping>
<servlet-name>TServlet</servlet-name>
<url-pattern>/login</url-pattern>
<url-pattern>/log</url-pattern>
</servlet-mapping>
也可以在<servlet-mapping>標簽中使用通配符*來指定訪問路徑,但是*不能出現(xiàn)在路徑的中間位置如:
<url-pattern>/servlet/*</url-pattern> 對的
<url-pattern>*.do</url-pattern> 對的
<url-pattern>/*.do</url-pattern> 錯的
那么就會出現(xiàn)一個地址同時匹配一個精確的<url-pattern>和一個使用了通配符的<url-mapping>,此時會優(yōu)先選擇精確<url-mapping>所綁定的Servlet。
三,域對象
域對象是指在一定作用域被共享的對象,在Servlet中有四大域對象:ServletContext,HttpSession,ServletRequest,PageContext,注意:PageContext是jsp的九大內置對象之一,因為jsp是一個特殊的Servlet,故這里將PageContext也算在內。域對象通用的操作屬性的方法為:
void setAttribute(String name,Object obj) 網(wǎng)域對象中保存一個屬性
Object getAttribute(String name) 從域對象中獲取一個屬性值
void removeAttribute(String name) 從域對象中移除一個屬性
四,獲取資源文件
1.獲取資源的真實路徑:
ServletContext context = getServletContext()
String path = context.getRealPath("/a.txt")
2.獲取資源流:
InputStream in = context.getResourceAsStream("/a.txt")
注:以上參數(shù)必須以 / 開頭,表示相對于項目
3.獲取類路徑下的資源
對于web項目來說,當把項目發(fā)布后就沒有 src 這個目錄,所以在拿類路徑下的資源文件時,就不能用 new InputStream("") 這種方式來獲取。此時src目錄就相當于WebContent/WEB-INF/classes目錄,可以用兩種方式來獲取
(1).類.getResourceAsStream(String path)
path以 / 開頭表示路徑相對于 classes
path不以 / 開頭表示路徑相對于當前類
(2).類.getClassLoader().getResourceAsStream(String path)
此時path只想對于classes
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。
網(wǎng)站名稱:我對Servlet的理解-創(chuàng)新互聯(lián)
轉載注明:http://www.rwnh.cn/article38/jdhpp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、品牌網(wǎng)站建設、網(wǎng)站導航、網(wǎng)站改版、外貿(mào)建站、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容