Servlet詳解

1.1 Servlet API概述:


Servlet API中四個java包 


javax.servlet    


javax.servlet.http   包括定義Http Servlet與Servlet容器之間契約的類和接口


javax.servlet.annotation   包含對Servlet Filter  和Listener進行標注的注解  


javax.servlet.description   包含為WEB應用程序的配置信息提供編程式訪問的類型



javax.servlet 包


Servlet類通過直接實現Servlet接口或者間接拓展一個實現servlet接口的類 


之後Servlet容器會把Servlet類加載到内存中。



1.2  Servlet

Servlet接口定義了5隔方法:

void init(ServletConfig config)

void service(ServletRequest req,ServletResponse resp)

void destroy()

String getServletInfo()

ServletConfig getServletConfig()


Servlet的生命周期:

init: 衹會在第一次請求Servlet時,Servlet容器會調用這個方法。通常用於初始化


service:每次請求Servlet時,Servlet容器都會調用這個方法

這個方法傳入一個ServletRequest實例:封裝當前的HTTO請求,

一個ServletResponse實例:封裝當前用戶的HTTP響應


destroy:要銷毀Servlet時,Servlet容器就會調用這個方法,通常發生在卸載應用程序或者關閉Servlet容器時。通常在這裏關閉一下資源



getServletInfo:該方法返回Servlet的描述



getServletConfig:返回由Servlet容器傳給init方法的ServletConfig


1.3  應用程序的目錄結構


放在應用程序目錄的任何資源,用戶都可以通過輸入該資源的URL直接訪問,在WEB-INF目錄下面的程序,不能被用戶訪問,衹能被Servlet訪問



1.4  ServletRequest

對於每一個HTTP請求,Servlet容器都會創建一個ServletRequest實例,并將它傳給Servlet的service方法


ServletRequest接口的方法:

int getContentLength()   返回請求主體的字節數

String  getContentType()   返回請求主體的MIME類型

String getParameter(String name)  返回請求參數的值


1.5  ServletResponse

在調用一個Servlet的service方法時,Servlet容器會創建一個ServletResponse實例


ServletResponse 的getWrite方法 返回java.io.PrintWrite 



1.6 ServletConfig

Servlet容器初始化Servlet時,Servlet容器會將ServletConfig傳給Servlet的init方法


ServletConfig封裝可以通過@WebServlet 或者部署描述符傳給Servlei的配置信息


ServletConfig 調用getInitParameter方法,獲取初始化信息


ServletConfig 的getServletContext方法,獲取從Servlet内部獲取ServletContext

ServletContext  表示Servlet應用程序,每個WEB應用程序衹有一個ServletContext

保存在ServletContext中的對象稱爲屬性(attribute)

ServletContext方法:

getAttribute    getAttributeNames    setAttribute  removeAttribute




2.1 HTTP Servlet

這個service方法接收的是HttpServletRequest  HttpServletResponse 實例

   

HttpServletRequest  HttpServletResponse可以通過ServletRequest ServletResponse向下轉型得到

例如:HttpServletRequest=(HttpServletRequest)ServletRequest

 

HttpServlet  的service 方法會查看通常用於發送請求的HTTP方法,

並調用(doGet,doPost,doHead,doPut,doTrace,doOption和doDelete)的HTTP方法



2.2 HttpServletRequest

表示HTTP環境中的Servlet請求,繼承javax.servlet.ServletRequest接口,並增加幾個方法


String getContextPath()   返回表示請求context的請求URI部分

String getHeader(String name)   返回指定的HTTP標頭的值

Cookie[]    getCookies()    返回一個Cookie對象數組

String getMethod()  返回發出這條請求的HTTP方法的名稱

HttpSession getSession()  返回與這個請求有關的session對象,如果沒有找到,則創建新的session對象


2.3  HttpServletResponse  表示HTTP環境下的Servlet響應


void addCookie(Cookie cookie)   給這個響應對象添加Cookie

void addHeader(String name,String value)   給這個響應對象添加標頭

void sendRedirect(String location)   發送響應代號,將瀏覽器重定向到指定的位置




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值