java filter 过滤器的使用
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其中:
/* 所有
/*.jsp 某一类
/a/* 某目录下所有
/a.jsp 某一个文件
(1)index.jsp 请求:
$("#testAddSeachAction").click(function(){
window.location.href="a/AddSeachAction";
});
(2)被web.xml的filter的
<servlet-mapping>
<servlet-name>Atest</servlet-name>
<url-pattern> /a/Atest</url-pattern>
</servlet-mapping>
(3)过滤器截获,执行filter的代码:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
Connection conn = null;
try {
//获取连接
conn = new BaseDao().getConn();
//开启事物
conn.setAutoCommit(false);
//绑定事物
ConnectionContext.getInstence().bind(conn);
//转到servelet
chain.doFilter(request, response);
//提交事物
conn.commit();
} catch (Exception e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}finally{
//解除绑定
ConnectionContext.getInstence().remove();
//关闭连接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
(4)执行到:
chain.doFilter(request, response);
(5)web.xml找到要请求的serverlet:
<servlet-mapping>
<servlet-name>Atest</servlet-name>
<url-pattern> /a/Atest</url-pattern>
</servlet-mapping>
(6)执行到servlet的代码
跳转是注意路径
response.sendRedirect ("../c.jsp");
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其中:
/* 所有
/*.jsp 某一类
/a/* 某目录下所有
/a.jsp 某一个文件
(1)index.jsp 请求:
$("#testAddSeachAction").click(function(){
window.location.href="a/AddSeachAction";
});
(2)被web.xml的filter的
<servlet-mapping>
<servlet-name>Atest</servlet-name>
<url-pattern> /a/Atest</url-pattern>
</servlet-mapping>
(3)过滤器截获,执行filter的代码:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
Connection conn = null;
try {
//获取连接
conn = new BaseDao().getConn();
//开启事物
conn.setAutoCommit(false);
//绑定事物
ConnectionContext.getInstence().bind(conn);
//转到servelet
chain.doFilter(request, response);
//提交事物
conn.commit();
} catch (Exception e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}finally{
//解除绑定
ConnectionContext.getInstence().remove();
//关闭连接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
(4)执行到:
chain.doFilter(request, response);
(5)web.xml找到要请求的serverlet:
<servlet-mapping>
<servlet-name>Atest</servlet-name>
<url-pattern> /a/Atest</url-pattern>
</servlet-mapping>
(6)执行到servlet的代码
跳转是注意路径
response.sendRedirect ("../c.jsp");