servlet知识点<六>
2016-03-04 12:47
218 查看
一、连接池[重点]
1、ojdbc5.jar放到 tomcat安装目录/lib 中
2、配置连接池,tomcat安装目录/conf/context.xml,加在</Context>标签之前
<Resource
driverClassName=""
url=""
username=""
password=""
name="jdbc/oracle"
type="javax.sql.DataSource"
auth="Container"
maxActive="最大连接数10"
minActive="最小连接数5"
maxIdle="最大空闲连接数2"
/>
3、写代码
//获取到JNDI资源树的树根
Context context = new InitialContext();
//获取数据源
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/oracle");
//获取连接对象
Connection conn = ds.getConnection();
//////把连接对象归还给连接池
conn.close();
JNDI:Java Naming and Directory Interface Java命名与目录接口
根据给定的资源路径和名称,查找资源
注意事项:1)context.xml中的配置,严格区分大小写
2)lookup方法的参数:java:comp/env/数据源的名称(和配置中的名称大小写一致)
二、request、session、ServletContext[重点]
1、request
1)客户端的请求
request.setCharacterEncoding("GBK");
String str = request.getParameter("文本框的名称");
String str = request.getParameter("url?后的参数名");
String[] likes = requst.getParameterValues("复选框的名称");
request.getRequestDispatcher("/url-pattern").forward(request, response);
2)作用域对象:
开始:client发出请求,即开始
结束:响应回到了client,即结束
使用:request.setAttribute("name", objval);//设置request中的命名属性
Object obj = request.getAttribute("name");//获取命名属性
2、session:同一个client的多次请求
1)作用域对象:
开始:client发请求,request.getSession(true)
结束:超时/遇到session.invalidate()
使用:session.setAttribute("name", objval);//设置session中的命名属性
Object obj = session.getAttribute("name");//获取命名属性
session.removeAttribute("name");//移除命名属性
2)特点:
周期比request长,跨越多个request
与client/IE绑定,一个IE对应着产生一个session
3)适合做的事情:同一个client的多次请求,想共享数据,如,登录后的帐号,在后续的请求页面中请显示
3、ServletContext:
1)是web.xml在内存中的表现。一个web应用,只有一个ServletContext对象(全局唯一)
ServletContext context = this.getServletContext();
String str = context.getInitParameter("name");//获取web.xml中配置的全局初始参数
web.xml,<context-param>....</context-param>
2)作用域对象:
开始:server启动
结束:server结束
使用:context.setAttribute("name", objval);//设置context中的命名属性
Object obj = context.getAttribute("name");//获取命名属性
context.removeAttribute("name");//移除命名属性
3)特点:
周期最长,从server启动 到 server结束
共享范围,同一个web应用中,被所有程序共享
4)适合做的事情:同一个web应用中,不同程序要共享数据时(不同的client/IE要共享数据)
举例:
游戏中的聊天室-聊天内容/在线用户列表(ServletContext)
购物车、登录用户信息、登录用户的权限(session)
错误提示信息(request)
三个作用域对象的对比:
开始 结束 共享范围 适合做的事情
request client请求 响应回client 同一请求 同一请求中要共享数据
session client请求,getSession(true)超时/invalidate() 同一IE 同一client要共享数据
context server启动 server停止 同一web应用 不同client要共享数据
三、Listener 监听器
1)事件模型:
事件源:发出事件的对象
事件:具体的事件/动作
监听器:事件处理程序
2)分类:生命周期监听器、命名属性监听器
生命周期监听器:ServletContextListener--针对ServletContext对象的创建和销毁进行监听
HttpSessionListener--针对HttpSession对象的创建和销毁进行监听
ServletRequestListener--针对ServletRequest对象的创建和销毁进行监听
命名属性监听器:ServletContextAttributeListener--针对ServletContext对象中命名属性的添加/修改/移除进行监听
HttpSessionAttributeListener--针对HttpSession对象中命名属性的添加/修改/移除进行监听
ServletRequestAttributeListener--针对ServletRequest对象中命名属性的添加/修改/移除进行监听
3)自定义监听器
写类 implements XXXListener
编写web.xml文件,在</filter-mapping>后面添加<listener>
<listener>
<listener-class></listener-class>
</listener>
相关文章推荐
- 常用前端代码资源
- 常用 Git 命令清单
- 经济杠杆原理典型例子
- 《从零开始学Swift》学习笔记(Day 46)——下标重写
- 最长回文子串
- servlet知识点<五>
- Android读写assets目录下面的资源文件(文件夹)
- HDU 2817 A sequence of numbers [快速幂]
- nativejs调用安卓蓝牙
- 《计算机网络》知识要点二物理层
- SQL面试心得
- Rotate Image
- servlet知识点<四>
- POJ 1995 快速幂模板
- Proud Merchants(POJ 3466 01背包+排序)
- 初等几何(1):三角形、四边形、正多边形
- android文件读取asse 4000 ts
- 2015 Xcode7 真机调试(开发者)以及P12配置---简书
- iOS UIcollectionview 数据量少时候bounces无效的解决方法
- 开发问题火狐出现内存泄漏错误