2006年12月20日
#
1.理解的Spring的DataAccessException
DataAccessException:是Spring提供了一种与特定技术无关的异常,实现服务层与数据访问层的分离。
你不一定要处理DataAccessException,同时由于DataAccessException是NestedRunTimeException的子类,
你可以通过它的getCourse()获得导致这个异常的另一个异常,这样你就可以获得与特定技术相关的异常信息。
Spring为你打造异常分类
Spring清楚与特定技术相关的异常,Spring自己会抛出更为精确的异常
CleanupFailureDataAccessException
DataAccessResourceFailureException
DataIntegrityViolationException
DataRetrieveFailureException
DeadlockLoserDataAccessException
IncorrectUpdataSemanticsDataAccessException
InvalidDataAccessApiUsageException
InvalidDataAccessResourceUsageException
OptimisticLockingFailureException
TypeMismatchDataAccessException
UncategorizeDataAccesException
2.与DataSource一起工作
从JNDI中获得DataSource
创建一个DataSource连接池 org.apache.commons.dbcp.BasicDataSource
在测试时使用DataSource DriveManageDataSource
3.一致的DAO支持
Tempate模式
流程顺序不变,可能有某个流程的细节是要变化,这个交给接口了,然后每个实现着去实现这个接口就可以。
所以Spring是通过提供相应的模板类来实现的,同时也提供了支撑类。
4.Spring与hibernate整合
Spring与hibernate整合主要在以下几方面:
整合事务管理
异常处理
线程安全,轻量级模板类
便利的支持类
资源管理
配置SessionFactory
LocalSessionFactoryBean
dataSource
hibernateProperties
mappingDirectoryLocations
mappingResources
HibernateTemplate
HibernateDaoSupport
1.如何通过EL访问Implicit Object
EL可以用在两个位置:
a.template text
b.标准标签和自定义标签的属性设置
Implicit Object
与取值范围有关的: applicationScope, sessionScope, requestScope, pageScope
与输入输出有关的:param, paramValues
与head有关的:header,headerValues
与cookie有关:cookie
与ServletContext的初使化参数有关:initParam
还有一个pageContext
2.EL访问操作符
property操作符号:.或者 []
集合操作符号:[]
如果要访问的属性里面包含非字母,必须要用[]
3. EL其他操作符号
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.如何定义一个function
定义function必须是一个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
一
笔试
全英文(答案仅代表本人意见,本人做了丑陋的翻译。希望自己认真思考。)
以...
阅读全文
打算这个星期把SERVLET和JSP复习下,我认为基础对一个人很重要,所以会经常回过头来看看.
1.HTTP协议
每个做web应用都应该熟悉HTTP协议吧,如果不熟悉大家找些资料去学学.
GET: 参数直接作为一个query string放到URL后面传递的.可以是text
POST:参数是作为封装一个请求信息体里的.可以是text和binary
servlet里有多个方法用来对应处理http协议的请求方法
doGet() : link,和直接在浏览器中输入URL
doPost(): 通过form表单显示声明method="post",否则默认为get
doDelete(): 针对要删除服务器的某些资源的请求
doTrace(): 调试服务器连接的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() : 针对要向服务器放入新的文件的请求
doHead(): 针对只要response的Header信息的请求
当client来一个请求时,doService(HttpServletRequest request, HttpServletResponse response) throws ServletException ,IOException接受这个,并选择相应的请求选择相应的方法进行处理
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() //返回字节流
void sendRedirect(String URL) //重定向到某个页面
void sendError(int sc) //发生错误向客户端发送状态码
void sendError(int sc, String message)
void addCookie(Cookie cookie) //增加一个cookie
Cookie(String name, String value) // cookie的构造方法
4.SERVLET的生命周期
servlet loading ---> servlet instantiation ---> call init() ---> call doService handle request ---> call destroy()
public void init(ServletConfig config) throws ServletException
如果override这个方法必须先调用super.init(config)
public void init() throws ServletException
public void service() throws ServletException, IOException
public void destroy() throws ServletException
今天一大喜事当然就是我终于成立我自己的blog啦! 而且是一个java技术blog,很兴奋ing, 欢迎大家来吐口水,以后我会在这里多吐口水的.
没怎么写过blog, 但是看到好多人都有自己的blog,心里痒痒的,应该把自己的思想,自己学的新知识给大家分享应该是一种享受也......
圣诞快到了, 祝贺大家圣诞快乐!!!!!!