servlet过滤器简单入门
2018-03-19 16:42
453 查看
一.servlet过滤器能干什么?
1.在客户端的请求访问后端资源之前,拦截这些请求。
2.在服务器的响应发送回客户端之前,处理这些响应。
二.使用场景
1.网站统计
2.身份验证
3.数据压缩
4.数据加密
5.日志记录
6.图像转换
......
三.如何使用servlet过滤器
1.编写java类实现filter接口,重写doFilter方法
2.在web.xml文件中配置过滤器
四.小案例
1.项目结构如图:
2.三个类代码如下:public class HelloWorld extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletPath();
if("/hello.do".equals(path)){
showView(request,response);
}else{
showError(request,response);
}
}
public void showError(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter pw = response.getWriter();
pw.println("error! 失败!");
pw.flush();
pw.close();
}
public void showView(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter pw = response.getWriter();
pw.println("hello world! 成功!");
pw.flush();
pw.close();
}
}
3.web.xml配置如下图:<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>utils.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>logFilter</filter-name>
<filter-class>utils.LogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>web.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
结语:上面代码属于简化代码,重点是过滤器的使用
1.在客户端的请求访问后端资源之前,拦截这些请求。
2.在服务器的响应发送回客户端之前,处理这些响应。
二.使用场景
1.网站统计
2.身份验证
3.数据压缩
4.数据加密
5.日志记录
6.图像转换
......
三.如何使用servlet过滤器
1.编写java类实现filter接口,重写doFilter方法
2.在web.xml文件中配置过滤器
四.小案例
1.项目结构如图:
2.三个类代码如下:public class HelloWorld extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletPath();
if("/hello.do".equals(path)){
showView(request,response);
}else{
showError(request,response);
}
}
public void showError(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter pw = response.getWriter();
pw.println("error! 失败!");
pw.flush();
pw.close();
}
public void showView(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter pw = response.getWriter();
pw.println("hello world! 成功!");
pw.flush();
pw.close();
}
}
public class EncodingFilter implements Filter { public void destroy() { System.out.println("encodingfilter 执行结束!"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { response.setContentType("text/html;charset=utf-8"); chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { System.out.println("encodingfilter 执行开始..."); } }
public class LogFilter implements Filter { public void destroy() { System.out.println("logfilter 执行结束!"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { System.out.println("logfiler 执行开始..."); } }
3.web.xml配置如下图:<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>utils.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>logFilter</filter-name>
<filter-class>utils.LogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>web.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
结语:上面代码属于简化代码,重点是过滤器的使用
相关文章推荐
- Asp.Net MVC3 简单入门详解过滤器Filter
- Asp.Net MVC3 简单入门详解过滤器Filter
- Asp.Net MVC3 简单入门详解过滤器Filter
- servlet过滤器Filter入门
- Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- javaweb--Servlet过滤器Filter简单实现
- Asp.Net MVC3 简单入门详解过滤器Filter
- servlet过滤器Filter入门(转,有自己的例子)
- Asp.Net MVC3 简单入门详解过滤器Filter(身份验证、缓存、防盗链、国际化等)
- servlet过滤器Filter入门(转,有自己的例子)
- Asp.Net MVC3 简单入门详解过滤器Filter
- Asp.Net MVC3 简单入门详解过滤器Filter
- Asp.Net MVC3 简单入门详解过滤器Filter
- SpringSecurity 3.2入门(6)简单介绍默认使用的十一个过滤器
- Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门
- web入门-Servlet与过滤器
- 【转载】Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门
- Asp.Net MVC3 简单入门详解过滤器Filter
- Asp.Net MVC3 简单入门详解过滤器Filter