成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【圖片抓取】003-JAVA WEB(上)

jiekechoo / 462人閱讀

摘要:圖片抓取上本項(xiàng)目主要講述項(xiàng)目的搭建和啟動過程,為以后繼續(xù)圖片抓取的業(yè)務(wù)展示做基礎(chǔ)。用于處理請求和響應(yīng)的攔截處理。這樣相比容器直接發(fā)到處理,大大減少了代碼重復(fù)工作而且方便統(tǒng)一管理。上下文關(guān)系從上圖可以看出主要在和兩部分做工作。

【圖片抓取】003-JAVA WEB(上)

本項(xiàng)目主要講述java web項(xiàng)目的搭建和啟動過程,為以后繼續(xù)圖片抓取的業(yè)務(wù)展示做基礎(chǔ)。項(xiàng)目中采用tomcat+spring mvc+spring jdbc+mysql,以最簡單的方式搭建;其實(shí)java web也在不停的發(fā)展,使用spring boot可能會更簡單有效的搭建web,結(jié)合nodejs實(shí)現(xiàn)前后臺分離,再較大項(xiàng)目中比較省力。spring boot再方便其實(shí)也沒有脫離傳統(tǒng)web的工作機(jī)制,配合本項(xiàng)目簡單描述下web的啟動過程。

web 容器啟動


tomcat可以簡單分3個階段,啟動初始化->服務(wù)運(yùn)行(接收,響應(yīng)http請求)->服務(wù)結(jié)束;web服務(wù)的主體就是接收響應(yīng)http請求既上右邊部分(filter+servlet);有時候我們可能要在服務(wù)運(yùn)行前做一些準(zhǔn)備工作,讀取配置文件,啟動一些非http服務(wù)線程等;有時候還需要在web服務(wù)停止時做一些事情,釋放資源等等,這些就要在啟動初始化和服務(wù)結(jié)束階段能執(zhí)行我們的代碼,這2個階段都要用到listener。

1. listener監(jiān)聽器

從web.xml我們可以看出,配置了ContextLoaderListener。需要實(shí)現(xiàn)2個方法contextInitialized(ServletContextEvent sce)和contextDestroyed(ServletContextEvent sce),這2個方法分別會在tomcat啟動和結(jié)束時執(zhí)行。如果需要的話,通過方法參數(shù)ServletContextEvent,我們可以把listener的處理結(jié)果放到ServletContextEvent或者從ServletContextEvent拿取數(shù)據(jù),通過ServletContextEvent可以和servlet進(jìn)程做數(shù)據(jù)交互。

2. filter

Filter用于處理http請求和響應(yīng)的攔截處理。http請求可以粗略分為3個階段,

* web容器,接收到http請求后,根據(jù)web.xml里配置的路徑,匹配Filter和servlet。
* Filter處理鏈,容器把http請求轉(zhuǎn)入filter處理,filter可以在真正業(yè)務(wù)處理前做預(yù)處理,像日志管理,權(quán)限管理等公共的http處理;
* http業(yè)務(wù)數(shù)據(jù)處理,servlet真正的業(yè)務(wù)處理,這里只關(guān)心業(yè)務(wù)邏輯,系統(tǒng)公共的處理,我不關(guān)心,加入后面權(quán)限認(rèn)證規(guī)則變化,或增加別的處理規(guī)則,在filter做;業(yè)務(wù)邏輯不動,我不動。


這樣相比容器直接發(fā)到servlet處理,大大減少了代碼重復(fù)工作而且方便統(tǒng)一管理。

3. servlet

servlet是http的業(yè)務(wù)處理核心,包括spring mvc也是在servlet里,封裝實(shí)現(xiàn)自己的處理流程。

spring 上下文關(guān)系


從上圖可以看出spring主要在listener和servlet兩部分做工作。spring mvc對應(yīng)的分了兩大類,既controller標(biāo)簽和非controller的其它標(biāo)簽(servcie,component等);之前項(xiàng)目上看到有人寫的web.xml,經(jīng)??吹?contextloaderlistener和dispatcher都是匹配 spring-*.xml,或者xml配置掃描時,沒有區(qū)分controller;這樣會導(dǎo)致部分spring bean初始化2次,產(chǎn)生一些不容易發(fā)現(xiàn)bug。
結(jié)合web容器啟動,spring會首先實(shí)例化contextloaderlistener,把service,component,或者xml里指定的bean;contextloaderlistener啟動完成后,再初始化dispatcher servlet;dispatcher servlet繼承contextloaderlistener實(shí)例化的bean,這里推測這些bean也是通過ServletContextEvent傳入的,具體可看下源碼,看源碼,看源碼,所有的匹配dispatch servlet的配置的url都走向了這里,可以理解成web容器里又放了一個容器,這樣spring就可以自定義的擴(kuò)展,細(xì)化http請求的階段,像interceptor。
日志打印執(zhí)行filter和interceptor示例

其它

示例代碼
不知這幾篇文章是否對大家有所幫助,希望各位看官多提意見,多多交流。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69068.html

相關(guān)文章

  • 一文學(xué)會 - Fiddler抓包快速實(shí)戰(zhàn)

    摘要:無論對開發(fā)人員或者測試人員來說,都是非常有用的工具。只顯示指定的多個顯示多個相關(guān)的情況下,使用英文分號隔開,見下圖。使用瀏覽器獲取圖片屬性需要注意的是刷新是使用強(qiáng)制刷新,這樣會重新請求資源。 ...

    Imfan 評論0 收藏0
  • 爬蟲 - 收藏集 - 掘金

    摘要:在這之前,還是有必要對一些概念超輕量級反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個爬取多頁面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個可以下載多頁面的爬蟲,如何將相對URL轉(zhuǎn)為絕對URL,如何限速,...

    1fe1se 評論0 收藏0
  • 基于 Electron 的爬蟲框架 Nightmare

    摘要:話題精華即為知乎的高票回答。下面的項(xiàng)目中還包含了另外一個爬取的知乎的動態(tài)。 作者:William本文為原創(chuàng)文章,轉(zhuǎn)載請注明作者及出處 Electron 可以讓你使用純 JavaScript 調(diào)用 Chrome 豐富的原生的接口來創(chuàng)造桌面應(yīng)用。你可以把它看作一個專注于桌面應(yīng)用的 Node.js 的變體,而不是 Web 服務(wù)器。其基于瀏覽器的應(yīng)用方式可以極方便的做各種響應(yīng)式的交互,接下來介...

    Harriet666 評論0 收藏0
  • 前端面試題(五)(安全、性能優(yōu)化)

    摘要:可能造成危害利用已通過認(rèn)證的用戶權(quán)限更新設(shè)定信息等利用已通過認(rèn)證的用戶權(quán)限購買商品利用已通過的用戶權(quán)限在留言板上發(fā)表言論。二說說你說了解的前端性能優(yōu)化方面減少請求合并文件精靈減少查詢查詢完成之前瀏覽器不能從這個主機(jī)下載任何任何文件。 一、說說你所知道的web安全及防護(hù)措施 常用攻擊手段:SQL注入、XSS(Cross Site Script),跨站腳本攻擊、CSRF(Cross Sit...

    tuomao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<