天天看點

javaWEB學習日記day05

複習:

HttpServletRequest

請求行:

* getMethod()

* getRquestURL()

* getRquestURI()

* getContextPath() --擷取虛拟目錄

* getServletPath()

* getQueryString --> get請求方式的參數

username=lucy&password=123

請求頭:

* getHeader(name)

請求體: 輸入流 post方式的參數

* getReader()

username=lucy&password=123

通用的擷取請求參數的方法:

getParameter(name)

String[] getParameterValues(name)

Map<String,Stirng[]> getParameterMap()

中文亂碼:

get的字元集: UTF-8

post的字元集: iso8859-1

request.setCharaterEncoding("utf-8")

____________________________________________

案例: 頁面注冊

步驟:

1.建立項目,導入html頁面,配置檔案,jar包

2.建立資料庫,和所需要的表

3.建立和資料庫對應的實體類

4.編寫工具類DruidUtils

5.建立UserDao,提供注冊方法

6.建立Servlet,使用BeanUtils工具類,簡化資料的封裝

BeanUtils - 封裝對象的工具類

* 作用: 用于封裝JavaBean的

* 使用:

1.導包

conmms-beanutils

conmms-collections

2.方法:

* populate(Object obj,Map map)

将map集合的鍵值對資訊,封裝到對應的JavaBean對象中

* setProperty()

* getProperty()

案例: 頁面登入

____________________________________________

ServletContext對象:

生命周期:

服務期開啟,伺服器結束

service -> doGet/doPost

Servlet的生命周期:

建立:預設第一次接收請求

銷毀:伺服器關閉

javaWEB學習日記day05

request作為域對象使用:

特點:

* 位址欄路徑不會發生改變

* 轉發隻能通路目前伺服器下的資源

* 轉發是一次請求,可以使用request域對象來共享資料

範圍: 一次請求

* 建立: 接受請求

* 銷毀: 請求結束

方法:

* setAttribute(String name,Object obj)

* getAttribute(String name)

* removeAttribute(String name)

作用:在請求轉發是進行資料的傳遞

使用場景: 通常是Servlet轉發到jsp時使用

一個Servlet事情做到一半時,需要轉發到另一個資源繼續完成這件事情 -> 使用轉發

____________________________________________

Response:響應

javaWEB學習日記day05
javaWEB學習日記day05

1.Response的組成部分:

1)響應行:狀态碼 + http協定

* 狀态碼:

* 1xx: 資訊狀态碼

* 傳回伺服器接收到的用戶端資訊,但是沒有接收完成任務 --> 了解

* 2xx: 成功狀态碼

* 200: 正常顯示

* 3xx: 重定向狀态碼

* 304: 通路緩存

* 302: 重定向

* 4xx: 用戶端錯誤狀态碼

* 404:(請求路徑沒有對應的資源)

資源未找到,路徑錯誤

* 405:請求方式沒有對應的doxxx方法

服務方法出錯(service/doGet/doPost)

* 5xx: 伺服器端錯誤狀态碼

* 500: 伺服器内容出現的異常,代碼錯誤

2)響應頭:Map存儲的資訊

* setHeader() -> 設定響應頭資訊

3)響應體:要顯示的界面

* 常用API:

* 擷取輸出流:

* 字元輸出流: getWriter()

* 位元組輸出流: getOutpuStream()

* 解決響應體亂碼問題:

* setContentType("text/html;charset=UTF-8")

2.重定向: 資源跳轉的方式

* 特定:

* 位址欄會發生變化

* 重定向可以通路其他伺服器的資源

* 重定向是兩次請求. 不能使用request域對象來共享資料

* 使用場景:

* 第一個資源已經做完了一件事情,需要做下一件事情

例如:注冊完成之後馬上進行登入操作

* 常用方法:

* 重定向的方法

sendRedirect("虛拟目錄+跳轉的資源路徑")

javaWEB學習日記day05

面試題: 重定向和轉發的差別?