1. java基礎中實現存儲到實體對象中的方法
1.1. 通過Beanutils工具類實現對象的存儲
- 通過request.getParameterMap()的方法將請求端獲得的對象信息存儲到map集合中。
Map<String,String[]> properties=request.getParameterMap();
- 通過Beanutils工具類將獲取的集合對象存儲到實體對象中去,這個工具類能夠實現只要key值和實體對象名稱相同,就能自動封裝到實體中。
BeanUtils.populate(user,propertis);
1.2. java自動生成uuid
- uuid是唯一識別的id碼,具體請查找資料。
user.setUid(UUID.randomUUID().toString());
1.3. Servlet技術中爲什麼要回調doGet()方法
- doGet()方法和doPost()方法一樣,所以相互調用,可以減少代碼量,如果要修改代碼,只需要修改一處就行了,比較方便。
1.4. request獲取值得到亂碼的解決方案
- 在獲取對象參數前,進行request域對象的編碼設置,但是這種方法只適合post提交方式,request的默認查表是**ISO8859-1*這是一個歐洲字符集,沒有亞洲人的字符集。
request.getCharacterEncoding("UTF-8");
- 亂碼實現的過程
- 亂碼解決的過程
- 由上面兩張圖可以看出,前端寫的內容是以UTF-8的編碼形式寫的,request對象接收時卻以ISO8859-1的解碼形式解的,ISO8859-1不支持中文編碼因此出現了亂碼。當解碼時:需要將亂碼解釋成中文字符,我們要做的是先將亂碼翻譯成ISO8859-1的標準,然後將ISO8859-1的碼轉成UTF-8的頁面對UTF-8解析就成了中文字符形式。兩者正好反過來。
1.5. 地址重定向和轉發在Servlet技術中的使用
- 地址轉發
地址轉發是服務器內部的事情,比如你發送了一個請求,服務器將請求轉發給另一處進行處理,故用request
request.getRequestDispatcher("/login.jsp").forward(request,response);
- 重定向
重定向是客戶端先請求,服務器反應給客戶端,讓客戶端去另一個地址去處理事務。故用response
response.sendRedirect("/WEB15/login.jsp");
但是此方法有個問題,比如如果工程名修改成WEB13了,那麼這個重定向就會有問題,就會找不到login.jsp那麼如何處理這個問題?
request.sendRedirect(request.getContextPath()+"/login.jsp");
request.getContextPath()是能夠動態的獲取web應用的名稱。
1.6. DataSourceUtils工具類+C3P0連接池的誤解
QueryRunner runner=QueryRunner(DataSourceUtils.getDataSource());
誤解:我認爲DataSourceUtils.getDataSource只是獲取了連接池,並沒有獲取連接,其實,DataSourceUtils工具類自動獲取連接,自動關閉連接。