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

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

Servlet一(web基礎學習筆記二十)

2019-11-14 22:51:28
字體:
來源:轉載
供稿:網友
Servlet一(web基礎學習筆記二十)一、Servlet簡介

  Servlet是sun公司提供的一門用于開發動態web資源的技術?! un公司在其API中提供了一個servlet接口,用戶若想用發一個動態web資源(即開發一個java程序向瀏覽器輸出數據),需要完成以下2個步驟:  1、編寫一個Java類,實現servlet接口。  2、把開發好的Java類部署到web服務器中。  按照一種約定俗成的稱呼習慣,通常我們也把實現了servlet接口的java程序,稱之為Servlet

二、ServletAPI

三、Servlet的方法

四、Servlet的運行

Servlet程序是由WEB服務器調用,web服務器收到客戶端的Servlet訪問請求后: ?、賅eb服務器首先檢查是否已經裝載并創建了該Servlet的實例對象。如果是,則直接執行第④步,否則,執行第②步?! 、谘b載并創建該Servlet的一個實例對象?! 、壅{用Servlet實例對象的init()方法?! 、軇摻ㄒ粋€用于封裝HTTP請求消息的HttpServletRequest對象和一個代表HTTP響應消息的HttpServletResponse對象,然后調用Servlet的service()方法并將請求和響應  對象作為參數傳遞進去?! 、軼EB應用程序被停止或重新啟動之前,Servlet引擎將卸載Servlet,并在卸載之前調用Servlet的destroy()方法。

五、Servlet生命周期

其中,加載和實例化,初始化,銷毀都只進行一行

五、Serlvet部署5.1、新建類Myservlet3繼承HttpServlet

重寫doGet,doPost,destroy(),init方法

package com.pb.servletdemo;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Myservlet3 extends HttpServlet {    @Override    PRotected void doGet(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        System.out.println("doGet方法被調用");    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        System.out.println("doPost方法被調用");    }    /*@Override    protected void service(HttpServletRequest arg0, HttpServletResponse arg1)            throws ServletException, IOException {        // TODO Auto-generated method stub        super.service(arg0, arg1);    }*/    @Override    public void destroy() {        System.out.println("Servlet銷毀,destroy方法被調用");    }    @Override    public void init(ServletConfig config) throws ServletException {        System.out.println("Servlet初始化,init方法被調用");        String initParam=config.getInitParameter("charSetContent");        System.out.println(initParam);            }}
5.2、在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>servletdemo</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>  <!-- 首先是servlet標簽 -->  <servlet>  <!-- 指定servlet的名字 可以與建立的servlet名字不一樣,別名-->  <servlet-name>myserlvet</servlet-name>  <!-- servlet的類名   包名.類名的完整路徑-->  <servlet-class>com.pb.servletdemo.Myservlet3</servlet-class>  <!-- 初始參數 -->  <init-param>  <!-- 設置字符集 -->  <param-name>charSetContent</param-name>  <!--值  -->  <param-value>utf-8</param-value>  </init-param>  </servlet>  <!-- 截獲請求 servlet映射-->  <servlet-mapping>  <!-- 些servlet-name要與上方的servlet-name名字一樣不然會報錯 -->  <servlet-name>myserlvet</servlet-name>  <!-- 一個servlet可以 有多個url-pattern-->  <!-- 精確匹配 -->  <url-pattern>/myservlet3</url-pattern>  <!-- 加上虛擬目錄 -->  <url-pattern>/demo/myservlet3</url-pattern>  <!-- 通配符來配置* -->  <url-pattern>/*</url-pattern>  <!-- 后綴名來配置 -->  <url-pattern>*.do</url-pattern>  </servlet-mapping>  </web-app>
5.3、精確匹配

5.4、虛擬目錄匹配--可以有多個虛擬目錄

5.5、*通配符

5.6、后綴名來訪問

六、url-pattern6.1、url-pattern 概述

<url-pattern>元素,用于把一個Servlet 別名映射為一個URL 訪問規則。在Servlet 的配置過程中,我們首先使用servlet 元素中的servlet-name、servlet-class 等子元素把一個Servlet 實現類映射為一個別名,然后再使用servlet-mapping 元素把這個別名映射為一個可以在瀏覽器中訪問的url,我們對Servlet 的訪問正是通過這個URL 進行的。而不是通過別名。因此,配置這個URL 是Servlet 配置過程中非常重要的一個環節。那么我們應該如何對這個URL進行配置呢?也就是說url-pattern 有幾種配置規則呢?在配置url-pattern 元素的時候,有這樣三種規則,分別是精確匹配、目錄匹配和后綴匹配。

6.2、精確匹配

所謂的精確匹配,就是我們在使用瀏覽器訪問一個 Servlet 的時候,輸入的URL 中除了工程名之前的部分之外要和我們在配置Servlet 時,配置的url-pattern 元素要完全一致。比如說,在下面實例中,配置了一個名稱為 HelloServlet 的Servlet,它的url-pattern 我們配置為/helloServ , 那么這個配置就是完全匹配的方式。假如說我們這個工程的名字是TestServlet,我們的Web 服務器的端口號為8080,那么在瀏覽器中訪問本地的這個Servlet的時候就需要使用這樣的URL:http://127.0.0.1:080/TestServlet/helloServ。其中,127.0.0.1 是保留的ip 地址,指代本機,8080 是我們設置的Web 服務器的端口號,TestServlet是我們這個Servlet 所在的Web 項目的名稱。而最后面的這個helloServ 就是我們配置的需要完全匹配的Servlet 的URL pattern。

<servlet><servlet-name>HelloServlet</servlet-name><servlet-class>javaee.sg.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/helloServ</url-pattern></servlet-mapping>
6.3、目錄匹配

相對于精確匹配,目錄匹配是一種相對靈活的配置方式,它以斜杠開始,以星號結尾,并且規定了一個虛擬的目錄。為了更加形象的說明這種配置方式,我們仍然以剛才的例子進行說明,比如說剛才的那個Servlet,它的url-pattern 我們就可以使用這種形式進行配置:

<servlet-name>HelloServlet</servlet-name><url-pattern>/helloServ/*</url-pattern>

在這個url-pattern 中,我們使用了一個虛擬的目錄, helloServ,那么我們在訪問這個Servlet 的時候輸入的URL 就會有多種選擇,我們只要保證這個URL 中,除了工程名之外的部分以這個虛擬目錄helloServ 開始就可以了。比方說,我們可以使用這樣的URL 訪問這個Servlet:http://127.0.0.1:8080/ TestServlet/helloServ/theServlet。在這個URL中, TestServlet 是這個Web 項目的工程名。 helloServ 是虛擬目錄的名稱,最后面的theServlet 是我們在訪問的時候隨機輸入的一個名稱。這個名稱可以替換為其他的名稱,比方說替換為thisServlet 或者thatServlet 等等。總之,在工程名TestServlet 之后緊跟虛擬目錄的名稱就可以了。

6.4、后綴匹配

用后綴進行匹配的方式。在這種方式中,url-pattern 配置元素只限定了訪問Servlet 的后綴名,而對于虛擬目錄、名稱都沒有要求。比方說,我們再把剛才配置的Servlet 做一個修改,在url-pattern 中采用后綴匹配的規則進行配置。大家看這段代碼:

<servlet-name>HelloServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>

在這個配置當中,我們限定了訪問這個Servlet 的后綴名是”.do”。也就是說,當我們的URL 中的服務器地址,端口號,工程名這些項沒有錯誤的情況下,只要url 以”.do”結尾,就能夠訪問到我們的這個Servlet。比方說,在訪問我們這個別名為 HelloServlet 的Servlet的時候,URL 可以寫為這樣的形式:http://127.0.0.1:8080/ TestServlet/helloServ.do。大家可以看到,在這個URL 的前半部分是IP 地址、端口號和項目名稱。并且這個URL 以.do 結尾,因此就可以訪問到HelloServlet。或者,我們也可以把這個URL 寫為這樣的形式,都是可以的:http://127.0.0.1:8080/ TestServlet/theServlet.do。

6.5、注意事項

在配置 Servlet 的過程中,大家需要注意的另外一點就是一個Servlet 配置元素可以同時對應多個Servlet-mapping 元素, 比方說,我們仍然以剛才所介紹的HelloServlet 為例,大家看這段代碼:

<servlet-mapping><servlet-name> HelloServlet </servlet-name><url-pattern>/helloServ</url-pattern></servlet-mapping><servlet-mapping><servlet-name> HelloServlet </servlet-name><url-pattern>/helloServ/* </url-pattern></servlet-mapping><servlet-mapping><servlet-name> HelloServlet </servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>

在這段代碼中,我們為別名為HelloServlet 的Servlet 配置了3 個servlet-mapping 元素。既然我們可以為同一個Servlet 同時配置多個servlet-mapping,那么當客戶端在訪問這個servlet 的時候,servlet 容器是按照一個什么樣的順序來查找servlet 的呢?當為同一個Servlet 配置了多個servlet-mapping 的時候,servlet 容器首先將按照精確匹配的方式進行匹配查找,如果匹配完成,則結束匹配,而如果匹配不成功就按照目錄匹配、后綴匹配的順序繼續進行匹配查找,如果有多個目錄匹配方式的配置項,則按照最長的一個來匹配。同時,在進行匹配的時候同樣要看請求的URL,如果這個URL 以斜線結尾,那么這個請求將會按照目錄匹配的方式來進行處理

七、在eclipse中創建Servlet

選擇需要的方法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频在线免费观看 欧美视频免费一| 国产久一一精品| 亚洲人精品午夜在线观看| 久久久久久一区二区三区| 日韩在线观看免费| 成人精品一区二区三区| 国产999在线| 色悠久久久久综合先锋影音下载| 亚洲香蕉在线观看| 久久99国产精品自在自在app| 欧美日韩裸体免费视频| 久久久久亚洲精品成人网小说| 国产mv免费观看入口亚洲| 日韩视频免费观看| 国产福利成人在线| 欧美性xxxxxx| 亚洲性线免费观看视频成熟| 欧美国产激情18| 国产精品自产拍高潮在线观看| 亚洲www在线| 午夜欧美不卡精品aaaaa| 欧美日韩精品在线视频| 亚洲人a成www在线影院| 久久精品男人天堂| 色老头一区二区三区| 精品视频中文字幕| 日韩av免费观影| 国产精品国语对白| 中文字幕亚洲第一| 欧美视频在线观看 亚洲欧| 亚洲欧美中文另类| 免费97视频在线精品国自产拍| 中文字幕精品www乱入免费视频| 亚洲欧洲日本专区| 欧美高清视频在线播放| 欧美日韩亚洲精品内裤| 亚洲成人激情视频| 热久久这里只有精品| 日韩欧美亚洲成人| 51ⅴ精品国产91久久久久久| 成人淫片在线看| 亚洲精品免费一区二区三区| 国产精品你懂得| 欧美性感美女h网站在线观看免费| 国产精品v日韩精品| 中文字幕亚洲情99在线| 亚洲日本中文字幕免费在线不卡| 国内偷自视频区视频综合| 欧美巨乳在线观看| 国产美女精品免费电影| 欧美wwwwww| 欧美日韩精品国产| 国产乱肥老妇国产一区二| 欧美久久精品午夜青青大伊人| 理论片在线不卡免费观看| 国产剧情日韩欧美| 欧美午夜宅男影院在线观看| 国产精品自拍偷拍| 成人黄色av网| 国产一区二区三区高清在线观看| 黑人巨大精品欧美一区免费视频| 久久91亚洲人成电影网站| 亚洲欧洲日本专区| 亚洲三级 欧美三级| 日韩欧美极品在线观看| 久久夜色精品国产| 亚洲国产婷婷香蕉久久久久久| 久久天天躁日日躁| 久久久精品国产| 亚洲精品美女久久| 精品久久久久久电影| 91久久精品久久国产性色也91| 日韩毛片中文字幕| 久久久久久一区二区三区| 91精品国产高清自在线看超| 国产精品99久久久久久久久| 精品成人av一区| 成人激情在线播放| 欧美华人在线视频| 国产精品成人国产乱一区| 欧美日韩一区二区在线播放| 欧美性猛交xxxxx水多| 成人有码在线播放| 中文字幕亚洲综合久久筱田步美| 在线精品视频视频中文字幕| 久久视频国产精品免费视频在线| 中文字幕少妇一区二区三区| 久久精品国产一区二区三区| 成人av在线亚洲| 欧美成年人视频| 精品国内亚洲在观看18黄| 狠狠做深爱婷婷久久综合一区| 亚洲欧美日韩国产精品| 亚洲欧美在线第一页| 欧美黑人巨大xxx极品| 亚洲无亚洲人成网站77777| 亚洲国产中文字幕在线观看| 欧美日韩国产页| 亚洲一品av免费观看| 国产亚洲a∨片在线观看| 性金发美女69hd大尺寸| 亚洲国产精彩中文乱码av在线播放| 欧美电影免费观看大全| 亚洲国产精品小视频| 日韩福利在线播放| 国产精品视频一区国模私拍| 国产精品亚洲自拍| 俺去亚洲欧洲欧美日韩| 成人444kkkk在线观看| 久久亚洲国产精品成人av秋霞| 欧美激情aaaa| 欧美成在线观看| 国产脚交av在线一区二区| 日本伊人精品一区二区三区介绍| 68精品国产免费久久久久久婷婷| 欧美极品美女视频网站在线观看免费| 久久精品99久久久久久久久| 亚洲欧洲在线播放| 国产美女被下药99| 精品一区二区亚洲| 国产精品香蕉国产| 69av视频在线播放| 国产福利精品视频| 北条麻妃一区二区在线观看| 最新日韩中文字幕| 久久97久久97精品免视看| 色噜噜国产精品视频一区二区| 精品伊人久久97| 国产成人avxxxxx在线看| 欧美丝袜一区二区| 美女性感视频久久久| 亚洲国模精品一区| 亚洲精品免费网站| 欧美寡妇偷汉性猛交| 最新国产精品亚洲| 日本高清不卡的在线| 午夜精品一区二区三区在线视频| 日韩av手机在线| 久久99亚洲精品| 欧美视频在线视频| 欧美综合第一页| 欧美激情性做爰免费视频| 久久久久九九九九| 国产91在线高潮白浆在线观看| 日韩欧美中文字幕在线播放| 国产免费久久av| 国产婷婷成人久久av免费高清| 欧美老女人bb| 日韩成人在线视频观看| 日韩av影院在线观看| 亚洲а∨天堂久久精品喷水| 91免费看片在线| 黑人精品xxx一区| 日韩av电影国产| 亚洲午夜性刺激影院| 亚洲第一色中文字幕| 亚洲欧美国内爽妇网| 亚洲欧美日韩直播| 日韩中文字在线| 伦理中文字幕亚洲| 欧美成人激情视频免费观看| 91国产在线精品| 亚洲美女性视频| 插插插亚洲综合网|