欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
web開(kāi)發(fā)的瑞士軍刀 javawebparts

引言:最近在看一個(gè)開(kāi)源的聊天室AjaxChat 時(shí)看到一個(gè)被引用的包:javawebparts,處于好奇去看了一下,突然發(fā)現這么好的一個(gè)常用web組件不去用實(shí)在是太可惜了,下面逐一介紹,詳細文檔大家可以去官方文檔看看,最好看它的Demo,很直觀(guān)。

javawebparts的口號是:不用重新發(fā)明輪子 !


對這點(diǎn)我是嚴重支持啊,在我的身邊看到N多所謂的牛人來(lái)到項目組作的第一件事就是把以前的項目推倒,重新實(shí)現自己的所謂一套先進(jìn)的東西,靠,你有多先進(jìn)啊,你的自己"方言"一邊自我欣賞,一邊還讓別人接受,再來(lái)一個(gè)人又把這個(gè)推倒,循環(huán)。。。。無(wú)語(yǔ).

所以,用開(kāi)源吧 ,是不是繞的太遠了? :) 讓我們言歸正傳吧.

一。管理你的web配置文件信息

web的配置文件是我們經(jīng)常要用到的,配置信息我們可以分為兩大類(lèi),一類(lèi)是最簡(jiǎn)單的"平板"型的,比如:

For an XML config file like this:

< config >
< firstName > Frank </ firstName >
</ config >


The following bean could be used:
public   class  MyConfigBean {
private   static  String firstName;
public   void  setFirstName(String inFirstName) {
firstName 
=  inFirstName;
}
public  String getFirstName() {
return  firstName;
}
}
在應用中你不用去自己解析xml了,javawebparts已經(jīng)幫你做好了,你只要getFirstName()就可以了,是不是很方便?

你所要做的工作就是在web.xml中引用一個(gè)listener,配置如下:

 

<context-param>
<param-name>configFile</param-name>
<param-value>/WEB-INF/app_config.xml< /param-value></context-param>
<context-param>
<param-name>rootElement</param-name>
<param-value>config</param-value> </context-param>
<context-param>
<param-name>configClass</param-name>
<param-value>javawebparts.sampleapp. SampleAppConfigBean</param-value>
</context-param>
<context-param>
<param-name>AjaxPartsTaglibConfig</param-name>
<param-value>/WEB-INF/ajax_config.xml</param-value>
</context-param>

<listener>
<listener-class>javawebparts.listener. AppConfigContextListener</listener-class>
</listener>

這種平板型結構的數據這樣就已經(jīng)OK了,還有一種是復雜一點(diǎn)的,有層次結構,比如在Bean中可能還有collection,需要自己實(shí)現一下,也不復雜直接調用apache的Digester就可以了(實(shí)際上在javawebparts到處都有Digester的影子),需要了解的請參看 用Digester解析xml到bean

二。緩存頁(yè)面

比如,我想緩存所有的gif圖片,但是jpg的不緩存,web.xml中配置如下:

 

<filter>
<filter-name>CacheControlFilter</filter-name>
<filter-class>javawebparts.filter. CacheControlFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/header1.gif, *.jpg</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CacheControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

它的后臺實(shí)現機制很簡(jiǎn)單,內部部分代碼如下:

 

((HttpServletResponse)response).setHeader("Pragma""No-cache");
((HttpServletResponse)response).setHeader(
"Cache-Control",
"no-cache,no-store,max-age=0");
((HttpServletResponse)response).setDateHeader(
"Expires"1);

三。圖片壓縮


是不是對gzip壓縮很親切? 對的,就是傳說(shuō)中可以壓縮圖片減少網(wǎng)絡(luò )傳輸體積的玩意,現在你只要在web.xml中增加以下內容就可以輕松實(shí)現了:

 

<filter>
<filter-name>CompressionFilter</filter-name>
<filter-class>javawebparts.filter. CompressionFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/bigimage2.gif</ param-value>
</init-param>
<init-param>
<param-name>compressType</param-name>
<param-value>gzip_first</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CompressionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

上面的配置表示只對bigimage2.gif的文件進(jìn)行壓縮,其他不用,pathSpec的屬性有兩種include,exclude,意思已經(jīng)很明確了,相反地意思,而pathList得內部實(shí)現也是用正則表達式實(shí)現的,支持*等用法.這些內部實(shí)現你覺(jué)得復雜的話(huà)就不用管它了,反正人家已經(jīng)給你實(shí)現好了,你只要說(shuō)"給我壓縮‘美女與野獸.JPG‘"就可以了

四.控制只在設定的時(shí)間范圍內訪(fǎng)問(wèn)應用

比如說(shuō)只允許在工作時(shí)間內可以訪(fǎng)問(wèn)應用,其他時(shí)間禁止訪(fǎng)問(wèn),雖然不是很普遍不過(guò)這種需求還是有的,如果自己實(shí)現還是比較麻煩的,我們用現成的,配置如下:(怎么都是配置阿?對,全部是配置就可以了,難道不好嗎?太爽了啊,乖乖龍地動(dòng))

 

<filter>
<filter-name>AppAvailabilityFilter</filter-name>
<filter-class>javawebparts.filter. AppAvailabilityFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/AAFTestTarget.jsp </param-value>
</init-param>
<init-param>
<param-name>monday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>tuesday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>wednesday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>thursday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>friday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>saturday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>sunday</param-name>
<param-value>0600-2359</param-value>
</init-param>
<init-param>
<param-name>redirectTo</param-name>
<param-value>AAFReject.jsp< /param-value>
</init-param>
<init-param>
<param-name>bypassCheckClass< /param-name>
<param-value>javawebparts.sampleapp. AAFBypassCheck</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>AppAvailabilityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

上面的配置很明確了吧,表示在訪(fǎng)問(wèn)AAFTestTarget.jsp 文件的時(shí)候必須在設定的時(shí)間內,其他則無(wú)限制,很清楚了哦.

五。統一重定向

redirect或者forward大家都再熟悉不過(guò)了,不過(guò)這個(gè)是基于配置的,不用你寫(xiě)代碼,比如,你希望在訪(fǎng)問(wèn)某個(gè)目錄的時(shí)候自動(dòng)重訂向到其他文件,或者直接轉到其他網(wǎng)站比如google.com,配置如下:

 

<filter>
<filter-name>URLRedirectFilter</filter-name>
<filter-class>javawebparts.filter.URLRedirectFilter</ filter-class>
<init-param>
<param-name>configFile</param-name>
<param-value>/WEB-INF/redirect_config.xml </param-value>
</filter>

<filter-mapping>
<filter-name>URLRedirectFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

其中redirect_config.xml配置如下:

 

<config>
<redirect from="*/app/redirect_test/*" to="http://www.google.com" />
<forward from="*/app/forward/test.htm" to="/index.jsp" />
</config>

很直觀(guān)吧?凡是訪(fǎng)問(wèn)/app/redirect_test下的所有應用都重訂向到google,太簡(jiǎn)單了,我就不多說(shuō)了.


六.估算每個(gè)請求所花費的時(shí)間

這個(gè)對性能調整是很有好處的,性能的調整的前提是你了解你的系統的瓶頸在什么地方,更具體的說(shuō)是你的應用哪些地方花費的資源較多,一個(gè)是監控sql的執行情況,這里推薦jdbmonitor,大家可以去看看,另一種就是本文所說(shuō)的查看每個(gè)請求的執行時(shí)間,他會(huì )告訴你本請求花費了多少秒,很直觀(guān)了.

配置如下:

 

<filter>
<filter-name>ElapsedTimeFilter</filter-name>
<filter-class>javawebparts.filter.ElapsedTimeFilter</ filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>ElapsedTimeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

上面的一個(gè)include ,一個(gè)pathList的*就代表了所有的應用都過(guò)濾,反之,你想暫時(shí)取消這個(gè)功能就直接把include換成exclude就行了

應用在啟動(dòng)后你直接觀(guān)察后臺日志就可以了,就這么就OK了,還要你做什么呢? 沒(méi)有.

七.監控session的會(huì )話(huà)

經(jīng)常碰到這樣的一個(gè)情況,用戶(hù)在登陸系統一段時(shí)間后session實(shí)效,但是他接著(zhù)點(diǎn)擊里面的連接,結果報異常,因為session里已經(jīng)取不到數據了,常常是空指針錯誤,在每一個(gè)頁(yè)面里都進(jìn)行這種低級問(wèn)題的判斷是很煩人的,現在我們有新的方式可以一次性解決所有的問(wèn)題,還是一段簡(jiǎn)單的配置:

 

<filter>
<filter-name>SessionInactivityFilter< /filter-name>
<filter-class>javawebparts.filter. SessionInactivityFilter</filter-class>
<init-param>
<param-name>forwardTo</param-name>
<param-value>/login.jsp< /param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SessionInactivityFilter< /filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

表示會(huì )話(huà)失效后直接重定向到登陸界面,讓用戶(hù)重新登陸.

八.控制訪(fǎng)問(wèn)應用的IP

出于安全考慮,過(guò)濾某些IP能或不能訪(fǎng)問(wèn),配置如下:

 

<filter>
<filter-name>IPAccessControlFilter</filter-name>
<filter-class>javawebparts.filter. IPAccessControlFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/IACTestTarget.jsp</ param-value>
</init-param>
<init-param>
<param-name>addressSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>addressList</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>forwardTo</param-name>
<param-value>/IACReject.jsp</param-value> </init-param>
</filter>

<filter-mapping>
<filter-name>IPAccessControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

以上的配置效果就是只允許是從服務(wù)器上訪(fǎng)問(wèn)應用的來(lái)源(太苛刻了吧? :))

九.隨機顯示文字

比如每日一語(yǔ),隨機廣告,很實(shí)用的,配置如下:


<servlet>
<servlet-name>TextReturnerServlet</servlet-name>
<servlet-class>javawebparts.servlet. TextReturnerServlet</servlet-class>
<init-param>
<param-name>order</param-name>
<param-value>random</param-value>
</init-param>
<init-param>
<param-name>itemsFile</param-name>
<param-value>/WEB-INF/text_returner_items.xml </param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>TextReturnerServlet</servlet-name>
<url-pattern>/textReturner</url-pattern>
</servlet-mapping>

上面的配置表示隨機顯示text_returner_items.xml 中的文字,text_returner_items.xml 內容如下:

 

<TextReturnerServletItems>
<item>0 - It‘s always darkest before the dawn</item>
<item>1 - A journey of a thousand miles begins with a single step</item>
<item>2 - The universe is like stupidity: both are infinite
 and actually, I‘m not sure about the universe
</item>
<item>3 - I believe there is intelligent life in the universe, except for some parts of New Jersey</item>
<item>4 - If your falling of a cliff, you might as well try and fly</item>
<item>5 - The cost of life is to chance the consequence</item>
</TextReturnerServletItems>

十.隨機顯示圖片

和上面有點(diǎn)類(lèi)似,只是顯示的內容可以是圖片

<servlet>
<servlet-name>RedirectReturnerServlet</servlet-name>
<servlet-class>javawebparts.servlet. RedirectReturnerServlet</servlet-class>
<init-param>
<param-name>order</param-name>
<param-value>random</param-value>
</init-param>
<init-param>
<param-name>itemsFile</param-name>
<param-value> /WEB-INF/redirect_returner_items.xml</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>RedirectReturnerServlet</servlet-name>
<url-pattern>/redirectReturner</url-pattern>
</servlet-mapping>

redirect_returner_items.xml的內容如下:

<RedirectReturnerServletItems>
<item>http://www.google.com/intl/en/images/logo.gif</item>
<item>/img/header1.gif</item>
<item>/img/mouse.gif</item>
<item>http://javawebparts.sourceforge.net/logo.jpg</item>
</RedirectReturnerServletItems>

我就不用解釋了吧

十一.生成文字圖片

你提供文字,系統幫你生成對應的圖片,是不是很有用? 比如驗證碼里經(jīng)常需要用到,生成的效果如下:


配置如下:

 

<servlet>
<servlet-name>TextRendererServlet</servlet-name>
<servlet-class>javawebparts.servlet. TextRendererServlet</servlet-class>
<init-param>
<param-name>fontName</param-name>
<param-value>arial</param-value>
</init-param>
<init-param>
<param-name>fontPoint</param-name>
<param-value>24</param-value>
</init-param>
<init-param>
<param-name>color</param-name>
<param-value>255,0,0 </param-value>
</init-param>
<init-param>
<param-name>backColor</param-name>
<param-value>255,255,0 </param-value>
</init-param>
<init-param>
<param-name>stylePlain</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>styleBold</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>styleItalic</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>TextRendererServlet</servlet-name>
<url-pattern>/textRenderer</url-pattern>
</servlet-mapping>
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Apache myfaces介紹和配置
Tomcat于Eclipse集成開(kāi)發(fā)問(wèn)題以及解決方案
CKEditor和CKFinder整合實(shí)現在線(xiàn)編輯功能
Java ログフィルタでHTTPを解析
Spring項目實(shí)踐(二)
Freemarker在web.xml配置說(shuō)明-kenshinlk -JavaEye技術(shù)社區
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久