一:连接池
1. 概念:为Web应用创建定量的连接对象,保存在内存中(连接池),每次访问时从池中获取连接对象,使用完毕后,放回池中。
2. Tomcat连接池开发过程://密码不能太短
I. 提供数据库连接Jar包(ojdbc5.jar),导入到tomcat/lib中。
“ojdbc5.jar”,适用于jdk5.0。
“ojdbc6.jar”, 适用于jdk6.0。
“ojdbc14.jar”,适用于 JDK 1.4 and 5.0。
备注:jdk高版本的话,可以用”ojdbc6.jar“即可.
II. 在tomcat/conf/context.xml中增加<resource />标签。
III. 编码:// 1.获取Context.xml对象 2.查找访问名称
//java:comp/env/是java中JNDI固定写法。
IV.注意:属于Tomcat,必须在web环境下使用,不可使用main函数 junit测试。
V. 缺点:与服务器耦合太强,不利于维护,建议使用第三方开源连接池、框架连接池(MyBatis、Hibernate、Spring)。
3. DBCP连接池使用过程:第三方连接池
I. 引入Jar包(ojdbc6.jar)
II. 引入配置文件。(不能改动键---可以更换值)
III. 编码:
二:过滤器
1. 概念:
I. javax.servlet.Filter接口是实现类对象,服务器启动时创建的对象。
II. 执行地位在Servlet之前,请求时,会先经过Filter,再到达目标Servlet中;响应时,会根据执行流程再次反向执行Filter。
III. 可以解决多个Servlet共性代码的冗余问题(乱码处理、登录验证)。
2. 实现步骤:
①:自定义实现Filter接口
②:重写javax.servlet.Filter中的三个方法
init初始化,程序加载时调用
destory web程序的结束
doFilter() 核心拦截办法
public class MyFilter implements Filter {
@Override
public void destroy() {
}
// 核心拦截方法
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
// 允许链继续调用下一个Filter,若无过滤器,则负责传递到Servlet
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}
③:配置web.xml
<filter> :配置 Filter 名称,实现类以及初始化参数。可以同时配置多个初始化参数。
<filter-mapping> :配置什么规则下使用这个Filter 。
<url-pattern> :配置url的规则,可以配置多个,也可以使用通配符(*)。例如 /jsp/* 适用于本ContextPath下以“/jsp/ ”开头的所有servlet路径
多个filter的配置顺序即过滤器链调用顺序。
<dispatcher> :配置到达servlet的方式,可以同时配置多个。有四种取值:REQUEST、FORWARD、ERROR、INCLUDE。如果没有配置,则默认为REQUEST。它们的区别是:
# REQUEST :表示仅当直接请求servlet时才生效。
# FORWARD :表示仅当某servlet通过forward转发到该servlet时才生效。
# INCLUDE :Jsp中可以通过<jsp:include/>请求某servlet, 只有这种情况才有效。
# ERROR :Jsp中可以通过<%@page errorPage="error.jsp" %>指定错误处理页面,仅在这种情况下才生效。
4. 常用的Filter
I. 统一处理字符乱码:
II. 所有Servlet的权限验证(除:登录、注册):
三:监听器
1. 概念:等待一个特定事件的发生,一旦发生,则会触发监听器的事件执行(某个任务)。
2. HttpSessionListener:
监视HttpSession对象的创建和销毁
3. ServletContextListener:
监视ServletContext对象的创建与销毁
Xml文件配置
Session对象的创建意味着服务器与客户端进行了一次会话,我们在进行UV统计的时候,以用户登录的Session创建为基准,统计在线人数。