??xml version="1.0" encoding="utf-8" standalone="yes"?>在线观看午夜看亚太视频,成a人v在线播放,国产97在线观看http://www.aygfsteel.com/lukewange-hit1983/category/33798.htmlpresentzh-cnMon, 03 Nov 2008 22:55:54 GMTMon, 03 Nov 2008 22:55:54 GMT60servletqo(h)?/title><link>http://www.aygfsteel.com/lukewange-hit1983/archive/2008/10/28/237119.html</link><dc:creator>LukeW</dc:creator><author>LukeW</author><pubDate>Tue, 28 Oct 2008 06:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/lukewange-hit1983/archive/2008/10/28/237119.html</guid><wfw:comment>http://www.aygfsteel.com/lukewange-hit1983/comments/237119.html</wfw:comment><comments>http://www.aygfsteel.com/lukewange-hit1983/archive/2008/10/28/237119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lukewange-hit1983/comments/commentRss/237119.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lukewange-hit1983/services/trackbacks/237119.html</trackback:ping><description><![CDATA[<h3 title=""><a >servletqo(h)?/a></h3> <div> 1. Servletqo(h)器基 <br /> Servletqo(h)器是Servlet的一U特D用法,主要用来完成一些通用的操作。比如编码的qo(h)Q判断用L(fng)登陆状态等{。Servletqo(h)器的适用场合Q? <br /> AQ认证过? <br /> BQ登录和审核qo(h) <br /> CQ图像{换过? <br /> DQ数据压~过? <br /> EQ加密过? <br /> FQo(h)牌过? <br /> GQ资源访问触发事件过? <br /> Servletqo(h)器接口的构成Q? <br /> 所有的Servletqo(h)器类都必d现javax.servlet.Filter接口。这个接口含?个过滤器cdd现的Ҏ(gu)Q? <br /> Ҏ(gu) 说明 <br /> init(FilterConfig cfg) q是Servletqo(h)器的初始化方法,性质{同与servlet的initҎ(gu)? <br /> doFilter(ServletRequest,ServletResponse,FilterChain) 完成实际的过滤操作,当请求访问过滤器兌的URLӞServlet容器先调用qo(h)器的doFilterҎ(gu)。FilterChain参数用于讉K后箋qo(h)? <br /> destroy() Servlet容器在销毁过滤器实例前调用该Ҏ(gu)Q这个方法中可以释放Servletqo(h)器占用的资源。性质{同与servlet的destory()Ҏ(gu)? <br /> Servletqo(h)器的创徏步骤Q? <br /> AQ实现javax.servlet.Filter接口的servletc? <br /> BQ实现initҎ(gu)Q读取过滤器的初始化函数 <br /> CQ实现doFilterҎ(gu)Q完成对h或过滤的响应 <br /> DQ调用FilterChain接口对象的doFilterҎ(gu)Q向后箋的过滤器传递请求或响应 <br /> F.在web.xml中配|Filter <br /> 2.使用qo(h)器处理中文问? <br />    当用用户登陆面输入帐号Ӟ如果输入是中文,后台servlet再次输出q个内容Ӟ可能׃(x)是ؕ码,q是因ؓ(f)serlvet中默认是以ISO-8859-1格式~码的,如果后台有多个Servlet,多个参数Q这样就不合适,q个问题Q我们可以通过一个过滤器l一解决Q后台的输出都支持中文Q将ISO-8859-1转码为GBK的那D代码! <br /> 3.使用qo(h)器认证用P(x) <br /> 每个qo(h)器也可以配置初始化参敎ͼ可以不需要过滤的地址配置到这个Filter的配|参CQ过滤时Q如果请求地址在配|参CQ则放行Q这? 避免了在程序中编码。每个Filter中初始化Ӟ都可以得到配|对象,在Filter中配|二个不需要过滤的地址Q一个是登陆面Q一个是执行登陆 认证的servletQ? <br /> 4.Servlet监听? <br /> cM与Swing界面应用开发,Servlet也可以创建监听器Q以对Servlet容器Q或Servlet中以象的事g做出反应。Servlet监听器主要有以下几种Q? <br /> ServletRequestListener ,ServletRequestAttributeListenerQ? <br /> HttpSessionActivationListener ,HttpSessionBindingListener , <br /> HttpSessionAttributeListener,HttpSessionListener, <br /> ServletContextListener{等? <br /> q些监听器主要用来监听session,request,applicationq三个对象里存取数据的变化?br /> ----------------------------------------------------------------------------------------------------------------<br /> <br /> <p>servlet API中最重要的一个功能就是能够ؓ(f)servlet和JSP面定义qo(h)器。过滤器提供了某些早期服务器所支持的非标准“servlet链接”的一U功能强大且标准的替代品?br />                                                                                                 <br />      qo(h)器是一个程序,它先于与之相关的servlet或JSP面q行在服务器上。过滤器可附加到一个或多个servlet或JSP面上,q且可以(g)查进入这些资源的h信息。在q之后,qo(h)器可以作如下的选择Q?br /> <br /> <font size="+0">1. 以常规的方式调用资源</font>Q即Q调用servlet或JSP面Q?br /> <br /> <font size="+0">2.利用修改q的h信息调用资源?br /> </font><br /> <font size="+0">3. 调用资源Q但在发送响应到客户机前对其q行修改<br /> <br /> </font><font size="+0">4. L该资源调?/font>Q代之以转到其他的资源,q回一个特定的状态代码或生成替换输出?/p> <p>qo(h)器提供了几个重要好处 Q?/p> <p><br />         首先Q它以一U模块化的或可重用的方式装公共的行为。你?0个不同的serlvet或JSP面Q需要压~它们的内容以减下载时间吗Q没问题Q构造一个压~过滤器Q然后将它应用到30个资源上卛_?br /> <br /> 其次Q利用它能够高U访问决{与表现代码相分R这对于JSP特别有h(hun)|其中一般希望将几乎整个面集中在表CQ而不是集中在业务逻辑上。例如,? 望阻塞来自某些站点的讉K而不用修改各面Q这些页面受到访问限Ӟ吗?没问题:(x)建立一个访问限制过滤器q把它应用到惌限制讉K的页面上卛_?br /> <br />      最后,qo(h)器你能够对许多不同的资源进行批量性的更改。你有许多现存资源,q些资源除了公司名要更改外其他的保持不变Q能办到么?没问题:(x)构造一个串替换qo(h)器,只要合适就使用它?br /> <br />      但要注意Q过滤器只在与servlet规范2.3版兼容的服务器上有作用。如果你的Web应用需要支持旧版服务器Q就不能使用qo(h)器?br /> <br /> <font size="+0"><span twffan="done">1Q?nbsp;  建立基本qo(h)?/span><br /> <br /> </font>建立一个过滤器涉及(qing)下列五个步骤Q?br /> 1Q徏立一个实现Filter接口的类。这个类需要三个方法,分别是:(x)doFilter、init和destroy?br />        doFilterҎ(gu)包含主要的过滤代码(见第2步)QinitҎ(gu)建立讄操作Q而destroyҎ(gu)q行清楚?br /> <br /> 2Q在doFilterҎ(gu)中放入过滤行为。doFilterҎ(gu)的第一个参Cؓ(f)ServletRequest对象。此对象l过滤器提供了对q入的信? Q包括表单数据、cookie和HTTPh_(d)的完全访问。第二个参数为ServletResponseQ通常在简单的qo(h)器中忽略此参数。最后一个参 Cؓ(f)FilterChainQ如下一步所qͼ此参数用来调用servlet或JSPc(din)?br /> <br /> 3Q调用FilterChain对象的doFilterҎ(gu)。Filter接口的doFilterҎ(gu)取一个FilterChain对象作ؓ(f)它的一个参 数。在调用此对象的doFilterҎ(gu)ӞȀzM一个相关的qo(h)器。如果没有另一个过滤器与servlet或JSP面兌Q则servlet或JSP 面被激zR?br /> <br /> 4Q对相应的servlet和JSP面注册qo(h)器。在部v描述W文Ӟweb.xmlQ中使用filter和filter-mapping元素?br /> <br /> 5Q禁用激zdservlet。防止用户利用缺省servlet URLl过qo(h)器设|?br /> <br /> 1.1   建立一个实现Filter接口的类<br />       所有过滤器都必d现javax.servlet.Filter。这个接口包含三个方法,分别为doFilter、init和destroy?br /> <br /> public void doFilter(ServletRequset request, <br />                      ServletResponse response,<br />                      FilterChain chain)<br />      thows ServletException, IOException<br /> <br /> 每当调用一个过滤器Q即Q每ơ请求与此过滤器相关的servlet或JSP面Q时Q就执行其doFilterҎ(gu)。正是这个方法包含了大部分过滤逻辑? W一个参Cؓ(f)与传入请求有关的ServletRequest。对于简单的qo(h)器,大多数过滤逻辑是基于这个对象的。如果处理HTTPhQƈ且需要访问诸 如getHeader或getCookies{在ServletRequest中无法得到的Ҏ(gu)Q就要把此对象构造成 HttpServletRequest?br /> <br /> W二个参Cؓ(f)ServletResponse。除了在两个情Ş下要使用它以外,通常忽略q个参数。首先,如果希望完全d对相关servlet或JSP? 面的讉K。可调用response.getWriterq直接发送一个响应到客户机。其ơ,如果希望修改相关的servlet或JSP面的输出,可把? 应包含在一个收集所有发送到它的输出的对象中。然后,在调用serlvet或JSP面后,qo(h)器可(g)查输出,如果合适就修改它,之后发送到客户机?br /> <br /> DoFilter的最后一个参Cؓ(f)FilterChain对象。对此对象调用doFilter以激zMservlet或JSP面相关的下一个过滤器。如果没有另一个相关的qo(h)器,则对doFilter的调用激zservlet或JSP本n?br /> <br /> public void init(FilterConfig config)   thows ServletException<br /> <br /> initҎ(gu)只在此过滤器W一ơ初始化时执行,不是每次调用qo(h)器都执行它。对于简单的qo(h)器,可提供此Ҏ(gu)的一个空体,但有两个原因需要用init? 首先QFilterConfig对象提供对servlet环境?qing)web.xml文g中指zqo(h)器名的访问。因此,普遍的办法是利用init? FilterConfig对象存放在一个字D中Q以便doFilterҎ(gu)能够讉Kservlet环境或过滤器?其次QFilterConfig对象? 有一个getInitParameterҎ(gu)Q它能够讉K部v描述W文Ӟweb.xmlQ中分配的过滤器初始化参数?br /> <br /> public void destroy( )<br />      大多数过滤器单地为此Ҏ(gu)提供一个空体,不过Q可利用它来完成诸如关闭qo(h)器用的文g或数据库q接池等清除d?br /> <span twffan="done"><br /> 1.2   过滤行为放入doFilterҎ(gu)</span><br />      doFilterҎ(gu)为大多数qo(h)器地关键部分。每当调用一个过滤器Ӟ都要执行doFilter。对于大多数qo(h)器来_(d)doFilter执行的步骤是 Z传入的信息的。因此,可能要利用作为doFilter的第一个参数提供的ServletRequest。这个对象常常构造ؓ(f) HttpServletRequestcdQ以提供对该cȝ更特D方法的讉K?br /> <br /> <font size="+0"><span twffan="done">1.3   调用FilterChain对象的doFilterҎ(gu)</span><br /> </font>     Filter接口的doFilterҎ(gu)以一个FilterChain对象作ؓ(f)它的W三个参数。在调用该对象的doFilterҎ(gu)ӞȀzM一个相关的 qo(h)器。这个过E一般持l到链中最后一个过滤器为止。在最后一个过滤器调用其FilterChain对象的doFilterҎ(gu)ӞȀzservlet? 面自n?br /> 但是Q链中的Lqo(h)器都可以通过不调用其FilterChain的doFilterҎ(gu)中断q个q程。在q样的情况下Q不再调用JSP面的serlvetQƈ且中断此调用q程的过滤器负责输出提供给客户机?br /> <span twffan="done"><br /> 1.4   寚w当的servlet和JSP面注册qo(h)?/span><br />      部v描述W文件的2.3版本引入了两个用于过滤器的元素,分别是:(x)filter和filter-mapping。filter元素向系l注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL?br /> <br /> 1.filter元素<br /> filter元素位于部v描述W文Ӟweb.xmlQ的前部Q所有filter-mapping、servlet或servlet-mapping元素之前。filter元素h如下六个可能的子元素Q?br /> <br /> 1?icon   q是一个可选的元素Q它声明IDE能够使用的一个图象文件?br /> 2、filter-name   q是一个必需的元素,它给qo(h)器分配一个选定的名字?br /> 3、display-name   q是一个可选的元素Q它l出IDE使用的短名称?br /> 4?description   q也是一个可选的元素Q它l出IDE的信息,提供文本文档?br /> 5?filter-class   q是一个必需的元素,它指定过滤器实现cȝ完全限定名?br /> 6?init-param   q是一个可选的元素Q它定义可利用FilterConfig的getInitParameterҎ(gu)d的初始化参数。单个过滤器元素可包含多个init-param元素?br /> <br /> h意,qo(h)是在serlvet规范2.3版中初次引入的。因此,web.xml文g必须使用DTD?.3版本。下面介l一个简单的例子Q?/p> <p>  <font color="#ff6600" size="2"><</font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(255, 0, 255);">xml version="1.0" encoding="ISO-8859-1"</span><span twffan="done" style="color: rgb(0, 0, 255);">?></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">    </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(255, 0, 255);">DOCTYPE web-app PUBLIC<br />         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"<br />          "http://java.sun.com/dtd/web-app_2_3.dtd"</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">    </font></span><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">web-app</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">     </font></span><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">        </font></span><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">MyFilter</span></font></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">        </font></span><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">myPackage.FilterClass</span></font></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">      </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">      </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">      </font></span><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">...</span></font></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#ff6600" size="2">     <</font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#ff6600"><font size="2"><span twffan="done" style="color: rgb(128, 0, 0);">web-app</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> </span><br /> <span twffan="done"><br /> <font color="#000000">2.filter-mapping元素</font></span><br /> <font color="#000000">    filter-mapping元素位于web.xml文g中filter元素之后serlvet元素之前。它包含如下三个可能的子元素Q?br /> <br /> 1?filter-name   q个必需的元素必M用filter元素声明时给予过滤器的名U相匚w?br /> <br /> 2?url-pattern   此元素声明一个以斜杠Q?Q开始的模式Q它指定qo(h)器应用的URL。所有filter-mapping元素中必L供url-pattern? servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素V如果希望过滤器适用于多个模式,可重? 整个filter-mapping元素?br /> <br /> 3?servlet-name   此元素给Z个名Uͼ此名U必M利用servlet元素l予servlet或JSP面的名U相匚w。不能给单个filter-mapping元素提供 多个servlet-name元素V如果希望过滤器适合于多个servlet名,可重复这个filter-mapping元素?br /> 下面举一个例子:(x)</font></span></span></span></span></span></span></span></p> <p><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">xml version</span><span twffan="done" style="color: rgb(0, 0, 0);">=</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">1.0</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);"> encoding</span><span twffan="done" style="color: rgb(0, 0, 0);">=</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">ISO-8859-1</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">?></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">DOCTYPE web</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span></font><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">app PUBLIC<br />         </span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">        </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">http://java.sun.com/dtd/web-app_2_3.dtd</span><span twffan="done" style="color: rgb(0, 0, 0);">"</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">web</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">app</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">        </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">name</span><span twffan="done" style="color: rgb(0, 0, 0);">></span><span twffan="done" style="color: rgb(0, 0, 0);">MyFilter</span></font><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">name</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">        </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 255);">class</span><span twffan="done" style="color: rgb(0, 0, 0);">></span><span twffan="done" style="color: rgb(0, 0, 0);">myPackage.FilterClass</span></font><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 255);">class</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">mapping</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">        </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">name</span><span twffan="done" style="color: rgb(0, 0, 0);">></span><span twffan="done" style="color: rgb(0, 0, 0);">MyFilter</span></font><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">name</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">        </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);"><</span><span twffan="done" style="color: rgb(0, 0, 0);">url</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">pattern</span><span twffan="done" style="color: rgb(0, 0, 0);">>/</span><span twffan="done" style="color: rgb(0, 0, 0);">someDirectory</span><span twffan="done" style="color: rgb(0, 0, 0);">/</span><span twffan="done" style="color: rgb(0, 0, 0);">SomePage.jsp</span></font><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">url</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">pattern</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">mapping</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 0);">web</span><span twffan="done" style="color: rgb(0, 0, 0);">-</span><span twffan="done" style="color: rgb(0, 0, 0);">app</span><span twffan="done" style="color: rgb(0, 0, 0);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> </span></span></span></span></span></span></span></span></span></span></p> <p><br /> <font color="#000000"><font size="+0"><span twffan="done">1.5   用Ȁzdservlet</span><br /> </font>     在对资源应用qo(h)器时Q可通过指定要应用过滤器的URL模式或servlet名来完成。如果提供servlet名,则此名称必须与web.xml? servlet元素中给出的名称相匹配。如果用应用到一个serlvet的URL模式Q则此模式必M利用web.xml的元素servlet- mapping指定的模式相匚w。但是,多数服务器?#8220;Ȁzdservlet”为servlet体统一个缺省的URLQhttp: //host/WebAppPrefix/servlet/ServletName。需要保证用户不利用q个URL讉KservletQ这样会(x)l过qo(h)? 讄Q?br /> 例如Q假如利用filter和filter-mapping指示名ؓ(f)SomeFilter的过滤器应用到名为SomeServlet的servletQ则如下Q?/font></p> <p><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">SomeFilter</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">somePackage.SomeFilterClass</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">   <</font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">SomeFilter</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">SomeServlet</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">     <</font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> </span></span></span></span></span></span></span></p> <p><br /> <br /> <font color="#000000">接着Q用servlet和servlet-mapping规定URL   http://host/webAppPrefix/Blah 应该调用SomeSerlvetQ如下所C:(x)</font></p> <p><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">SomeFilter</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">somePackage.SomeFilterClass</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">SomeFilter</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);"><font size="+0">>/Blah</font></span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">     <</font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">filter-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> </span></span></span></span></span></span></span></p> <p><br /> <br /> <font color="#000000">现在Q在客户Z用URL   http://host/webAppPrefix/Blah 时就?x)调用过滤器。过滤器不应用到<br /> http://host/webAppPrefix/servlet/SomePackage.SomeServletClass?br /> 管有关闭激zd的服务器专用Ҏ(gu)。但是,可移植最强的Ҏ(gu)旉新映Web应用钟的/servlet模式Q这样所有包含此模式的请求被送到相同? servlet中。ؓ(f)了重新映此模式Q首先应该徏立一个简单的servletQ它打印一条错误消息,或重定向用户到顶层页。然后,使用servlet? servlet-mapping元素发送包?servlet模式的请求到该servlet。程序清?-1l出了一个简短的例子?br /> <br /> E序清单9-1 web.xmlQ重定向~省servlet URL的摘录)</font></p> <p> <span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(255, 0, 255);">xml version="1.0" encoding="ISO-8859-1"</span><span twffan="done" style="color: rgb(0, 0, 255);">?></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(255, 0, 255);">DOCTYPE web-app PUBLIC<br />          "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"<br />          "http://java.sun.com/dtd/web-app_2_3.dtd"</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">web-app</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">Error</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">somePackage.ErrorServlet</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-class</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">Error</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-name</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">      </font></span><font color="#808080"><span twffan="done" style="color: rgb(0, 0, 255);"><</span><span twffan="done" style="color: rgb(128, 0, 0);">url-pattern</span><span twffan="done" style="color: rgb(0, 0, 255);">></span><span twffan="done" style="color: rgb(0, 0, 0);">/servlet/*</span></font><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">url-pattern</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">servlet-mapping</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    </font></span><span twffan="done" style="color: rgb(0, 0, 0);"><br /> <font color="#808080">    <</font></span><span twffan="done" style="color: rgb(0, 0, 255);"><font color="#808080"><span twffan="done" style="color: rgb(128, 0, 0);">web-app</span><span twffan="done" style="color: rgb(0, 0, 255);">></span></font></span></span></span></span></span></span></span></span></span></p> -------------------------------------------------------------------------------------------<br /> <strong><span style="color: rgb(255, 8, 8);">解决q</span></strong><br /> <br /> <p>web.xml加配|?/p> <p><!--   qo(h)?--><br />  <filter><br />   <filter-name>Filter</filter-name><br />   <filter-class><br />    com.util.EncodingFilter<!-- qo(h)器类 --><br />   </filter-class><br />   <init-param><br />    <param-name>Encoding</param-name><br />    <param-value>gb2312</param-value><br />   </init-param><br />  </filter><br />  <filter-mapping><br />   <filter-name>Filter</filter-name><br />   <url-pattern>/*</url-pattern><br />  </filter-mapping></p> <p>EncodingFilter.java</p> <p>package com.hibernate.util;</p> <p>import java.io.IOException;</p> <p>import javax.servlet.Filter;<br /> import javax.servlet.FilterChain;<br /> import javax.servlet.FilterConfig;<br /> import javax.servlet.ServletException;<br /> import javax.servlet.ServletRequest;<br /> import javax.servlet.ServletResponse;</p> <p>public class EncodingFilter implements Filter {<br />  protected FilterConfig config;</p> <p> protected String Encoding = null;</p> <p> public void init(FilterConfig config) throws ServletException {</p> <p>  this.config = config;<br />   this.Encoding = config.getInitParameter("Encoding");</p> <p> }</p> <p> public void doFilter(ServletRequest request, ServletResponse response,<br />    FilterChain chain) throws IOException, ServletException {</p> <p>  if (request.getCharacterEncoding() == null) {<br />    if (Encoding != null) {<br />     request.setCharacterEncoding(Encoding);<br />     response.setCharacterEncoding(Encoding);<br />    }<br />   }<br />   chain.doFilter(request,response);<br />  }<br />  public void destroy() {}<br /> }</p> <p>OK!!!</p> ----------------------------------------------------------------------------------------------------<br /> <br /> 很简单的qo(h)器,是Z记录一个url的请求时?filter:<br /> <ol start="1"> <li>package com.javaeye.wqf;  </li> <li>import javax.servlet.*;  </li> <li>  </li> <li>public class CounterFilter implements Filter {  </li> <li>    public void doFilter(ServletRequest request, ServletResponse response,  </li> <li>            FilterChain chain) throws IOException, ServletException {  </li> <li>        long start = System.currentTimeMillis();  </li> <li>        System.out.println("Filter start at "+start);  </li> <li>        chain.doFilter(request, response);  </li> <li>        long end = System.currentTimeMillis();  </li> <li>        System.out.println("Filter end at "+end);  </li> <li>    }  <br /> </li> <li>}  <br /> </li> </ol> <br /> <br /> <ol start="1"> <li><filter>  </li> <li>    <filter-name>test</filter-name>  </li> <li>    <filter-class>com.javaeye.wqf.CounterFilter</filter-class>  </li> <li></filter>  </li> <li>  </li> <li><filter-mapping>  </li> <li>    <filter-name>test</filter-name>  </li> <li>    <url-pattern>/*</url-pattern>  </li> <li></filter-mapping>  <br /> </li> </ol> 一般情况下是没什么问题,但是当我下蝲一个稍微大的文件时Q蟩出确认窗口,如果选择的是cancelQ? <br /> ׃(x)发现filterq没有返回,也就是说 <br /> <ol start="1"> <li>System.out.println("Filter end at "+end);  <br /> </li> </ol> q没有执? 原因?<br /> <br /> chain.doFilter(request, response);   <br /> 执行到这里时?x)从q里调用剩下的filter和servletQ所以这个调用将?x)是一个很长的q程? <br /> 在这个调用里Q将?x)完全通过request和resonseL作连接,取得/发送数据,如果q接出现异常Q将直接弹出Exception <br /> 你的代码里没有捕获异常,所以如果出现异常,chain.doFilter后面的就不会(x)执行? <br /> 可以把chain.doFilter攑ֈtry finallyl构中,保证后箋?x)被执? <br /> <br /> <br /> <br /> <br /> </div> <img src ="http://www.aygfsteel.com/lukewange-hit1983/aggbug/237119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lukewange-hit1983/" target="_blank">LukeW</a> 2008-10-28 14:58 <a href="http://www.aygfsteel.com/lukewange-hit1983/archive/2008/10/28/237119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank">踽</a>| <a href="http://" target="_blank">Ҵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">н</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¯</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">н</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ع</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">β</a>| <a href="http://" target="_blank">־</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">㶫ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>