数据库的包
- commons-dbutils-1.4.jar包将对数据库的读、写封装在QueryRunner对象中。但是没有对数据库的事务的操作处理
- itcast的包cn.itcast.jdbc.TxQueryRunner对象对包含了对事物的操作。并且里面封装了<threadLocal对象,对多线程的数据库进行管理。在事务操作中可以直接用
try{
txquery.beginstractiion();:调用con,并放入ThreadLocal《》中
method1();
method2();
txquere.trasactioncommit();
}catch exception e{
txquery.rollback();
}
方法二:不用事务的事务的时候
con=getconnnection()获取连接,如果事务开启后,就用哪个连接,如果没有就从资源池中调取以个连接
操作(con);
con.release()。释放,会判断与Thread中的连接相同,如果相同什么都不做,如果不同释放。
- 数据库中的数据可以变成map或者javabean对象,map也可以通过函数变成javabean对象如下,commonUtil是apache提供的java包
CommonUtils.toBean(req.getParameterMap(), Customer.class)
4、uuid,根据ip地址、mac地址、时间生成的伪随码,32位不相同。其中itcast的包中包含了。
UUID.randomUUID().toString().replace("-", "").toUpperCase()
web程序的框架:
包组成如下:
- com.zhao.xiangmu1.dao:对数据库的操作对象CustomerDao
- com.zhao.xiangmu1.domin:数据库中的记录的对象表示,CustomerDomin
- com.zhao.xiangmu1.service:业务逻辑处理部分,CustomerService
- com.zhao.xiangmu1.servlet:web的control部分,负责业务的转发CustomerDao
- jsp:显示接口,与servlet进行交互
分层管理
分层管理简化耦合性,便于维护,便于联合开发。
- MCV:modole是service、dao、domin,负责业务部分;control指servlet负责业务的转发;view是jsp,显示交互
- 三层: 数据库部分dao、domin;service业务层;web部分jsp与servlet
分页
查询主要利用mysql的limit 10,2。其他数据库也能实现。
监听器 listener
监听器是对 对象的行为进行检测,并调用预先设置好的方法的行为。几部分组成:
- 发生对象
- 发生事件
- 调用事件 综上:监听器是事件触发的一种行为。监听器需要提前注册,在项目的web.xml中
<listener>
<listener-class>cn.itcast.listener.MyServletContextListener</listener-class>
</listener>
<listener>
<listener-class>cn.itcast.listener.MyHttpSessionListener</listener-class>
</listener>
<listener>
<listener-class>cn.itcast.listener.MyServletRequestListener</listener-class>
</listener>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
最后面是设置session失效时间时间
生命周期监听器 3个
在对象的创建于销毁的时候调用的对象,里面有两个函数Initialized与Destroyed函数,其中servlet是在tomcat 启动的时候创建,在关闭的时候销毁。可以项目启动的做一些事情,例如创建资源等。session是在调用session对象的时候才创建,request是在请求的时候创建
- ServletContextListener
- HttpSessionListener
- ServletRequestListener
事件对象监听器 3个
在对session、context、request的对象添加、删除、修改属性的时候,会调用的监听器。
- ServletContextEvent:ServletContext getServletContext();
- HttpSeessionEvent:HttpSession getSession();
- ServletRequestEvent:
HttpSessionBindingListener监听器
这个监听器不用注册,主要功能是实现这个接口的对象在加入session与移除session的时候会调用的监听器,这个监听器,不用注册。有两个函数
- public void valueUnbound(HttpSessionBindingEvent event)
- public void valueBound(HttpSessionBindingEvent event) 相应的对象实现ublic class User implements HttpSessionBindingListener接口即可。
HttpSessionActivationListener监听器
首先session的声明活动如下:
- 产生当有调用session对象的时候才产生
- 销毁,主动销毁调用invalid。被动销毁,不活动时间超时。或者服务器关闭。
- 钝化与活化,服务器的内存考虑。达到
session当服务器关闭的时候会将session对象存放到硬盘上,当再次开启的时候,session会读取。在context.xml中可以关闭session。取消注释
session中的对象如果不实现seriable,在活化的时候不能进行对象的恢复。只有实现了串行化才能写入文件中。
设置session的钝化与活化时间。钝化后咋work中的对目录下生成session。
<Context path="/sql19" docBase="D:\java_temp\jsp\out\artifacts\sql19_war_exploded" >
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="mysession"/>
</Manager>
</Context>
感知性检测器,不用注册。当session达到一定的时间后。
- public void sessionWillPassivate(HttpSessionEvent se):当对象感知被活化时调用本方法;
- public void sessionDidActivate(HttpSessionEvent se):当对象感知被钝化时调用本方法;
国际化
国际化主要利用Local对象,property文件中写入不同的值。ResourceBundle对象根据local的值会自动选择。网页中的值,需要从ResourceBundle对象获取。