
servlet的工作過(guò)程 簡(jiǎn)述servlet的執(zhí)行過(guò)程

大家好,感謝邀請(qǐng),今天來(lái)為大家分享一下servlet的工作過(guò)程的問(wèn)題,以及和簡(jiǎn)述servlet的執(zhí)行過(guò)程的一些困惑,大家要是還不太明白的話,也沒(méi)有關(guān)系,因?yàn)榻酉聛?lái)將為大...
大家好,感謝邀請(qǐng),今天來(lái)為大家分享一下servlet的工作過(guò)程的問(wèn)題,以及和簡(jiǎn)述servlet的執(zhí)行過(guò)程的一些困惑,大家要是還不太明白的話,也沒(méi)有關(guān)系,因?yàn)榻酉聛?lái)將為大家分享,希望可以幫助到大家,解決大家的問(wèn)題,下面就開(kāi)始吧!
說(shuō)說(shuō)你們的JAVA學(xué)習(xí)歷程是怎樣的
給您推薦Java學(xué)習(xí)路線圖,是菊廠童鞋做開(kāi)發(fā)經(jīng)常使用的一些技術(shù)和工具,希望能幫助到您~
前端部分:
1)HTML:網(wǎng)頁(yè)的核心語(yǔ)言,構(gòu)成網(wǎng)頁(yè)的基礎(chǔ)
2)CSS:使網(wǎng)頁(yè)更加豐富多彩燦爛的利器
3)JavaScript:使網(wǎng)頁(yè)動(dòng)起來(lái)的根本,加強(qiáng)了網(wǎng)頁(yè)和用戶之間的交互
4)HTMLDOM:換一種更加形象化的角度來(lái)看待網(wǎng)頁(yè),讓我們更加方便的控制網(wǎng)頁(yè)
5)HTMLBOM:與瀏覽器交互不可或缺的工具
6)JavaScript庫(kù),主要是:jQuery及其插件、YUI及其插件,使編寫(xiě)網(wǎng)頁(yè)更加的方便快捷和健壯的強(qiáng)大工具
7)AJAX:異步提交,增強(qiáng)了用戶使用網(wǎng)頁(yè)的良好交互體驗(yàn)
8)JSON:比XML更小、更快,更易解析的數(shù)據(jù)傳輸工具
9)FLEX:提供豐富多彩的動(dòng)畫(huà)效果
10)普元工作流:更加清晰明了的幫助用戶處理業(yè)務(wù)流程上面的工作
11)JSP:Servlet的展示層,使網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)的顯示分離
12)JSTL:加強(qiáng)和簡(jiǎn)化了JSP頁(yè)面的開(kāi)發(fā)
13)EL:使JSP頁(yè)面寫(xiě)起來(lái)更加簡(jiǎn)單
后臺(tái)部分:
1)JAVA語(yǔ)言編程基礎(chǔ)部分:內(nèi)容豐富是Java知識(shí)體系結(jié)構(gòu)的核心和基礎(chǔ)
2)JDBC:提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使Java開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序
3)JavaMail:用于電子郵件的相關(guān)的編程工作
4)JUnit:?jiǎn)卧獪y(cè)試,整個(gè)變成工作測(cè)試的地位始終非常重要
5)Log4j:使我們能夠更加細(xì)致地控制日志的生成過(guò)程
6)Servlet:JavaWeb的核心
7)Struts2:JavaWeb編程中明星級(jí)的框架,優(yōu)點(diǎn)多功能強(qiáng)使編程工作更簡(jiǎn)單,主要用于控制跳轉(zhuǎn)
8)Spring:JavaWeb編程中明星級(jí)的框架,同樣優(yōu)點(diǎn)多功能強(qiáng)使編程工作更簡(jiǎn)單,主要用于管理對(duì)象
9)iBatis:JavaWeb編程中明星級(jí)的框架,同樣也是優(yōu)點(diǎn)多功能強(qiáng)使編程工作更簡(jiǎn)單,主要用于程序和數(shù)據(jù)庫(kù)之間的交互
10)SQL:與數(shù)據(jù)庫(kù)交互式編程的必備工具
版本控制:
1)SVN:版本控制,方便團(tuán)隊(duì)協(xié)同工作
WEB服務(wù)器:
1)Tomcat:優(yōu)秀免費(fèi)的中小型WEB服務(wù)器
2)Weblogic:功能很強(qiáng)大的WEB服務(wù)器
開(kāi)發(fā)工具:
1)Eclipse:開(kāi)源強(qiáng)大的Java編程工具
2)MyEclipse:在eclipse基礎(chǔ)上加上自己的插件開(kāi)發(fā)而成的功能強(qiáng)大的企業(yè)級(jí)集成開(kāi)發(fā)環(huán)境
數(shù)據(jù)庫(kù):
1)Oracle:數(shù)據(jù)庫(kù)業(yè)界老大,這個(gè)常用一點(diǎn)當(dāng)然,也僅僅是常用一些常用的功能而已,需要加強(qiáng)
2)MySQL:最好的關(guān)系型數(shù)據(jù)庫(kù)之一
3)SqlServer:最好的關(guān)系型數(shù)據(jù)庫(kù)之一
數(shù)據(jù)庫(kù)客戶端:
1)Toad:非常棒的數(shù)據(jù)庫(kù)客戶端軟件
操作系統(tǒng):
1)Windows
2)Linux
遠(yuǎn)程登錄的會(huì)話工具:
1)SSH:一直在用,非常不錯(cuò)
其他:
各種種類(lèi)和版本的瀏覽器(推薦使用FireFox)、office辦公軟件系列、各種文本編輯器(推薦Sublime)、各種閱讀器等等
下面是從網(wǎng)上找的三幅圖片,比較好的說(shuō)明了作為一個(gè)Java程序員的學(xué)習(xí)路線圖,這里作為一種自我提醒的工具,不時(shí)看看,并且會(huì)趕緊修補(bǔ)自己的知識(shí)樹(shù)!
1、Java的知識(shí)體系結(jié)構(gòu)
2、JavaWeb開(kāi)發(fā)的基本學(xué)習(xí)路線圖
3、JavaWeb開(kāi)發(fā)的成長(zhǎng)路線圖
第一部分:Java高級(jí)學(xué)習(xí)課程大綱
1、工程化專(zhuān)題
我們的工程化專(zhuān)題有五大內(nèi)容:Maven、Nexus、jenkins、代碼審查、Git/SVN
一共耗時(shí)一個(gè)月
2、源碼分析專(zhuān)題
源碼分析有三大內(nèi)容:spring的源碼分析,里面包括FactoryBean和MVC和事務(wù)處理與Spring源碼中設(shè)計(jì)模式分析;持久層;企業(yè)級(jí)開(kāi)發(fā)前瞻,一共耗時(shí)2個(gè)月
3、高并發(fā)與高性能
高并發(fā)與高性能有四大內(nèi)容:并發(fā)編程,里面又包含有線程安全和NIO和AIO。異步通信,里面包含有本地隊(duì)列和消息中間件。分布式協(xié)調(diào)技術(shù),里面包含有Zookeeper和服務(wù)鎖。NoSqI:里面包含有MongoDB和Redis和Memcached。一共耗時(shí)2個(gè)月
4、高可用性與可擴(kuò)展
高可用性與可擴(kuò)展有兩大內(nèi)容:分布式架構(gòu)介紹,里面有導(dǎo)流技術(shù)和服務(wù)設(shè)計(jì)和存儲(chǔ)設(shè)計(jì)。服務(wù)調(diào)用,里面包含有WebService和Dubbo。一共耗時(shí)2個(gè)月
5、性能優(yōu)化
性能優(yōu)化有四大內(nèi)容:優(yōu)化技巧,如何尋找性能瓶頸。JVM優(yōu)化。數(shù)據(jù)庫(kù)優(yōu)化。服務(wù)器優(yōu)化。一共耗時(shí)2個(gè)月
上面這五大專(zhuān)題,是幾位工作經(jīng)驗(yàn)十多年的大牛,根據(jù)自己往年的工作經(jīng)驗(yàn)與經(jīng)歷,在根據(jù)現(xiàn)在科技發(fā)展的實(shí)際情況,歷經(jīng)幾個(gè)月的時(shí)間編寫(xiě)而成,換句話說(shuō),上面的五大專(zhuān)題,也就是他們這十幾年精華總結(jié),現(xiàn)在,您只要按照上面的課題學(xué)習(xí),只需要花費(fèi)掉七個(gè)月多的時(shí)間,就能夠?qū)W會(huì)與理解幾位大牛十多年總結(jié)出來(lái)的精華。學(xué)完這些,還怕公司老總不給漲工資和升職么?
第二部分:階段性的學(xué)習(xí)
學(xué)什么東西都一樣,小宅相信大家也是一樣,在學(xué)東西的時(shí)候,總會(huì)安排好自己階段性的學(xué)習(xí),這樣才能有效的提升自己與有效的理解和認(rèn)知所學(xué)的知識(shí)。合理安排好,才能起到事半功倍的效果。
階段一:
階段二:
階段三:
階段四:
階段五:
jsp工作原則
jsp的執(zhí)行必須同時(shí)具備3個(gè)條件:jsp容器、java編譯器和java虛擬機(jī)。
在jsp運(yùn)行過(guò)程中,首先由客戶端瀏覽器發(fā)出請(qǐng)求,jsp容器接收請(qǐng)求后,jsp容器對(duì)jsp代碼進(jìn)行以下4個(gè)操作過(guò)程(如果不是首次訪問(wèn)并且jsp文檔沒(méi)有更改過(guò)則直接執(zhí)行第4步)
1、代碼轉(zhuǎn)化。jsp容器將jsp文件轉(zhuǎn)換成javaservlet文件;
2、編譯。jsp容易編譯javaservlet文件,生成class文件;
3、生成實(shí)例。jsp容器加載編譯后的class文件,并創(chuàng)建實(shí)例;
4、相應(yīng)請(qǐng)求。jsp容器調(diào)用該實(shí)例的請(qǐng)求處理方法處理客戶請(qǐng)求,并將相應(yīng)信息回復(fù)給客戶端。
web前端學(xué)習(xí)教程流程有什么
web前端其實(shí)是一個(gè)蠻重要的角色,承載了業(yè)務(wù)的交互與展現(xiàn),是一個(gè)系統(tǒng)跟用戶打交道最緊密的角色。為了詳細(xì)回答這個(gè)問(wèn)題,我寫(xiě)成了一篇文章https://www.toutiao.com/i6514409636878090756/可以去看一下
↓↓↓覺(jué)得好,就點(diǎn)贊吧~~springmvc的工作流程是什么
spring工作的流程
流程如下:
1、用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet),該控制器會(huì)過(guò)濾出哪些請(qǐng)求可以訪問(wèn)Servlet、哪些不能訪問(wèn)。就是url-pattern的作用,并且會(huì)加載springmvc.xml配置文件。
2、前端控制器會(huì)找到處理器映射器(HandlerMapping),通過(guò)HandlerMapping完成url到controller映射的組件,簡(jiǎn)單來(lái)說(shuō),就是將在springmvc.xml中配置的或者注解的url與對(duì)應(yīng)的處理類(lèi)找到并進(jìn)行存儲(chǔ),用map<url,handler>這樣的方式來(lái)存儲(chǔ)。
3、HandlerMapping有了映射關(guān)系,并且找到url對(duì)應(yīng)的處理器,HandlerMapping就會(huì)將其處理器(Handler)返回,在返回前,會(huì)加上很多攔截器。
4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過(guò)它來(lái)訪問(wèn)處理器,并執(zhí)行處理器。
5、執(zhí)行處理器
6、處理器會(huì)返回一個(gè)ModelAndView對(duì)象給HandlerAdapter
7、通過(guò)HandlerAdapter將ModelAndView對(duì)象返回給前端控制器(DispatcherServlet)
8、前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(jsp),其實(shí)就是將ModelAndView對(duì)象中存放視圖的名稱進(jìn)行查找,找到對(duì)應(yīng)的頁(yè)面形成視圖對(duì)象
9、返回視圖對(duì)象到前端控制器。
10、視圖渲染,就是將ModelAndView對(duì)象中的數(shù)據(jù)放到request域中,用來(lái)讓頁(yè)面加載數(shù)據(jù)的。
11、通過(guò)第8步,通過(guò)名稱找到了對(duì)應(yīng)的頁(yè)面,通過(guò)第10步,request域中有了所需要的數(shù)據(jù),那么就能夠進(jìn)行視圖渲染了。最后將其返回即可。
MVC工作流程
SpringMVC工作流程描述:
1.用戶向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求被Spring前端控制ServeltDispatcherServlet捕獲;
2.DispatcherServlet對(duì)請(qǐng)求URL進(jìn)行解析,得到請(qǐng)求資源標(biāo)識(shí)符(URI)。然后根據(jù)該URI,調(diào)用HandlerMapping獲得該Handler配置的所有相關(guān)的對(duì)象(包括Handler對(duì)象以及Handler對(duì)象對(duì)應(yīng)的攔截器),最后以HandlerExecutionChain對(duì)象的形式返回;
3.DispatcherServlet根據(jù)獲得的Handler,選擇一個(gè)合適的HandlerAdapter;
4.提取Request中的模型數(shù)據(jù),填充Handler入?yún)ⅲ_(kāi)始執(zhí)行Handler(Controller)。在填充Handler的入?yún)⑦^(guò)程中,根據(jù)你的配置,Spring將幫你做一些額外的工作:HttpMessageConveter:將請(qǐng)求消息(如Json、xml等數(shù)據(jù))轉(zhuǎn)換成一個(gè)對(duì)象,將對(duì)象轉(zhuǎn)換為指定的響應(yīng)信息。數(shù)據(jù)轉(zhuǎn)換:對(duì)請(qǐng)求消息進(jìn)行數(shù)據(jù)轉(zhuǎn)換。如String轉(zhuǎn)換成Integer、Double等。數(shù)據(jù)根式化:對(duì)請(qǐng)求消息進(jìn)行數(shù)據(jù)格式化。如將字符串轉(zhuǎn)換成格式化數(shù)字或格式化日期等。數(shù)據(jù)驗(yàn)證:驗(yàn)證數(shù)據(jù)的有效性(長(zhǎng)度、格式等),驗(yàn)證結(jié)果存儲(chǔ)到BindingResult或Error中。
5.Handler執(zhí)行完成后,向DispatcherServlet返回一個(gè)ModelAndView對(duì)象;
6.根據(jù)返回的ModelAndView,選擇一個(gè)適合的ViewResolver(必須是已經(jīng)注冊(cè)到Spring容器中的ViewResolver)返回給DispatcherServlet;
7.ViewResolver結(jié)合Model和View,來(lái)渲染視圖;
8.將渲染結(jié)果返回給客戶端。
servlet工作機(jī)制
servlet的工作機(jī)制如下:
①客戶端(瀏覽器)在地址欄輸入一個(gè)URL發(fā)起HTTP請(qǐng)求。
②服務(wù)器根據(jù)URL指定要執(zhí)行的Servlet。
③servlet運(yùn)行service方法,并給服務(wù)器作出相應(yīng)。
④服務(wù)器接收到了servlet的響應(yīng)數(shù)據(jù),將數(shù)據(jù)返回給請(qǐng)求者。
⑤客戶端接受響應(yīng)數(shù)據(jù),作出展示。
OK,關(guān)于servlet的工作過(guò)程和簡(jiǎn)述servlet的執(zhí)行過(guò)程的內(nèi)容到此結(jié)束了,希望對(duì)大家有所幫助。
本文鏈接:http://www.wzyaohuidianqi.cn/ke/3748.html
上一篇:javascript效果都有啥 js和javascript區(qū)別
下一篇:后臺(tái)管理系統(tǒng)下載包含數(shù)據(jù)庫(kù)?數(shù)據(jù)管理系統(tǒng)
