清河做网站哪儿便宜,wordpress页眉页脚的底色,宝塔搭建完wordpress,网站建设流程域名申请本文主要对filter的基本使用进行了讲解#xff0c;其中涉及到了 filter是什么 一个filter处理一个jsp 多个filter处理一个jsp filter是什么 Filter 是java下的一种过滤器 #xff0c;能实现对java web程序 客户端和服务器端消息的过滤#xff0c;也就是在服务器段接受reques…本文主要对filter的基本使用进行了讲解其中涉及到了 filter是什么 一个filter处理一个jsp 多个filter处理一个jsp filter是什么 Filter 是java下的一种过滤器 能实现对java web程序 客户端和服务器端消息的过滤也就是在服务器段接受request之前可以预先对request进行处理或在客户端接受response之前对response进行处理。 Filter的使用非常灵活是在“链”到客户端和服务器之间的在需要时可以配置到客户端与服务器之间在不需要时可以去掉。filter还可以设置其对发送到哪些页面或从哪些页面发出的消息进行过滤即是一中横切性的编程可插拔。Filter执行的大致过程如下图 实现filter相关的功能需要实现javax.servlet.jar包下的filter接口该接口有三个方法分别是init doFilterdestory方法把需要执行某些功能的代码放到doFilter方法中 一个Filter处理一个jsp 实现filter要实现javax.servlet包下的filter接口本例子实现的是设置所有jsp也的字符编码 package com.tgb.drp.util.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;/*** 采用filter统一处理字符集**/
public class CharsetEncodingFilter implements Filter {private String encodeString;//Filter注销方法Overridepublic void destroy() {}//filter要实现的功能Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.println(begin);// 设置字符集request.setCharacterEncoding(encodeString);//继续向下执行如果还有其他filter继续调用其他filter没有的话将消息发送给服务器或客户端chain.doFilter(request, response);System.out.println(end);}//初始化方法Overridepublic void init(FilterConfig filterConfig) throws ServletException {//encodeStringfilterConfig.getInitParameter(encoding);}}写好filter类后需要在配置文件中设置对哪些request和response进行过滤处理本例子设置对所有的jsp页进行处理在web.xml的web-app节点下配置好后可以写一个jsp页进行测试了。 filterfilter-nameCharsetEncodingFilter/filter-namefilter-classcom.tgb.drp.util.filter.CharsetEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueGBK/param-value/init-param/filterfilter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern*.jsp/url-pattern/filter-mapping 多个filter处理一个jsp页 如果想实现多个filter对同一个jsp页进行处理例如既需要设置字符编码又需要验证身份只需要在在写好响应的filter后继续配置在web.xml里。我们继续上面的例子再写一个验证身份的Filter命名为AuthenticationFilter代码如下 package com.tgb.drp.util.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class AuthenticationFilter implements Filter {Overridepublic void destroy() {}Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//控制用户访问权限HttpServletRequest req(HttpServletRequest)request;HttpServletResponse res(HttpServletResponse)response;HttpSession sessionreq.getSession();if(session.getAttribute(user_info)!null){chain.doFilter(request, response);}else{res.sendRedirect(req.getContextPath()/error.html);}}Overridepublic void init(FilterConfig filterConfig) throws ServletException {}} 然后在配置文件里继续进行下配置代码如下 ?xml version1.0 encodingUTF-8?
web-app version2.4 xmlnshttp://java.sun.com/xml/ns/j2ee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdwelcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-list filterfilter-nameCharsetEncodingFilter/filter-namefilter-classcom.tgb.drp.util.filter.CharsetEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueGBK/param-value/init-param/filterfilter-mappingfilter-nameCharsetEncodingFilter/filter-nameurl-pattern*.jsp/url-pattern/filter-mappingfilterfilter-nameAuthenticationFilter/filter-namefilter-classcom.tgb.drp.util.filter.AuthenticationFilter/filter-class/filterfilter-mappingfilter-nameAuthenticationFilter/filter-nameurl-pattern*.jsp/url-pattern/filter-mappingsession-configsession-timeout60/session-timeout/session-config
/web-app好了到此就可以设置两个filter对一个jsp页进行处理了当启动tomcat访问响应的jsp页时设置的filter就会起作用。