為什么網(wǎng)上幾乎沒有見過后綴jsp結(jié)尾的網(wǎng)頁?
時間:2023-12-13 06:06:02 | 來源:網(wǎng)站運(yùn)營
時間:2023-12-13 06:06:02 來源:網(wǎng)站運(yùn)營
為什么網(wǎng)上幾乎沒有見過后綴jsp結(jié)尾的網(wǎng)頁?: 當(dāng)你寫一個jsp頁面并運(yùn)行后,觀察下tomcat編譯后的文件,會生成相應(yīng)的*.class,也就說jsp本質(zhì)上是servlet. 反編譯該class文件,你會發(fā)現(xiàn)該文件中獲取到你的請求,并處理業(yè)務(wù)邏輯,然后把結(jié)果封裝為html輸出.
所以訪問的頁面都是發(fā)送的請求,而不是靜態(tài)的xx.jsp文件,攔截器攔截到該請求后調(diào)用相應(yīng)的servlet處理業(yè)務(wù)邏輯,然后結(jié)果被封裝為靜態(tài)文件xx.html輸出. 而輸出的頁面怎么寫呢?很麻煩吧?所以jsp的作用就是使用一個模板,用特殊占位符(比如jstl)來站位并控制簡單邏輯,后臺servlet處理完業(yè)務(wù)邏輯會按照相應(yīng)的jsp模板替換為xx.html輸出.
當(dāng)然也有直接用jsp做后臺開發(fā)的,因?yàn)楸举|(zhì)上是一個class類,可以方便的調(diào)用后臺其他類.不過這樣違反mvc的開發(fā)原則,也不符合前后端分離的開發(fā)模式,代碼無法維護(hù),最重要的是你需要不時的使用丑陋的<%= >符號標(biāo)注java部分,最終導(dǎo)致代碼無法閱讀.
當(dāng)使用框架之后,可以方便的控制請求后綴,java中一般使用 xx.do xx.action xx.html xx等,沒有特殊的意思,只是為了使攔截器方便的區(qū)分靜態(tài)文件(*.css *.js等)與請求.
jsp最為一種古老的技術(shù),個人開發(fā)中感覺已經(jīng)很少了.比如現(xiàn)在的jfinal開發(fā)框架直接使用html模板,使用自定義的標(biāo)簽,方便快速.
在大前端飛速發(fā)展的今天,甚至出現(xiàn)了完全前后端分離的模式,即全部頁面都是用ajax請求,后臺提供相應(yīng)的api,所以jsp最終肯定要成為過去式.它只是一個模板.