1.理解的Spring的DataAccessException
DataAccessException:是Spring提供了一種與特定技術(shù)無關(guān)的異常,實(shí)現(xiàn)服務(wù)層與數(shù)據(jù)訪問層的分離。
你不一定要處理DataAccessException,同時(shí)由于DataAccessException是NestedRunTimeException的子類,
你可以通過它的getCourse()獲得導(dǎo)致這個(gè)異常的另一個(gè)異常,這樣你就可以獲得與特定技術(shù)相關(guān)的異常信息。
Spring為你打造異常分類
Spring清楚與特定技術(shù)相關(guān)的異常,Spring自己會(huì)拋出更為精確的異常
CleanupFailureDataAccessException
DataAccessResourceFailureException
DataIntegrityViolationException
DataRetrieveFailureException
DeadlockLoserDataAccessException
IncorrectUpdataSemanticsDataAccessException
InvalidDataAccessApiUsageException
InvalidDataAccessResourceUsageException
OptimisticLockingFailureException
TypeMismatchDataAccessException
UncategorizeDataAccesException
2.與DataSource一起工作
從JNDI中獲得DataSource
創(chuàng)建一個(gè)DataSource連接池? org.apache.commons.dbcp.BasicDataSource
在測(cè)試時(shí)使用DataSource?? DriveManageDataSource
3.一致的DAO支持
Tempate模式
流程順序不變,可能有某個(gè)流程的細(xì)節(jié)是要變化,這個(gè)交給接口了,然后每個(gè)實(shí)現(xiàn)著去實(shí)現(xiàn)這個(gè)接口就可以。
所以Spring是通過提供相應(yīng)的模板類來實(shí)現(xiàn)的,同時(shí)也提供了支撐類。
4.Spring與hibernate整合
Spring與hibernate整合主要在以下幾方面:
整合事務(wù)管理
異常處理
線程安全,輕量級(jí)模板類
便利的支持類
資源管理
配置SessionFactory
LocalSessionFactoryBean
dataSource
hibernateProperties
mappingDirectoryLocations
mappingResources
HibernateTemplate
HibernateDaoSupport
1.如何通過EL訪問Implicit Object
EL可以用在兩個(gè)位置:
a.template text
b.標(biāo)準(zhǔn)標(biāo)簽和自定義標(biāo)簽的屬性設(shè)置
Implicit Object
與取值范圍有關(guān)的: applicationScope, sessionScope, requestScope, pageScope
與輸入輸出有關(guān)的:param, paramValues
與head有關(guān)的:header,headerValues
與cookie有關(guān):cookie
與ServletContext的初使化參數(shù)有關(guān):initParam
還有一個(gè)pageContext
2.EL訪問操作符
property操作符號(hào):.或者 []
集合操作符號(hào):[]
如果要訪問的屬性里面包含非字母,必須要用[]
3. EL其他操作符號(hào)
a.Arithmetic: +,-(binary),*,/(div),%(mod)
b.logic: &&(and),||(or), !(not)
c.relational:==(eq), !=(ne), <(lt), >(gt),<=(le),>=(ge)
d.empty:用來判斷是否為null或empty
e.conditional: ?
4.EL functions
a.如何使用el functions
${prefix:functionName(args0,...)}
b.如何定義一個(gè)function
定義function必須是一個(gè)public static方法,且類的訪問修飾符也是public
package willim;
public class MyFunction{
?public static boolean equals(String str1, String str2) {
???return str1.equals(str2);
?}
}
c.配置descriptor
<function>
??<name>equals</name>
??<function-class>willim.MyFunction</function-class>
??<function-signature>boolean equals(java.lang.String, java.lang.String)</function-signature>
</function>
摘要: eBaoTech? Test
一
筆試
全英文(答案僅代表本人意見,本人做了丑陋的翻譯。希望自己認(rèn)真思考。)
以...
閱讀全文
打算這個(gè)星期把SERVLET和JSP復(fù)習(xí)下,我認(rèn)為基礎(chǔ)對(duì)一個(gè)人很重要,所以會(huì)經(jīng)常回過頭來看看.
1.HTTP協(xié)議
每個(gè)做web應(yīng)用都應(yīng)該熟悉HTTP協(xié)議吧,如果不熟悉大家找些資料去學(xué)學(xué).
GET: 參數(shù)直接作為一個(gè)query string放到URL后面?zhèn)鬟f的.可以是text
POST:參數(shù)是作為封裝一個(gè)請(qǐng)求信息體里的.可以是text和binary
servlet里有多個(gè)方法用來對(duì)應(yīng)處理http協(xié)議的請(qǐng)求方法
doGet() : link,和直接在瀏覽器中輸入U(xiǎn)RL
doPost():? 通過form表單顯示聲明method="post",否則默認(rèn)為get
doDelete(): 針對(duì)要?jiǎng)h除服務(wù)器的某些資源的請(qǐng)求
doTrace(): 調(diào)試服務(wù)器連接的http方式
doOptions() : The OPTIONS request determines which HTTP methods the server supports and returns an appropriate header. For example, if a servlet overrides doGet, this method returns the following header:
Allow: GET, HEAD, TRACE, OPTIONS
doPut() : 針對(duì)要向服務(wù)器放入新的文件的請(qǐng)求
doHead(): 針對(duì)只要response的Header信息的請(qǐng)求
當(dāng)client來一個(gè)請(qǐng)求時(shí),doService(HttpServletRequest request, HttpServletResponse response) throws ServletException ,IOException接受這個(gè),并選擇相應(yīng)的請(qǐng)求選擇相應(yīng)的方法進(jìn)行處理
2.HttpServletResquest介紹
常用的方法:String getParameter(String name)
Enumeration getParameterNames()
String[] getParameterValues(String name)
String?? getHeader(String name)
int getIntHeader(String name)
long getDateHeader(String name)
Enumeration getHeaderNames()
String[] getHeaderValus(String name)
Cookies[] getCookies()
3.HttpServletResponse介紹
void setContentType(String type)
setHeader(String name, String value)
setIntHeader(String name, int value)
setDateHeader(String name, long value)
addHeader(String name, String name)
addIntHeader(String name, int value)
addDateHeader(String name ,long value)
boolean containsHeader(String name)
PrintWriter getWriter()? //返回字符流
OutputStream getOutputStream()? //返回字節(jié)流
void sendRedirect(String URL) //重定向到某個(gè)頁面
void sendError(int sc) //發(fā)生錯(cuò)誤向客戶端發(fā)送狀態(tài)碼
void sendError(int sc, String message)
void addCookie(Cookie cookie) //增加一個(gè)cookie
Cookie(String name, String value) //? cookie的構(gòu)造方法
4.SERVLET的生命周期
servlet loading? ---> servlet instantiation ---> call init() ---> call doService handle request ---> call destroy()
public void init(ServletConfig config) throws ServletException
如果override這個(gè)方法必須先調(diào)用super.init(config)
public void init() throws ServletException
public void service() throws ServletException, IOException
public void destroy() throws ServletException