jsp如何實現(xiàn)前后端交互 jsp和后端交互有幾種方式
夕逆IT
- 數(shù)據(jù)庫
- 2023-08-13
- 104

大家好,今天小編來為大家解答以下的問題,關(guān)于jsp如何實現(xiàn)前后端交互,jsp和后端交互有幾種方式這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!為什么現(xiàn)在大多數(shù)網(wǎng)站是htm...
大家好,今天小編來為大家解答以下的問題,關(guān)于jsp如何實現(xiàn)前后端交互,jsp和后端交互有幾種方式這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!
為什么現(xiàn)在大多數(shù)網(wǎng)站是html結(jié)尾,很少見以jsp結(jié)尾
這個問題其實很好,其實,如果你弄明白了為啥,能幫助你更好的理解web。
談為什么之前,我們先簡單說一http工作的原理。當(dāng)你在瀏覽器中輸入網(wǎng)址的時候,實際上相當(dāng)于輸入了一條命令,格式如下。
協(xié)議://主機名[:端口]+參數(shù)
這個命令的意思是。用標(biāo)注的協(xié)議所指定的方法,去鏈接主機的相應(yīng)端口,參數(shù)是參數(shù)。
比如,當(dāng)你輸入http://www.google.com/的時候,實際是告訴瀏覽器用http的get方法,去訪問www.google.com主機的80端口,參數(shù)是"/",也就是get/
這個時候,在googl的服務(wù)器上,必須有一個程序來隨時監(jiān)聽客戶端發(fā)來的消息,然后給出相應(yīng)的返回值。比如,當(dāng)接受到get/時,應(yīng)該返回什么。
所以,在以前還沒有動態(tài)網(wǎng)站的時候,web服務(wù)程序(比如IIS)會把參數(shù)和指定目錄(網(wǎng)站根目錄)下的文件一一對應(yīng)起來。比如get/會直接返回根目錄下的index.php
同理,當(dāng)你訪問/hello.html的時候,實際上是把字符串"/hello.html"傳送到了服務(wù)器web程序,web程序會根據(jù)提前設(shè)定的網(wǎng)站根目錄去尋找hello.html文件,并把這個文件返回給客戶端。
這樣通過文件夾組織結(jié)構(gòu),就形成了靜態(tài)網(wǎng)站。但是后來我們需要用程序語言來處理復(fù)雜的邏輯怎么辦。最初的解決辦法就是在html文件中插入特殊的標(biāo)簽,并且保存成相應(yīng)的擴展名。
比如我在html中插入java語句,并保存成hello.jsp,放在網(wǎng)站根目錄下。
這個時候,當(dāng)你get/hello.jsp的時候,tomcat程序會自動調(diào)用java來處理<%%>中間的語句,并且把整個.jsp轉(zhuǎn)換成html,再返回到客戶端。
這就是.jsp.php.asp這類網(wǎng)站的工作原理。
但是,你一定要明白一個事實,web服務(wù)程序返回相應(yīng)的.jsp.html.php文件,一定要這樣做嗎。
當(dāng)然不是,我前面說了,返回文件實際上是人為定義去做的。作為一個程序,你可以return任何東西。
我可以任意設(shè)計程序,讓程序返回任何我想要的東西。
比如,我可以讓get"/hello.html"返回字符串"helloworld",而這個時候我的服務(wù)器上根本不存在hello.html這個文件。
基于這樣的原因,我們實際上可以用程序任意設(shè)計url,這個就叫做路由。而告訴程序某一個路由返回什么的過程,就叫路由綁定。
現(xiàn)代的web程序構(gòu)架,你是根本無法直接訪問html文件的,而是必須把路由綁定到某一個視圖上去。因為這樣可以把原來嵌入到html的java代碼分離出來,寫到特定的類中去,而不用混寫。這樣邏輯更清醒,維護更方便。這樣的就叫做mvc.
以著名的springMVC舉例,我們看一個小程序。
@RequestMapping("/hello"),就是路由綁定,他代表當(dāng)你訪問/hello時,會執(zhí)行hello方法,而hello方法的返回值是字符串"hello",所以客戶端會收到hello這個字符串。
不過,當(dāng)你正確配置springMVC的時候,程序會自動在/WEB-INF/jsp/中尋找hello.jsp,然后返回。(注意,這得JSP和前面例子中的jsp有很大不同,詳細請學(xué)習(xí)springMVC)。
這時你應(yīng)該明白,如何返回完全是我自定義的。我完全可以修改程序@RequestMapping("/hello.jsp"),這樣就像傳統(tǒng)一樣,通過/hello.jsp來返回hello.jsp,我也可以@RequestMapping("/a.jsp"),當(dāng)你方向/a.jsp時,返回hello.jsp,我甚至可以令/hello.html返回hello.jsp.
所以,你現(xiàn)在應(yīng)該明白為啥現(xiàn)在基本上看不到.jsp了吧。
第一現(xiàn)代符合MVC構(gòu)架的網(wǎng)站,網(wǎng)址中的/x/xxx.xxx已經(jīng)不代表真實目錄和真實文件了。所以邏輯上沒有必要出現(xiàn).jsp。
第二現(xiàn)代MVC構(gòu)架的網(wǎng)站,網(wǎng)址都是自己設(shè)計的,使用/hello.jsp和使用/hello是沒有區(qū)別的,那為什么不用更短的。hello.jsp沒有必要出現(xiàn)。
第三/hello.jsp僅僅是傳遞的一個字符串參數(shù),實際上我可以用任何程序來處理。比如我可以很容易用python寫出結(jié)尾是.jsp的網(wǎng)站。/hello.jsp可以完全是一個python網(wǎng)站。所以網(wǎng)址中的擴展名是沒有必要存在的。你看到網(wǎng)站不是.jsp,但是他的后臺可能仍然是java。
現(xiàn)代大多數(shù)網(wǎng)站,不管用什么語言,大多遵循了MVC的結(jié)構(gòu)。所以,你基本上越來越看不到以n.jsp是啊
sqlserver如何寫jsp并運行
在使用SQLServer數(shù)據(jù)庫的時候,我們可以使用JSP技術(shù)來完成與數(shù)據(jù)庫的交互操作。首先需要建立數(shù)據(jù)庫的連接,可以使用JDBC驅(qū)動來實現(xiàn)。然后,我們可以在JSP頁面中編寫SQL語句,使用JSTL標(biāo)簽庫或者EL表達式實現(xiàn)數(shù)據(jù)的展示和操作。例如,可以通過<sql:query>標(biāo)簽來執(zhí)行SQL查詢語句,匯總查詢結(jié)果并在頁面中展示。
同時,我們還可以使用JSP技術(shù)來實現(xiàn)數(shù)據(jù)庫的增刪改操作。通過表單提交數(shù)據(jù),然后使用JDBC驅(qū)動來將數(shù)據(jù)寫入到數(shù)據(jù)庫中??梢允褂肞reparedStatement這個對象來預(yù)編譯SQL語句,提高數(shù)據(jù)庫操作的效率和安全性。
最后,需要注意的是,在編寫JSP頁面的時候,需要注意數(shù)據(jù)安全性問題,盡量避免SQL注入等安全漏洞??梢允褂脜?shù)化查詢的方式來防范這類問題。
jsp視頻插件怎么實現(xiàn)
我給你介紹一個js插件,Bootstrap模態(tài)框(Modal)插件,你可以在彈出的模態(tài)框上加一個選擇按鈕的html代碼,這里給你提供了兩種方式一種是靜態(tài)模態(tài)框,一種是動態(tài)模態(tài)框模態(tài)框(Modal)是覆蓋在父窗體上的子窗體。通常,目的是顯示來自一個單獨的源的內(nèi)容,可以在不離開父窗體的情況下有一些互動。子窗體可提供信息、交互等。靜態(tài)模態(tài)框
開始演示模態(tài)框
在這里添加選擇按鈕
動態(tài)模態(tài)框
開始演示模態(tài)框
按下ESC按鈕退出。在這里添加選擇按鈕。
前后端分離和不分離的區(qū)別
其區(qū)別為:
1定義不同,前后端不分離指的仍是整體。前后端分離指的是物體化整為零。
2應(yīng)用不同,化整為零用前后端分離。物體仍是整體用前后端不分離。
OP和jsp有什么區(qū)別
OP和jsp的區(qū)別是:技術(shù)不同。
jsp是一種建立在Servlet規(guī)范功能之上的動態(tài)網(wǎng)頁技術(shù)。是在通常的網(wǎng)頁文件中嵌入腳本代碼,用于產(chǎn)生動態(tài)內(nèi)容,在JSP文件中嵌入的是java代碼和JSP標(biāo)記。
jsp是什么格式呀
JSP部署于網(wǎng)絡(luò)服務(wù)器上,可以響應(yīng)客戶端發(fā)送的請求,并根據(jù)請求內(nèi)容動態(tài)的生成htmlxml或其他格式文檔的web網(wǎng)頁,然后返回給請求者。
jsp如何實現(xiàn)前后端交互的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于jsp和后端交互有幾種方式、jsp如何實現(xiàn)前后端交互的信息別忘了在本站進行查找哦。
本文鏈接:http://m.tiantaijiaoyu.cn/su/3518.html