1. post請求
(1)哪一些情況下即硼,瀏覽器會(huì)發(fā)送post請求
設(shè)置表單的method="post"
(2)特點(diǎn)
a.不會(huì)將請求參數(shù)顯示在瀏覽器地址欄讨便,相對安全
注:并不會(huì)對請求參數(shù)加密即纲。
b.會(huì)將請求參數(shù)添加到實(shí)體內(nèi)容里面狞换,所以蒜绽,可以提交大量數(shù)據(jù)給服務(wù)器歧胁。
2.如何讀取請求參數(shù)值?
(1)request提供的getParameter方法滋饲。
String? getParameter(String paramName);
? 注:a.如果請求參數(shù)名寫錯(cuò),會(huì)返回null值喊巍。
b.如果不填寫任何數(shù)據(jù)屠缭,會(huì)獲得空字符串。
(2)request提供的getParameterValues
String[] getParameterValues(String paramName);
? 注:a.當(dāng)有多個(gè)請求參數(shù)名相同時(shí)崭参,用該方法呵曹。
b.多選框,如果不選擇任何選項(xiàng)何暮,瀏覽器不會(huì)發(fā)送任何數(shù)據(jù)給服務(wù)器奄喂。
3. 處理表單中文參數(shù)亂碼問題
(1)為什么會(huì)有亂碼?
表單提交時(shí),瀏覽器會(huì)對中文參數(shù)值進(jìn)行編碼海洼。服務(wù)器端默認(rèn)會(huì)使用iso-8859-1來解碼跨新。
? 注:會(huì)使用表單所在的頁面打開時(shí)使用的字符集來編碼。
(2)如何解決?
1)情形1 表單提交方式為post
request.setCharacterEncoding("utf-8");
? 注:要加到所有的request.getParameter方法前面坏逢。
2)情形2 表單提交方式為get
設(shè)置配置文件Connector處增加URIEncoding="utf-8"
? 注: 只針對get請求有效域帐。
練習(xí):寫一個(gè)Servlet,將所有員工信息以表格形式展現(xiàn)出來
step1.在EmployeeDAO類當(dāng)中,添加
List findAll()
step2.測試findAll()
step3.寫ListEmpServlet词疼。
先將所有員工找出來:? List employees = dao.findAll()
然后輸出表格:
out.println("<table>")
ID姓名xxxx
for(int i = 0;i < employees.size(); i++){
Employee e = employees.get(i);
"<tr><td>"+ e.getId() + "</td>"+"..."+"</td><tr>"
}
out.println("</table>");
代碼示例: