国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

了解Servlet

2019-11-18 14:59:09
字體:
來源:轉載
供稿:網友

  什么是servlets
?明白Servlet API以及與CGI相比較
?知道在servlet的主要的類的使用。
?能夠實現簡單的servlets


?什么是servlet?
?一般地,服務器端java應用程序擴展了Web服務器的功能。
.在服務器上可以完整地運行
.沒有必要下載到瀏覽器
.代替CGI腳本
?Servlets的優勢在于:
.方便性與靈活性
.安全性
.執行效率

安全性優勢
?在服務器的范圍中調用
?能夠約束servlet的調用
?在安全體系中能夠成為單一(全局)信號的一部分


性能優勢
?Run in the same context as application server
?執行并且駐留在內存中
?有請求時提前被裝入或裝入
?通過HTTP請求維持對話
?減輕后置系統的負擔
?多線程
?可伸縮于多處理器以及多機種系統(IBM WebSphere Performance Pack)

一般的Servlet調用
?客戶建立一個Web服務請求,命名為一個Servlet,就如同URL的一部分
?Web服務器向由一個servlet類的對象所定位的Servlet引擎發送一個請求
?servlet引擎調用一個Servlets服務方法:

瀏覽器(客戶)<====URL請求=====>Web服務器<===>servlet對象(應用程序服務器)


Java Servlet 應用程序接口API
?JSDK包括了兩個包:
javax.servlet
javax.servlet.http

javax.servlet.Servlet
實現
javax.servlet.GenericServlet A

javax.servlet.http.HttpServlet A

Servlet
?表現一項服務
?一般通過URL請求
?Servlets通過應用程序服務器被裝入
?在服務的初始化階段(假如是預裝入)
?在客戶端首次請求時
?在servlet重新裝入時

servlet的生命周期
?在裝入時init()方法被調用
?僅這一次
?當每個客戶發出請求時,service()方法被調用
?當它被卸載時,destroy()方法被調用

init()

service()

destroy()


HTTP Servlet
?一個HTTP-specific請求處理器
?加入兩個HTTP-specific的方法
?doGet()--處理一個GET請求(URL)
?doPost()--處理一個POST請求(Html)
?子類代替了這兩個信息并且可能代替init()和destroy()
?doGet()和doPost()作這些工作并且被service()調用


請求與響應
?service(),doGet()和doPost()方法都具體有兩個參數:
?HttpServletRequest--提供請求數據(參數)Httpsession信息等訪問。
?HttpServletResponse--提供答應servelt向發出請求的客戶的響應的服務
?大多數servlet程序是用來讀出請求并且寫入響應


HttpServletResponse
?向客戶提供通訊的通道
?答應servlet返回內容并且/或者是錯誤
?設置內容頭(類型,長度......)
?重定向服務器以返回一個指的URL

應答協議
?getWriter()
?返回一個輸出的PRintWriter
?setContentType(String type)
?為這個響應設置內容的類型
?類型是MIME型
?sendRedirect(String anURL)
?重定向瀏覽器到一個新的URL


簡單的servelt

public class MyServlet extends HttpServlet {
public void doGet( HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
// get stream to output HTML on!
res. setContentType(" text/ html");
PrintWriter out = res. getWriter();

// send out a simple banner
out. println("< HTML>< BODY>");
out. println("< h1> Hello World!</ h1>");
out. println("</ BODY></ HTML>");
}
}

HttpServletRequest
?提供客戶請求
?"Getters"請求的特征,比如:
?請求頭部,內容類型,長度,方法....
?請求URL如同一個String
?Servlet"path"
?客戶安全性類型
?訪問請求參數(通過name)
?請求中,數據在參與對象中的共享范圍


請求協議
?getParmeterNames()
?在HTML頁上,返回一個的枚舉的參數
?getParmeterValues(String name)
?返回multi-valued參數的值
?getParameter(String name)
?返回一個指定的命名的參數的值
?getReader()
?返回BufferedReader到輸入視圖

案例:
<P> Please fill out this form with your name.
Thanks!
<FORM METHOD=" POST"
ACTION="/ servlet/ NameServlet">
<P> Please enter your name:
<P> First name: <INPUT NAME=" first" TYPE=" TEXT"
SIZE=" 12" MAXLENGTH=" 20">
Surname: <INPUT NAME=" surname" TYPE=" TEXT"
SIZE=" 15" MAXLENGTH=" 25">
<P> Thank you! <INPUT TYPE=" SUBMIT"> <INPUT
TYPE=" RESET">
</ FORM>


讀入一個post
public void doPost( HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{

Enumeration enum = req. getParameterNames();
while (enum. hasMoreElements()) {
String name = (String) enum. nextElement();
String value = req. getParameter( name);
//… do something with each pair...
}
}

調用servelet
最普遍使用的調用HttpServlet是通過類名(classname)比如:
http://www.ibm.com/servlets/com.ibm.a.Myservlet

?"load/run by classname"的支持通過另一個稱為"Invoker"的servlet所提供
?"Invoker"servlet試圖找到servlet的類的路徑
?考慮到會有無名的servlet,一個servlet用這種方法裝入運行
在WebSphere中的servlet
?另一方面,大多數的servlet引擎支持servlet通過名字注冊
?被使用的參數可以初始化
?參數約束servlet的行為
?一個servlet可以提供不同的服務(在不同的"short names")
?參數在init()方法中使用
?答應servlet被預裝入
?通過RequestDispatcher,答應簡單定位
?答應servlet被保護

摘要
?我們已經看到Servlets的優勢大于CGI
?安全性,靈活性,效率
?我們已經介紹了Servlet的基本類和接口
?Servlets,GenericServlet,HttpServlet,HttpServletRequest,HttpServletResponse


VisulalAge for Java 的復習
?首先,需要知道:
?IBM VisualAge for Java 基本概念
?IDE
?Scrapbook
?Debugger
?VisualAge for Java與WebSphere之間的關系
?VisualAge for Java:

?Visual Builders
?Visual Application Builder
?Enterprise access Builder
?Data,CICS,RMI,C++
? Many others
工具:
?IDE
?AppletViewer
?Smart Guides
?Debugger
?Browsers
?Scrapbook
類庫
?JDK1.1.7
?JDK1.2
?IBM Enterprise Connectivity
編譯器和虛擬機
?Incremental
?Java to byte code
?Byte code to machine code translation
?Multiple VMs
部件:
? JavaBeans
?EJB develpement environment
?WebSphere Test environment
技術支持
?Integrated team environment
?Scaleable

集成開發環境
?組織治理項目,類,方法
?組隊開發--聚寶庫
?導入及導出類文件到開發環境同Java文件一樣
?優化編譯
?視圖:項目,類,界面,所有的問題
?搜索,聰明向導
?剪貼本,Debugger

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤冈县| 永寿县| 白朗县| 安泽县| 当涂县| 西贡区| 泸州市| 葵青区| 垫江县| 乌拉特中旗| 蓝田县| 凤庆县| 宁陵县| 天水市| 彝良县| 开封市| 清丰县| 横峰县| 西华县| 溧水县| 循化| 胶南市| 隆化县| 聂拉木县| 治多县| 丹棱县| 库伦旗| 安化县| 格尔木市| 漾濞| 定兴县| 获嘉县| 旬邑县| 万山特区| 滨海县| 长丰县| 郯城县| 库尔勒市| 沂源县| 静宁县| 饶河县|