锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲AV大全,亚洲国产综合专区在线电影 ,亚洲日本成本人观看http://www.tkk7.com/SE7EN/zh-cnMon, 12 May 2025 18:27:14 GMTMon, 12 May 2025 18:27:14 GMT60閫氳繃xml閰嶇疆鎼炲畾Struts閲嶅鎻愪氦闂(杞?http://www.tkk7.com/SE7EN/archive/2008/08/14/222083.htmlSE7ENSE7ENThu, 14 Aug 2008 10:35:00 GMThttp://www.tkk7.com/SE7EN/archive/2008/08/14/222083.htmlhttp://www.tkk7.com/SE7EN/comments/222083.htmlhttp://www.tkk7.com/SE7EN/archive/2008/08/14/222083.html#Feedback0http://www.tkk7.com/SE7EN/comments/commentRss/222083.htmlhttp://www.tkk7.com/SE7EN/services/trackbacks/222083.html 鏍稿績浠g爜濡備笅錛?/strong>
package com.yapulan.util.filter;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.servlet.Filter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
* 閲嶅鎻愪氦浠ょ墝鑷姩鍔犺澆鍣?鍔熻兘錛氳鍙栬繃婊ゅ櫒涓緗殑淇℃伅錛岃鍏ヤ護鐗岃緗粍
*/

public class TokenFilter implements Filter {

private String TokenConfig = "TokenConfig.xml";
private HashMap TokenMap = null;
private HashMap ErrorMap = null;
protected FilterConfig filterConfig;
static Logger logger = Logger.getLogger(TokenFilter.class.getName());

public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
this.TokenConfig = config.getInitParameter("tokenfile");
logger.debug("Tokenlist init OK!");
}

/**
* 鍒濆鍖栫郴緇熺殑xml鏂囦歡,璇誨叆浠ょ墝鍒楄〃
*/
@SuppressWarnings({ "unchecked", "deprecation" })
public void initConfig(ServletRequest srequest) {

HttpServletRequest httpRequest = (HttpServletRequest) srequest;
try {

TokenMap = new HashMap();
ErrorMap = new HashMap();

SAXReader reader = new SAXReader();
Document document = reader.read(httpRequest.getRealPath(this.TokenConfig));
List list1 = document.getRootElement().selectNodes("/TokenList/Token/TokenForm");
List list2 = document.getRootElement().selectNodes("/TokenList/Token/TokenAction");
List list3 = document.getRootElement().selectNodes("/TokenList/Token/ErrorPage");

Iterator iter1 = list1.iterator();
Iterator iter2 = list2.iterator();
Iterator iter3 = list3.iterator();
while (iter1.hasNext()&&iter2.hasNext()&&iter3.hasNext()) {
Element element1 = (Element) iter1.next();
Element element2 = (Element) iter2.next();
Element element3 = (Element) iter3.next();
TokenMap.put(element1.getStringValue(), element2.getStringValue());
ErrorMap.put(element1.getStringValue(), element3.getStringValue());
}
logger.debug("TokenFilter Read "
+ httpRequest.getRealPath(this.TokenConfig)
+ " is OK!");
} catch (Exception e) {
logger.error("TokenFilter Read "
+ httpRequest.getRealPath(this.TokenConfig)
+ " is Error!");
}

}

public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpRequest = (HttpServletRequest) srequest;

try {
//鍙栧嚭瀹為檯鐨勬枃浠惰礬寰勭洿鎺ヨ皟鐢ㄦ枃浠?濡俰ndex.html,login.jsp絳?
String toURI = httpRequest.getRequestURI().replaceFirst(httpRequest.getContextPath(), "");
if (TokenMap==null)
{
initConfig(httpRequest);
}
//媯嫻嬩負鎻愪氦jsp欏?
if (TokenMap.get(toURI) != null)
{
FromTokenAction token = new FromTokenAction();
token.execute(null, null, srequest, sresponse);
httpRequest.getSession().setAttribute("PRE_TOKEN_FORM", toURI);
logger.debug("TokenFilter save '"+toURI +"' at 'PRE_TOKEN_FORM' of Session!");
logger.debug("TokenFilter saveToken to '"+toURI +"' is OK!");
chain.doFilter(srequest, sresponse);
return;
}

@SuppressWarnings("unused")
String preURI =(String)httpRequest.getSession().getAttribute("PRE_TOKEN_FORM");
//媯嫻嬪埌涓篈ction鎺ユ敹鎻愪氦欏甸潰
if (TokenMap.get(preURI).equals(toURI))
{
TOTokenAction token = new TOTokenAction();
token.execute(null, null, srequest, sresponse);
chain.doFilter(srequest, sresponse);
return;
}


} catch (Exception e)
{
logger.error(e);
}

chain.doFilter(srequest, sresponse);
}

public void setFilterConfig(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

public void destroy() {
TokenMap.clear();
ErrorMap.clear();
this.filterConfig = null;
}

//媯嫻嬪埌闇瑕佷護鐗屽鍔犱竴涓護鐗?
public class FromTokenAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
this.saveToken(request);
return null;
}
}

//鍒拌揪Action鍓嶆嫻嬩護鐗?
public class TOTokenAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
@SuppressWarnings("unused")
String preURI =(String)request.getSession().getAttribute("PRE_TOKEN_FORM");
//濡傛灉媯嫻嬩護鐗岄敊璇墽琛岄敊璇〉,姝g‘灝嗙戶緇墽琛?
if (!isTokenValid(request, true))
{
@SuppressWarnings("unused")
String toURI = (String)ErrorMap.get(preURI);
if (toURI!=null)
{
RequestDispatcher disp = request.getRequestDispatcher(toURI);
try {
disp.forward(request, response);

}catch(Exception e)
{
logger.error(e);
}
}
}
return null;
}
}

}

Web.xml鐨勯厤鍒?/strong>

<!-- 浠ょ墝鑷姩鍔犺澆閰嶅埗 -->
<filter>
<filter-name>tokenFilter</filter-name>
<filter-class>com.yapulan.util.filter.TokenFilter</filter-class>
<init-param>
<param-name>tokenfile</param-name>
<param-value>/WEB-INF/TokenConfig.xml</param-value>
</init-param>
</filter>

娉ㄦ剰:灝嗕唬鐮佸寘涓瓀eb.xml鍋氫互涓嬩慨鏀?
<filter-mapping>
<filter-name>tokenFilter</filter-name>
<url-pattern/*</url-pattern>
</filter-mapping>




璁劇疆濂借繃婊ゅ櫒錛屽彧瑕侀厤緗垪琛ㄥ嵆鍙伩鍏嶆墍鏈夌殑閲嶅鎻愪氦闂錛屼笉蹇呭湪緙栫▼鏃跺啀嬈¤冭檻浜?/strong>
<?xml version="1.0" encoding="UTF-8"?>
<TokenList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TokenConfig.xsd">
<Token>
<TokenForm>/index.jsp</TokenForm>
<TokenAction>/TokenAction.do</TokenAction>
<ErrorPage>/error.html</ErrorPage>
</Token>
<Token>
<TokenForm>/index1.jsp</TokenForm>
<TokenAction>/TokenAction1.do</TokenAction>
<ErrorPage>/error1.jsp</ErrorPage>
</Token>
<Token>
<TokenForm>/index2.jsp</TokenForm>
<TokenAction>/TokenAction2.do</TokenAction>
<ErrorPage>/error2.jsp</ErrorPage>
</Token>
<Token>
<TokenForm>/index3.jsp</TokenForm>
<TokenAction>/TokenAction3.do</TokenAction>
<ErrorPage>/error3.jsp</ErrorPage>
</Token>
</TokenList>

娉ㄦ剰錛氭湰浠g爜鍙互寰堝ソ鐨勯獙璇侀潪娉曠殑鎻愪氦錛屽浜庣鐞嗛潪娉曠殑鎻愪氦鏄竴涓笉鍙寰楃殑鍏鋒湁涓瀹氬畨鍏ㄦ剰涔夊皝瑁呫?
璇風儹蹇冪殑鏈嬪弸鍒嗘瀽鏈夋棤鍏跺畠娌℃湁鑰冭檻鐨勭粏鑺傞棶棰橈紝騫朵笖鏄惁鏈夊彲浠ヨ繘涓閮ㄥ畬鍠勭殑鍦版柟錛岃阿璋紒

SE7EN 2008-08-14 18:35 鍙戣〃璇勮
]]>
Tomcat鏁版嵁榪炴帴姹?/title><link>http://www.tkk7.com/SE7EN/archive/2008/08/14/222082.html</link><dc:creator>SE7EN</dc:creator><author>SE7EN</author><pubDate>Thu, 14 Aug 2008 10:27:00 GMT</pubDate><guid>http://www.tkk7.com/SE7EN/archive/2008/08/14/222082.html</guid><wfw:comment>http://www.tkk7.com/SE7EN/comments/222082.html</wfw:comment><comments>http://www.tkk7.com/SE7EN/archive/2008/08/14/222082.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/SE7EN/comments/commentRss/222082.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/SE7EN/services/trackbacks/222082.html</trackback:ping><description><![CDATA[鍦↗ava Web寮鍙戜腑閮借涓庢暟鎹簱鎵撲氦閬擄紝涓轟簡涓嶉綣佸湴鎵撳紑鍜屽叧闂暟鎹簱錛屼互鍑忓皯鏁版嵁搴撴搷浣滆礋鑽?鍙嬌鏁版嵁搴撳湪寮鍙戣繃紼嬩腑淇濇寔鎵撳紑鐘舵侊紝鍦ㄨ繖閲屾垜浠噰鐢ㄩ厤緗暟鎹簮鐨勬柟寮?JNDI)錛岃屼笉鏄紶緇熷湴JDBC鏂瑰紡銆備笅闈㈠氨閽堝甯歌鍨嬬殑MySQL5.0.15鍜?span class="hilite3">Tomcat</span>6.0鐨勬暟鎹簮鐨勫熀鏈厤緗繘琛岀畝鍗曠殑浠嬬粛錛?<br /> 棣栧厛澹版槑,濡傛灉鏁版嵁婧愭病鏈夐厤緗ソ鐨勮瘽錛屽湪寮鍙戣繃紼嬩腑浼氭姏鍑鴻濡備笅鍒楀紓甯哥瓑錛?<br /> 1銆?span class="hilite1">org</span>.<span id="j3rz335" class="hilite2">apache</span>.<span id="xdvpttl" class="hilite3">tomcat</span>.<span id="55zzvxx" class="hilite5">dbcp</span>.<span id="rjrbr55" class="hilite5">dbcp</span>.<span id="3vfpzz3" class="hilite6">SQLNestedException</span>: Cannot create JDBC driver of class '' for connect URL 'null' <br /> 2銆丆aused by: java.sql.SQLException: No suitable driver <br /> 3銆丯ame jdbc is not bound in this context <br /> 鐜板湪寮濮嬭涓嬪浣曢厤緗ソ鏁版嵁婧愬悓鏃朵篃鏄В鍐充笂榪板紓甯哥殑鍔炴硶錛?<br /> 鏂規涓錛?<br /> 姝ラ涓銆佸湪<span id="1r5zdt5" class="hilite3">Tomcat</span>6.0瑙e帇鐩綍conf涓嬫壘鍒癱ontext.xml,鍦ㄥ叾涓殑<Context></Context> 涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼)錛?<Resource name="jdbc/myznt" auth="Container" type="javax.sql.DataSource" password="localhost" username="root" driverClassName="<span id="z5nhl5x" class="hilite1">org</span>.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/myznt" maxActive="100" maxIdle="30" maxWait="5000"/> <br /> 姝ラ浜屻佸湪宸ョ▼搴旂敤涓?WEB-INF/涓嬬殑web.xml涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼): <br /> <resource-ref> <br /> <description>MySQL DataSource</description> <br /> <res-ref-name>jdbc/myznt</res-ref-name> <br /> <res-type>javax.sql.DataSource</res-type> <br /> <res-auth>Container</res-auth> <br /> </resource-ref> <br /> 姝ラ涓夈佹妸MySQL-Connector-java-3.0.12-bin.jar(鍙崲鏇撮珮鐗堟湰)鍔犲埌<span id="5vl55rt" class="hilite3">Tomcat</span>瀹夎鐩綍涓殑lib鐩綍涓嬪拰宸ョ▼涓殑lib鐩綍涓嬨?<br /> 閫氳繃榪欎笁姝ワ紝涓涓熀鏈殑鏁版嵁婧愬氨閰嶇疆鎴愬姛浜? <br /> 鏂規浜?<br /> 姝ラ涓銆佸湪<span id="5d5n5dn" class="hilite3">Tomcat</span>6.0瑙e帇鐩綍conf涓嬫壘鍒皊erver.xml,鍦ㄥ叾涓殑<GlobalNamingResources></GlobalNamingResources>涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼)錛?<br /> <Resource name="jdbc/myznt" auth="Container" type="javax.sql.DataSource" password="localhost" username="root" driverClassName="<span id="f13tp5h" class="hilite1">org</span>.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/myznt" maxActive="100" maxIdle="30" maxWait="5000"/> <br /> 姝ラ浜屻佸湪<span id="tth5nxv" class="hilite3">Tomcat</span>6.0瑙e帇鐩綍conf涓嬫壘鍒癱ontext.xml,鍦ㄥ叾涓殑<Context></Context>涓姞鍏ュ茍淇敼鎴愬涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼): <br /> <Context path="/znt" debug="1" reloadable="true" docBase="E:\EclipseWorkPlace\MyZNT\WebRoot"> <br /> <ResourceLink global="jdbc/myznt" name="jdbc/myznt" type="javax.sql.Datasource"/> <br /> ................<!--姝ら棿鍙兘鏈夌郴緇熷叾瀹冭嚜閰嶇殑鍐呭錛屽彲涓嶇--> <br /> </Context> <br /> 姝ラ涓夈佸湪宸ョ▼涓?WEB-INF/涓嬬殑web.xml涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼): <br /> <resource-ref> <br /> <description>MySQL DataSource</description> <br /> <res-ref-name>jdbc/myznt</res-ref-name> <br /> <res-type>javax.sql.DataSource</res-type> <br /> <res-auth>Container</res-auth> <br /> </resource-ref> <br /> 姝ラ鍥涖佹妸MySQL-Connector-java-3.0.12-bin.jar(鍙崲鏇撮珮鐗堟湰)鍔犲埌<span id="rfj3b53" class="hilite3">Tomcat</span>瀹夎鐩綍涓殑lib鐩綍涓嬪拰宸ョ▼涓殑lib鐩綍涓嬨?<br /> 閫氳繃浠ヤ笂鍥涙灝卞ソ浜? <br /> 鏂規涓?鍏鋒湁涓嶇ǔ瀹氭?鎱庣敤) <br /> 姝ラ涓銆佸湪<span id="tvn5555" class="hilite3">Tomcat</span>6.0瑙e帇鐩綍conf涓嬫壘鍒皊erver.xml,鍦ㄥ叾涓殑<Host></Host>涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼)錛?<br /> <Context path="/znt" docBase="E:\EclipseWorkPlace\MyZNT\WebRoot" <br /> debug="5" reloadable="true" crossContext="true"> <br /> <br /> <Logger className="<span id="1hd133p" class="hilite1">org</span>.<span id="v5zzjln" class="hilite2">apache</span>.catalina.logger.FileLogger" <br /> prefix="localhost_MysqlTest_log." suffix=".txt" <br /> timestamp="true"/> <br /> <Resource name="jdbc/myznt" auth="Container" type="javax.sql.DataSource" password="localhost" username="root" driverClassName="<span id="35dh5jh" class="hilite1">org</span>.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/myznt" maxActive="100" maxIdle="30" maxWait="5000"/> <br /> </Context> <br /> 姝ラ浜屻佸湪宸ョ▼涓?WEB-INF/涓嬬殑web.xml涓姞鍏ュ涓嬩唬鐮?瑕佹牴鎹嚜宸辯殑鎯呭喌紼嶅姞淇敼): <br /> <resource-ref> <br /> <description>MySQL DataSource</description> <br /> <res-ref-name>jdbc/myznt</res-ref-name> <br /> <res-type>javax.sql.DataSource</res-type> <br /> <res-auth>Container</res-auth> <br /> </resource-ref> <br /> 姝ラ涓夈佹妸MySQL-Connector-java-3.0.12-bin.jar(鍙崲鏇撮珮鐗堟湰)鍔犲埌<span id="lpj5pp5" class="hilite3">Tomcat</span>瀹夎鐩綍涓殑lib鐩綍涓嬪拰宸ョ▼涓殑lib鐩綍涓嬨?<br /> 閫氳繃浠ヤ笂涓夋錛屽ぇ閮ㄥ垎鏃跺欒繕鏄搗浣滅敤鐨勶紝浣嗘湁鏃朵細鍑虹幇寮傚父錛屽洜姝や笉寤鴻浣跨敤銆?<br /> 浠ヤ笂鍑犵鏂規鍦ㄥ疄璺典腑緇忓彈浜嗘祴璇曪紝鏂規涓鍜屼簩姣旇緝紼沖畾錛屾柟妗堜笁鏈濂藉埆鐢紝鍚屾椂鍙槸榪涜浜嗗ぇ鑷村湴褰掔撼錛屽叾涓殑鍝簺鍦版柟娌℃湁蹇呰鎴栧摢閲屾瑺濡ヨ繕娌℃湁鍘繪祴璇曪紝鏈涜鑰呰繘琛屾壒璇勬寚姝c? <img src ="http://www.tkk7.com/SE7EN/aggbug/222082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/SE7EN/" target="_blank">SE7EN</a> 2008-08-14 18:27 <a href="http://www.tkk7.com/SE7EN/archive/2008/08/14/222082.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://www-83118.com" target="_blank">最近2019中文字幕免费大全5</a>| <a href="http://1314c.com" target="_blank">中文字幕手机在线免费看电影</a>| <a href="http://wxxwy.com" target="_blank">2021精品国产品免费观看</a>| <a href="http://littlevv.com" target="_blank">亚洲人成网77777色在线播放</a>| <a href="http://7778kk.com" target="_blank">美女尿口扒开图片免费 </a>| <a href="http://wua72.com" target="_blank">亚洲AV无码久久精品狠狠爱浪潮</a>| <a href="http://777mecom.com" target="_blank">人妖系列免费网站观看</a>| <a href="http://www-777730.com" target="_blank">深夜国产福利99亚洲视频</a>| <a href="http://jxgsgg.com" target="_blank">免费视频精品一区二区</a>| <a href="http://sdzsx.com" target="_blank">亚洲午夜福利AV一区二区无码</a>| <a href="http://sx97zc.com" target="_blank">日韩毛片一区视频免费</a>| <a href="http://726zh.com" target="_blank">亚洲中文字幕无码不卡电影 </a>| <a href="http://szybzc.com" target="_blank">高潮内射免费看片</a>| <a href="http://qqcao7.com" target="_blank">国产亚洲精品无码拍拍拍色欲 </a>| <a href="http://haiholr.com" target="_blank">边摸边脱吃奶边高潮视频免费</a>| <a href="http://alodaba.com" target="_blank">国产成人免费a在线视频色戒</a>| <a href="http://91haikala.com" target="_blank">黄色三级三级三级免费看</a>| <a href="http://bjhuicui.com" target="_blank">亚洲AV网站在线观看</a>| <a href="http://wxbhnkyy39.com" target="_blank">一区二区三区在线免费</a>| <a href="http://wanguoshan.com" target="_blank">久久精品国产亚洲AV不卡</a>| <a href="http://4eeyy.com" target="_blank">成全视频高清免费观看电视剧</a>| <a href="http://bbyy7.com" target="_blank">久久精品国产亚洲AV麻豆不卡</a>| <a href="http://caicpa.com" target="_blank">亚洲最大免费视频网</a>| <a href="http://kanboy.com" target="_blank">亚洲熟女乱色一区二区三区 </a>| <a href="http://caoliusq1024.com" target="_blank">免费无码黄十八禁网站在线观看</a>| <a href="http://bzzxyp.com" target="_blank">久久精品国产亚洲AV忘忧草18</a>| <a href="http://shiliuvip.com" target="_blank">成人免费在线观看网站</a>| <a href="http://cao8080.com" target="_blank">四虎国产精品成人免费久久</a>| <a href="http://sxhengshan.com" target="_blank">国产午夜亚洲精品理论片不卡 </a>| <a href="http://56ms.com" target="_blank">亚洲a视频在线观看</a>| <a href="http://xamxx.com" target="_blank">国产男女猛烈无遮挡免费网站</a>| <a href="http://tao-zhe.com" target="_blank">a级毛片免费观看在线</a>| <a href="http://junyehome.com" target="_blank">亚洲一本综合久久</a>| <a href="http://4466n.com" target="_blank">四虎成人精品一区二区免费网站</a>| <a href="http://hnqkzj.com" target="_blank">无人视频免费观看免费视频</a>| <a href="http://fzgjw.com" target="_blank">亚洲成A人片在线观看无码不卡</a>| <a href="http://xhm33.com" target="_blank">亚色九九九全国免费视频</a>| <a href="http://ur5r2kr.com" target="_blank">理论秋霞在线看免费</a>| <a href="http://xtolm.com" target="_blank">亚洲AV永久无码区成人网站 </a>| <a href="http://3838dydy.com" target="_blank">亚洲精品成人网久久久久久</a>| <a href="http://s8sb.com" target="_blank">99国产精品免费观看视频</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>