1. java基礎(chǔ)中實(shí)現(xiàn)存儲(chǔ)到實(shí)體對(duì)象中的方法
1.1. 通過Beanutils工具類實(shí)現(xiàn)對(duì)象的存儲(chǔ)
- 通過request.getParameterMap()的方法將請(qǐng)求端獲得的對(duì)象信息存儲(chǔ)到map集合中令境。
Map<String,String[]> properties=request.getParameterMap();
- 通過Beanutils工具類將獲取的集合對(duì)象存儲(chǔ)到實(shí)體對(duì)象中去,這個(gè)工具類能夠?qū)崿F(xiàn)只要key值和實(shí)體對(duì)象名稱相同果录,就能自動(dòng)封裝到實(shí)體中挤悉。
BeanUtils.populate(user,propertis);
1.2. java自動(dòng)生成uuid
- uuid是唯一識(shí)別的id碼亚情,具體請(qǐng)查找資料矫钓。
user.setUid(UUID.randomUUID().toString());
1.3. Servlet技術(shù)中為什么要回調(diào)doGet()方法
- doGet()方法和doPost()方法一樣毡琉,所以相互調(diào)用铁瞒,可以減少代碼量,如果要修改代碼桅滋,只需要修改一處就行了慧耍,比較方便。
1.4. request獲取值得到亂碼的解決方案
- 在獲取對(duì)象參數(shù)前丐谋,進(jìn)行request域?qū)ο蟮木幋a設(shè)置芍碧,但是這種方法只適合post提交方式,request的默認(rèn)查表是*ISO8859-1這是一個(gè)歐洲字符集号俐,沒有亞洲人的字符集泌豆。
request.getCharacterEncoding("UTF-8");
- 亂碼實(shí)現(xiàn)的過程
031701.png
- 亂碼解決的過程
031702.png
- 由上面兩張圖可以看出吏饿,前端寫的內(nèi)容是以UTF-8的編碼形式寫的踪危,request對(duì)象接收時(shí)卻以ISO8859-1的解碼形式解的,ISO8859-1不支持中文編碼因此出現(xiàn)了亂碼猪落。當(dāng)解碼時(shí):需要將亂碼解釋成中文字符贞远,我們要做的是先將亂碼翻譯成ISO8859-1的標(biāo)準(zhǔn),然后將ISO8859-1的碼轉(zhuǎn)成UTF-8的頁(yè)面對(duì)UTF-8解析就成了中文字符形式笨忌。兩者正好反過來蓝仲。
1.5. 地址重定向和轉(zhuǎn)發(fā)在Servlet技術(shù)中的使用
- 地址轉(zhuǎn)發(fā)
地址轉(zhuǎn)發(fā)是服務(wù)器內(nèi)部的事情,比如你發(fā)送了一個(gè)請(qǐng)求官疲,服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給另一處進(jìn)行處理袱结,故用request
request.getRequestDispatcher("/login.jsp").forward(request,response);
- 重定向
重定向是客戶端先請(qǐng)求,服務(wù)器反應(yīng)給客戶端途凫,讓客戶端去另一個(gè)地址去處理事務(wù)垢夹。故用response
response.sendRedirect("/WEB15/login.jsp");
但是此方法有個(gè)問題,比如如果工程名修改成WEB13了维费,那么這個(gè)重定向就會(huì)有問題棚饵,就會(huì)找不到login.jsp那么如何處理這個(gè)問題煤裙?
request.sendRedirect(request.getContextPath()+"/login.jsp");
request.getContextPath()是能夠動(dòng)態(tài)的獲取web應(yīng)用的名稱。
1.6. DataSourceUtils工具類+C3P0連接池的誤解
QueryRunner runner=QueryRunner(DataSourceUtils.getDataSource());
誤解:我認(rèn)為DataSourceUtils.getDataSource只是獲取了連接池噪漾,并沒有獲取連接硼砰,其實(shí),DataSourceUtils工具類自動(dòng)獲取連接欣硼,自動(dòng)關(guān)閉連接题翰。