欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:Servlet一篇能搞定

柚子快報(bào)邀請(qǐng)碼778899分享:Servlet一篇能搞定

http://yzkb.51969.com/

一、概念:

Servlet是JavaWeb的三大組件之一。三大組件是:Servlet程序,Filter過濾器,Listenter監(jiān)聽器可以把servlet稱為web應(yīng)用中的控制器,能處理客戶端請(qǐng)求并作出響應(yīng)的一套技術(shù)標(biāo)準(zhǔn)就是servlet。Tomcat內(nèi)部封裝了servlet,也就是servlet接口并不是JDK自帶的接口,而是Tomcat里jar包提供的api,所以添加maven中無需添加依賴。

二、servlet開發(fā):

2.1. 新建項(xiàng)目,添加依賴

轉(zhuǎn)換為web項(xiàng)目后,配置好Tomcat的依賴:這步驟需要先做,不然后先新建類無法使用servlet相關(guān)api。

2.2. 新建一個(gè)類,并新建一個(gè)index.html,內(nèi)容隨意

繼承HttpServlet類,重寫service方法;或者實(shí)現(xiàn)Servlet接口,重寫service方法,由于我們只關(guān)注service方法,所以采用繼承的方式。

index.html的內(nèi)容可以如下:

2.3. 配置Tomcat啟動(dòng)器

啟動(dòng)后默認(rèn)訪問藍(lán)色點(diǎn)的web包下的index.html,如果啟動(dòng)后顯示404無法找到資源,編譯文件中也沒有資源,則需要進(jìn)行如下設(shè)置

2.4.web.xml配置文件

作用:該配置文件可用@webservlet替代,xml配置目的用于將請(qǐng)求路徑和java類做關(guān)聯(lián),請(qǐng)求可以通過后端代碼,也就是Tomcat。

問題:service方法為一個(gè)實(shí)例方法,Tomcat會(huì)自動(dòng)調(diào)用service方法,拿Tomcat是如何找到該方法的呢?

回答:通過配置xml中的全路徑即可,也就是字節(jié)碼的位置,再通過反射調(diào)用這個(gè)service方法。

userServlet

com.samcode.servlet.UserServlet

userServlet

/user

2.5. UserServlet類可以簡化為下面這種寫法,無需配置web.xml文件

@WebServlet("/user")

public class UserServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {

String username = req.getParameter("username");

if (username.equalsIgnoreCase("abc")) {

resp.getWriter().println("Welcome " + username);

}

//轉(zhuǎn)發(fā)至jsp頁面

RequestDispatcher dispatcher = req.getRequestDispatcher("/index.jsp");

dispatcher.forward(req, resp);

}

}

2.6. 最終效果圖

2.7. 訪問流程

三、servlet一些重要的api

3.1. servletContext

servletContext是最大的域?qū)ο螅梢詾樗械膕ervlet提供配置參數(shù)servletContext還可以為查詢項(xiàng)目中的一些路徑。

3.1.1. servletContext配置相關(guān):

例如web.xml有如下配置

driver

com.mysql.jdbc.Driver

繼承HttpServlet,可以調(diào)用其父類的方法getServletContext

@WebServlet("/user")

public class UserServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {

ServletContext servletContext = super.getServletContext();

String driver = servletContext.getInitParameter("driver");

System.out.println(driver);

// 結(jié)果為:com.mysql.jdbc.Driver

}

}

3.1.2. servletContext路徑相關(guān):

四、servlet的生命周期

1.執(zhí)行Servlet構(gòu)造方法

2.執(zhí)行init初始化方法,第一次訪問時(shí)初始化

3.執(zhí)行service方法(每次請(qǐng)求都會(huì)調(diào)用)

4.執(zhí)行destroy銷毀方法

某一個(gè)類實(shí)現(xiàn)servlet接口,重寫即可有上述四個(gè)方法

五、Servlet相關(guān)的類

5.1.Servlet接口中,有子接口HttpServletRequest,子類中可以獲取請(qǐng)求方式

5.2.繼承HttpServlet,重寫方法

5.3.HttpServletRequest類

5.3.1.概念:

只要有請(qǐng)求進(jìn)入Tomcar服務(wù)器,Tomcat服務(wù)器就會(huì)把Http請(qǐng)求協(xié)議解析到request對(duì)象中,然后傳遞到Service方法(doGet 和 doPost中)

常用方法:

5.3.2.轉(zhuǎn)發(fā)對(duì)象,設(shè)置域數(shù)據(jù)

使用setAttribute可以在請(qǐng)求中設(shè)置數(shù)據(jù),再用getArrtibute獲取,設(shè)置的域數(shù)據(jù)在使用轉(zhuǎn)發(fā)

5.3.3. servlet1轉(zhuǎn)發(fā)到servlet2

5.3.4.亂碼問題

在doPost方法中,如果傳入的參數(shù)中帶有中文,則會(huì)出現(xiàn)亂碼,可以使用rep.setCharacterEncoding("utf-8")解決亂碼。

api說明中可以看到是請(qǐng)求體中的參數(shù)

5.4.HttpServletResponse類

5.4.1. 只要有請(qǐng)求進(jìn)入Tomcar服務(wù)器,Tomcat服務(wù)器就會(huì)創(chuàng)建一個(gè)response對(duì)象傳遞給Servlet程序去使用。HttpServlet Response表示所有響應(yīng)信息。

5.4.2. 字節(jié)流 getOutputStream(); 常用于下載(二進(jìn)制文件)

5.4.3. 字符流 getWreter(); 常用于回傳字符串

在響應(yīng)中不可同時(shí)使用字節(jié)和字符流。

六.Servlet繼承體系

柚子快報(bào)邀請(qǐng)碼778899分享:Servlet一篇能搞定

http://yzkb.51969.com/

精彩鏈接

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19204235.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄