亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[Java Web]Servlet 的學(xué)習(xí)

dreamGong / 1340人閱讀

摘要:的學(xué)習(xí)的開發(fā)是運行在服務(wù)器端的程序,用于處理及響應(yīng)客戶端的請求。是個特殊的類,必須繼承。另外還包含兩個方法創(chuàng)建實例銷毀實例不需要為編寫構(gòu)造器,如果需要對進行初始化的操作,可以重寫方法。調(diào)用的方法銷毀。的是應(yīng)用啟動時立刻創(chuàng)建實例。

Servlet 的學(xué)習(xí) Servlet的開發(fā)

Servlet是運行在服務(wù)器端的程序,用于處理及響應(yīng)客戶端的請求。

Servlet是個特殊的Java類,必須繼承HttpServlet。每個Servlet可以響應(yīng)客戶端的請求。

Servlet相應(yīng)客戶端請求的方法:

doGet():響應(yīng)客戶端的Get請求

doPost():響應(yīng)客戶端的POST請求

doPut():響應(yīng)客戶端的PUT請求

doDelete():響應(yīng)客戶端的DELETE請求

大部分時候,Servlet對于所有請求的響應(yīng)都是一樣的,所以可以只重寫service()方法。

另外HttpServlet還包含兩個方法:

init(ServletConfig config):創(chuàng)建Servlet實例

destroy():銷毀Servlet實例

不需要為Servlet編寫構(gòu)造器,如果需要對Servlet進行初始化的操作,可以重寫init方法。

例子:

//Servlet必須繼承HttpServlet類
@WebServlet(name="firstServlet"
    ,urlPatterns={"/firstServlet"})
public class FirstServlet extends HttpServlet
{
    //客戶端的響應(yīng)方法,使用該方法可以響應(yīng)客戶端的所有類型請求
    public void service(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException,java.io.IOException
    {
        //設(shè)置解碼方式
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        //獲取name的請求參數(shù)
        String name = request.getParameter("name");
        //獲取gender的請求參數(shù)
        String gender = request.getParameter("gender");
        //獲取color的請求參數(shù)
        String[] color = request.getParamterValues("color");
        //獲取country的請求參數(shù)
        String national = request.getParameter("national");
        //獲取頁面輸出流
        PrintStream out = new PrintStream(response.getOutputStream());
        //輸出HTML頁面標(biāo)簽
        out.println("");
        out.println("");
        out.println("Servlet測試");
        out.println("");
        out.println("");
        //輸出請求參數(shù):name
        out.println("name "+name + "
"); //輸出請求參數(shù):gender out.println("gender "+gender + "
"); //輸出請求參數(shù):color for(String c:color) { out.println("color " + c +"
"); } //輸出請求參數(shù):national out.println("national "+national); out.println(""); out.println(""); } }

Servlet和JSP的區(qū)別在于:

Servlet中沒有內(nèi)置對象,原來JSP中的內(nèi)置對象都必須由程序顯式創(chuàng)建

對于靜態(tài)的HTML標(biāo)簽,Servlet都必須使用頁面輸出流逐行輸出

Servlet的配置

編輯后的Servlet文件要編譯成class文件,然后將文件放在WEB-INF/classes中才能夠響應(yīng)用戶請求。而且還要將Servlet配置在web應(yīng)用中(修改web.xml)

配置Servlet的方式有兩種(Servlet3.0開始):

在Servlet類中使用@WebServlet注解進行配置

通過在web.xml文件中進行配置

@WebServlet注解最常用的屬性

name:指定Servlet的名稱

urlPatterns:指定Servlet處理的url

配置Servlet的注意事項:

使用注解來配置Servlet:

1、不要在web.xml文件的根元素中制定metadata-complete="true"
2、不要在web.xml文件中配置該文件

使用web.xml配置Servlet需要配置兩個部分:

1、配置Servlet的名字:對應(yīng)web.xml文件中的元素
2、配置Servlet的URL:對應(yīng)web.xml文件中的元素

通過配置web.xml文件的例子(通過注解的方式的例子在上面的代碼中):



    
    firstServlet
    
    FirstServlet



    
    firstServlet
    
    /firstServlet

JSP/Servlet的生命周期

生命周期:

(1)創(chuàng)建Servlet實例

(2)Web容器調(diào)用Servlet的init方法,對Servlet進行初始化

(3)Servlet初始化后,將一直存在于容器中,響應(yīng)用戶請求。

(4)調(diào)用Servlet的destroy方法銷毀Servlet。

load-on-startup Servlet

load-on-startup Servlet的是Web應(yīng)用啟動時立刻創(chuàng)建Servlet實例。

配置load-on-startup的Servlet的方式有兩種:

web.xml文件中通過元素的子元素進行配置

通過@WebServlet注解的loadOnStartup屬性指定


(不管通過哪種方式,都之接收一個整型值,數(shù)字越小代表優(yōu)先級越高)

注解配置:

@WebServlet(loadOnStartup=1)
public class TimerServlet extends HttpServlet
{
    public void init(ServletConfig config)throws ServletException
    {
        super.init(config);
        Timer t = new Timer(1000.new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                System.out.println(new Date());
            }
        });
    }
}

web.xml配置:


    
    timerServlet
    
    hsr.TimerServlet
    
    1

訪問Servlet的配置參數(shù)

為Servlet配置參數(shù)的方法:

通過@WebServletinitParam屬性指定

web.xml文件的的子元素指定

通過@WebServlet指定:

@WebServlet(name="testServlet",
    urlPatterns={"/testServlet"},
    initParam={
        @WebInitParam(name="Param_name1",value="Param_value1"),
        @WebInitParam(name="Param_name2",value="Param_value2")
    })

通過wel.xml指定:


    param_name
    param_name

訪問配置參數(shù):

//獲取ServletConfig對象
ServletConfig config = getServletConfig();
//通過ServletConfig對象獲取參數(shù)
String param = config.getInitParameter("param_name");

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/67774.html

相關(guān)文章

  • JavaWeb從0開始學(xué)(一)-----第一個Web應(yīng)用程序與JSP工作原理

    摘要:當(dāng)后繼請求相同的頁面時,容器加載之前生成的類,并且通知去執(zhí)行已經(jīng)存在的字節(jié)碼,從而省去了轉(zhuǎn)換的過程,這也是第一次執(zhí)行頁面時間較長的原因。 以往學(xué)習(xí)的時候大多是看完書或者看完視頻,動手實踐一下就OK了。然而過了一段時間我發(fā)現(xiàn)東西都忘差不多了,需要復(fù)習(xí)才能重新掌握?,F(xiàn)在開始學(xué)習(xí)JavaWeb了,我將在這里記錄自己的學(xué)習(xí)的一點一滴,不僅便于自己以后回顧知識點,也希望能對JavaWeb初學(xué)者有...

    CloudDeveloper 評論0 收藏0
  • Servlet學(xué)習(xí)筆記

    摘要:學(xué)習(xí)筆記工作以來就一直在用各種框架,比如,這些,向外提供接口都很方便,但是一直在想它的內(nèi)部是怎樣對外暴露服務(wù)的,正好之前學(xué)習(xí)基礎(chǔ)的時候也沒好好看這塊,抽個時間學(xué)習(xí)總結(jié)一下,也能更好的理解掌握現(xiàn)在的框架。 Servlet學(xué)習(xí)筆記 工作以來就一直在用各種web框架,比如SpringMVC,Spring Cloud這些,向外提供接口都很方便,但是一直在想它的內(nèi)部是怎樣對外暴露服務(wù)的,正好之前...

    kohoh_ 評論0 收藏0
  • 慕課網(wǎng)_《Java模板引擎之Freemarker》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。整體目錄結(jié)構(gòu)如下項目文件用于數(shù)據(jù)持久化配置項目配置配置視圖解析器配置靜態(tài)資源映射配置配置配置自定義指令配置解析器配置,類似于項目啟動類新建,注冊配置類,并將其和當(dāng)前關(guān)聯(lián)。 時間:2017年3月19日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無個人學(xué)習(xí)源碼:https://githu...

    xumenger 評論0 收藏0
  • JAX-RS 2.0 中 REST 四種服務(wù)類型

    摘要:當(dāng)不存在子類,也不存在子類時,規(guī)范中定義,在這種情況下,為服務(wù)動態(tài)生成一個名為的實例,并自動探測匹配資源。其中是中的基類,它繼承于情況二當(dāng)不存在子類,但是存在子類時。以上就是規(guī)范中定義的四種服務(wù)的方式。 最近在學(xué)習(xí) jersey 框架。他是 目前比較流行的 基于 JAX-RS 2.0 規(guī)范實現(xiàn)的 RESTful 框架。 我是跟著 《Java RESTful Web Service 實...

    bbbbbb 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<