锘??xml version="1.0" encoding="utf-8" standalone="yes"?>麻豆9191精品国产,色播视频在线观看,精华区一区二区三区http://www.aygfsteel.com/totobacoo/category/26102.html濮垮娍灝辨槸鍔涢噺zh-cnSun, 23 Sep 2007 08:31:34 GMTSun, 23 Sep 2007 08:31:34 GMT60struts2欏圭洰涓潤鎬乭tml鍦╢irefox涓嬩貢鐮佺殑瑙e喅http://www.aygfsteel.com/totobacoo/archive/2007/09/23/147572.htmlSamuel.MoSamuel.MoSun, 23 Sep 2007 07:10:00 GMThttp://www.aygfsteel.com/totobacoo/archive/2007/09/23/147572.htmlhttp://www.aygfsteel.com/totobacoo/comments/147572.htmlhttp://www.aygfsteel.com/totobacoo/archive/2007/09/23/147572.html#Feedback0http://www.aygfsteel.com/totobacoo/comments/commentRss/147572.htmlhttp://www.aygfsteel.com/totobacoo/services/trackbacks/147572.html   struts2 欏圭洰錛岄氬父寮鍙戣繃紼嬩腑錛屼竴浜涚畝鍗曠殑琛ㄥ崟鏂囦歡鎴栬呴潤鎬佹弿榪伴〉闈紝鑳戒笉璧癮ction嫻佺▼灝卞彲浠ョ敤html鏉ュ仛錛屽彲浠ヤ竴瀹氱▼搴︿笂鍑忓皯 struts2 鐨勬祦紼嬪紑閿錛屽鏋滃墠绔湁apache鐨勮瘽錛屼篃鍙互榪涗竴姝ュ垎鎽婁笟鍔℃湇鍔″櫒鍘嬪姏銆傛寜鐓ц繖鏍風(fēng)殑鍘熷垯錛屼竴涓郴緇熷仛涓嬫潵錛岄毦鍏嶆湁涓浜涙垨鑰呭緢澶氱殑闈欐乭tml鏂囦歡銆?nbsp;
   鍦ㄦ垜鐨勪竴涓伐紼嬮噷闈紝鎵鏈夋枃浠剁殑緙栫爜鏍煎紡鍧囦負(fù) utf-8錛屽寘鎷繖浜涢潤鎬?html 鏂囦歡銆?鍦?IE 涓嬭闂紝欏甸潰鏄劇ず瀹屽叏娌℃湁闂銆傜敤 httplook 鏌ョ湅 http 澶翠俊鎭紝涔熷彲浠ョ湅鍒版湇鍔″櫒鍥為佺殑欏甸潰瀛楃闆嗙紪鐮佷負(fù)姝e父鐨?utf-8銆?浣嗘槸鐢?firefox 嫻忚鐨勬椂鍊欙紝鎵鏈夌殑鍔ㄦ侀〉闈?*.do)姝e父錛屽敮鐙?html 欏甸潰鍏ㄩ儴涔辯爜錛屽湪嫻忚鍣ㄨ彍鍗曞唴鎵嬪姩閫夋嫨欏甸潰緙栫爜鏍煎紡涓?utf-8錛屽垯鍙互姝e父鏄劇ず涓枃浜嗐傝櫧鐒跺彲浠ユ殏鏃惰В鍐籌紝浣嗕笉鍙兘鍋囪鎵鏈夌殑鐢ㄦ埛姣忔嫻忚榪欎簺闈欐乭tml鐨勬椂鍊欙紝閮戒細(xì)鎵嬪姩鍘婚夋嫨緙栫爜鏍煎紡銆傝繖閲屽繀欏昏鏈変竴涓不鏈殑鍔炴硶銆?nbsp;
    鍦╢irefox鍐呬貢鐮佺殑html欏甸潰涓婏紝鍙抽敭“鏌ョ湅欏甸潰淇℃伅”錛屽彲浠ョ湅鍒癶ttp澶翠俊鎭唴鐨勭紪鐮佹牸寮忎負(fù) gb2312錛岃岄〉闈eta淇℃伅鍐呮寚瀹氱殑鏄痷tf-8銆傚嵆firefox鏄寜gb2312鐨勭己鐪佽涓烘潵瑙f瀽utf-8緙栫爜鐨勯〉闈紝褰撶劧浼?xì)湄曠爜銆傞棶棰樺氨鍑哄湪錛宖irefox騫朵笉浼?xì)鍍廔E閭f牱鍙互鏍規(guī)嵁meta淇℃伅瑕嗙洊鏈嶅姟鍣ㄥ洖閫佺殑http澶翠俊鎭紝瀹冩槸涓ユ牸鎸夌収http鍗忚瑙勮寖鐨勮涓烘柟寮忥細(xì)鎸夌収http澶存寚瀹氱殑緙栫爜鏍煎紡鏉ヨВ鏋愰〉闈€備篃灝辨槸璇達(dá)紝濡傛灉http澶村洖閫侀噷闈㈡寚瀹氫簡欏甸潰鐨勭紪鐮佹牸寮忥紝firefox浼?xì)蹇界暐meta淇℃伅鐨勫瓧絎﹂泦鎸囧畾銆傝孖E鍒欎互meta浼樺厛銆?br />     涓轟粈涔堟垜鐨勬湇鍔″櫒杈撳嚭html欏甸潰鐨勬椂鍊欙紝http澶翠細(xì)鍥為乬b2312鐨勭紪鐮侀泦錛熸垜鍦?web.xml 鍐呭姞涓?SetCharacterEncodingFilter錛屽己鍒舵墍鏈夎緭鍑哄瓧絎﹂泦涓?utf-8錛岄棶棰樹緷鏃с傚洜涓洪」鐩仛浜?SEO錛岀敤鍒頒簡 UrlRewriterFilter錛屼究鎬鐤戞槸榪欎釜 filter 鍦ㄥ仛 url forward 鐨勬椂鍊欙紝鏀瑰彉浜嗚緭鍑哄瓧絎﹂泦錛屽彲鏄幓鎺夎繖涓?filter 鍚庯紝闂榪樻槸瀛樺湪銆?浜庢槸鍐嶈冨療struts2鐨?FilterDispatcher錛岃繖鏄竴涓叏灞鐨勬淳鍙戣繃婊ゅ櫒錛宻truts2鐨勬牳蹇冩淳鍙戞帶鍒跺櫒銆?鏈鍒濈殑閰嶇疆濡備笅錛?br />    

<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    
</filter>
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

url-pattern 鏄?/* 鐨勫叏鑼冨洿鏄犲皠錛屽綋鐒朵篃鍖呮嫭浜?html 鍚庣紑鏂囦歡銆傝繖縐嶆儏鍐典笅錛岄」鐩腑浠諱綍涓涓姹傦紝浼?xì)缁彉q?嬈ilter錛岄鍏堟槸SetCharacterFilter銆佺劧鍚庢槸 UrlRewriterFilter銆佹渶鍚庢槸 FilterDispatcher錛屼箣鍓嶅凡緇忔帓闄や簡 UrlRewriterFilter 鐨勯棶棰樸備簬鏄慨鏀?FilterDispatcher 鐨?url-pattern 涓?*.do錛屽嵆鍙繃婊?*.do 鐨勮姹傦紝鍏朵粬璇鋒眰姣斿 *.html錛屽垯涓嶄細(xì)緇忚繃榪欎釜 filter銆?nbsp;
    榪欐牱淇敼鍚庯紝涓鍒囬兘姝e父浜嗐?br />     
    褰?url-pattern 涓?/* 鏃訛紝鎵鏈夎姹傚寘鎷闈欐佽祫婧愭枃浠剁殑璇鋒眰錛岄兘浼?xì)鏈塅ilterDispatcher鏉ユ帴綆℃淳鍙戙傚鏋滆姹傜被鍨嬩負(fù)闈欐佽祫婧愶紝鍒?FilterDispatcher 涓嶄細(xì)璋冪敤 action 澶勭悊妯″潡鏉ユ帴鏀惰繖涓姹傦紝鑰屾槸綆鍗曠殑鍥為侀潤鎬佽祫婧愩傚湪榪欎釜鍥為佽繃紼嬩腑錛孎ilterDispatcher 鍋氱殑宸ヤ綔濡備笅錛?br />
FilterDispatcher.java
protected void findStaticResource(String name, HttpServletRequest request, HttpServletResponse response) throws IOException {
        
if (!name.endsWith(".class")) {
            
for (String pathPrefix : pathPrefixes) {
                InputStream is 
= findInputStream(name, pathPrefix);
                
if (is != null{
                    Calendar cal 
= Calendar.getInstance();
                    
                    
// check for if-modified-since, prior to any other headers
                    long ifModifiedSince = 0;
                    
try {
                        ifModifiedSince 
= request.getDateHeader("If-Modified-Since");
                    }
 catch (Exception e) {
                        LOG.warn(
"Invalid If-Modified-Since header value: '" + request.getHeader("If-Modified-Since"+ "', ignoring");
                    }

                    
long lastModifiedMillis = lastModifiedCal.getTimeInMillis();
                    
long now = cal.getTimeInMillis();
                    cal.add(Calendar.DAY_OF_MONTH, 
1);
                    
long expires = cal.getTimeInMillis();
                    
                    
if (ifModifiedSince > 0 && ifModifiedSince <= lastModifiedMillis) {
                        
// not modified, content is not sent - only basic headers and status SC_NOT_MODIFIED
                        response.setDateHeader("Expires", expires);
                        response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                        is.close();
                        
return;
                    }

                    
                    
// set the content-type header
                    String contentType = getContentType(name);
                    
if (contentType != null{
                        response.setContentType(contentType);
                    }


                    
if (serveStaticBrowserCache) {
                        
// set heading information for caching static content
                        response.setDateHeader("Date", now);
                        response.setDateHeader(
"Expires", expires);
                        response.setDateHeader(
"Retry-After", expires);
                        response.setHeader(
"Cache-Control""public");
                        response.setDateHeader(
"Last-Modified", lastModifiedMillis);
                    }
 else {
                        response.setHeader(
"Cache-Control""no-cache");
                        response.setHeader(
"Pragma""no-cache");
                        response.setHeader(
"Expires""-1");
                    }


                    
try {
                        copy(is, response.getOutputStream());
                    }
 finally {
                        is.close();
                    }

                    
return;
                }

            }

        }


        response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }


// ..

protected InputStream findInputStream(String name, String packagePrefix) throws IOException {
        String resourcePath;
        
if (packagePrefix.endsWith("/"&& name.startsWith("/")) {
            resourcePath 
= packagePrefix + name.substring(1);
        }
 else {
            resourcePath 
= packagePrefix + name;
        }


        resourcePath 
= URLDecoder.decode(resourcePath, encoding);

        
return ClassLoaderUtil.getResourceAsStream(resourcePath, getClass());
    }


鍙互鐪嬪埌錛岀敱 ClassLoaderUtil.getResourceAsStream 杞藉叆闈欐佽祫婧愶紝鐒跺悗鍥為併侰lassLoaderUtil 榪樻槸鐢ㄤ簡 xwork 鐨?lib錛宻truts2騫舵病鏈夐噸鍐欒繖涓被銆傝繖涓洖閫佽繃紼嬩腑錛孎ilterDispatcher 騫舵病鏈夋寚瀹氬洖閫佸瓧絎﹂泦錛屽洜姝よ緭鍑洪〉闈細(xì)閲囩敤鏈嶅姟鍣ㄩ粯璁ゅ瓧絎﹂泦錛屽綋鐒惰窡鍏蜂綋鎿嶄綔緋葷粺涔熸湁鍏崇郴銆傜洰鍓嶈繕娌$湅鍒版湁榛樿浠TF-8浣滀負(fù)鏈嶅姟鍣ㄥ瓧絎﹂泦鐨勩?

Samuel.Mo 2007-09-23 15:10 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 漳平市| 开化县| 呼和浩特市| 保德县| 阿克陶县| 通河县| 武邑县| 宾川县| 衡山县| 乌兰浩特市| 博白县| 嘉峪关市| 靖安县| 通江县| 白玉县| 天祝| 东平县| 潮州市| 枝江市| 西林县| 昭平县| 丹江口市| 会东县| 丹棱县| 中牟县| 清丰县| 乌拉特后旗| 延吉市| 绥滨县| 康保县| 班戈县| 淮滨县| 龙胜| 贵州省| 芮城县| 都江堰市| 蛟河市| 鲁甸县| 汉沽区| 海宁市| 鹤山市|