導航:首頁 > 編程語言 > js中能不能寫java

js中能不能寫java

發布時間:2024-12-18 13:11:40

A. js中可以調用java代碼

js不能直接調用java代碼。
可以通過頁面提交後台的方式,間接調用後台的服務java代碼。
也可以通過ajax的方式,調用後台的服務java代碼。
兩種方式稍有差別,不過都是前後台的通信交互。

B. 在js腳本中可以通過<% %>,來嵌入java腳本嗎

js變數獲取jsp頁面中java代碼的變數值方法:
var
JS變數名
=
<%=JAVA變數名
%>
;
如果JAVA變數名的值本來含有引號,則這里需要轉義。
注意:JSP的動態內容,JS可以得到Java變數。而利用通訊協議轉化,和語言無關。

C. 在js腳本中可以通過<% %>,來嵌入java腳本嗎

js變數獲取抄jsp頁面中java代碼的變數值方法:
var JS變數名 = <%=JAVA變數名 %> ;
如果JAVA變數名的值本來含有引號,則這里需要轉義。

注意:JSP的動態內容,JS可以得到Java變數。而利用通訊協議轉化,和語言無關。

D. 學java開發需要學習js嗎


在回答這個問題之前,我想先澄清一點:學習Java開發與學習JavaScript(簡稱JS)並不是互為依賴的關系。也就是說,你可以只學習Java而不學習JS,同樣也可以只學習JS而不學習Java。它們分別是兩種不同的編程語言,用於解決不同的問題。
然而,在實際的開發工作中,Java和JS往往會結合使用。特別是在Web開發中,Java通常用於後端開發,處理伺服器端的邏輯和數據存儲;而JS則用於前端開發,負責與用戶進行交互和頁面的動態展示。因此,如果你希望成為一名全棧開發工程師,或者希望更好地理解整個Web開發流程,那麼學習JS會是一個不錯的選擇。
但這並不意味著你必須在學習Java的同時學習JS。你可以根據自己的興趣和職業規劃來決定學習的順序和重點。如果你主要關注後端開發,那麼可以先專注於Java的學習;如果你對前端開發更感興趣,那麼可以先學習JS。
從我個人的經驗來看,我在學習Java開發的過程中,並沒有立即學習JS。而是在對Java有了一定的掌握之後,才開始接觸JS。我發現這樣的學習路徑對我來說是比較自然的,因為我可以先將注意力集中在一種語言上,避免過早地分散精力。同時,當我開始學習JS時,由於我已經有了編程的基礎,所以上手也比較快。
總的來說,學習Java開發是否需要學習JS並沒有固定的答案。這取決於你的職業規劃和興趣愛好。但無論你選擇什麼樣的學習路徑,只要保持積極的學習態度和持續的努力,就一定能夠取得成功。
另外,你提到的「半個月左右」這個時間點,我認為是一個比較合理的時間段來開始考慮是否需要學習JS。在半個月的時間里,你可以對Java有一個初步的了解和掌握,然後根據自己的學習情況和興趣來決定是否進一步學習JS。

E. js怎麼引用JSP里定義的JAVA變數

可以將JAVA變數在JSP頭部定義成全局變數。
然後可以分別在JS和JSP里調用。
因為可以將JS和JSP理解為兩個相互獨立的塊。這2個塊裡面的變數都是局部變數。而局部變數是不共享的。
首先很基礎的:JS可以直接引用JAVA變數,但JAVA不能引用JS變數。因為頁面是先編譯JAVA再編譯JS,代碼如下:
String tbname="bd_bank";
out.write("<SCRIPT language="+"'"+"JavaScript"+"'"+">var tbname="+"'"+tbname+"'"+";</SCRIPT>");
%>

//下面的javascipt可以直接調用變數tbname
<script language="javascript">
alert(tbname);
</script>

//在js文件中的javascipt一樣可以直接使用變數 tbname 啊。
<script language="JavaScript" src="../comm/dbgrid.js"></script>

反正兩個原則記好:
1、jsp代碼中可以構造javascipt語句,當然包括定義備用的javascipt的變數
2、理論上在整個頁面中,任何一個地方定義的javascript代碼都可以被正確使用。javascipt代碼對位置不敏感。

F. 在html頁面中的js段里寫的java語句在什麼時候執行

頁面載入時。會編輯,頁面的所有內容。包括JS 。。和java 代碼。。但不會執行。遇到錯誤,會提示錯誤。也可能會頁面顯示異常。你在JS方法裡面寫的java 代碼是在。你調用該JS方法的時候執行java 代碼。不清楚的可繼續追問。

G. 單獨的js文件,怎樣才能使用Java代碼

不能在裡面寫java代碼,不過你可以把相應的數據做成js函數的參數
在jsp頁面調用時,根據java代碼,傳遞相應的參數過去

H. 怎麼在 js 代碼中使用 jsp 標簽或 Java 代碼

JSP 標簽還是很方便的,比如 Struts、Spring 等提供給我們的 JSP 標簽,可以用它們來獲取變數或進行一些計算。比如
struts2 的 <s:url value="/admin/unmi.action"/>
會為我們自動在前面附加上應用上下文,如實際會生成
/testsite/admin/unmi.action。還有更多更方便的標簽使用,比如用標簽獲取到 session 或請求中的數據作為 js
的變數等。

引申此話題的,其實不光是在 JS 中使用 JSP 標簽,可用 JSP 標簽的地方當然可以直接寫 Java 代碼,即 ScriptLet 代碼。

如果是在 JSP 中內嵌的 JS 代碼,那當然好辦,JSP 文件中能用什麼標簽,js 代碼中也能隨便用,因為 JSP 標簽會先在服務端解釋生成相應的 JS 代碼,丟給客戶端執行。

那如果是在單獨的 JS 文件中想要使用 JSP 標簽,該如何辦呢?還直接像 JSP 那樣使用標簽的話,對不起 JS
文件中給你原樣顯示出來,因為 JS 文件不被伺服器端解釋。其實到現在問題也基本有了答案,要解決的問題就是要讓服務端去解釋你的標簽,有兩種方案。

一. js 文件命名為 JSP 文件,寫 js 內容,其中用標簽,然後用 <script src="/scripts/tags.js.jsp"></script> 把該 JSP 文件當作 JS 文件那樣引入。

因為 JSP 文件會被服務端解釋,所以把該 JSP 文件當作 JS 文件來寫,JS 文件里應該是什麼,你的 JSP
文件也應該輸出什麼,只是裡面可以放標簽,要知道它將會輸出什麼。用 <script> 來引入的話,頁面順理的把它認為是一段外部 JS
代碼。

例如文件 /scripts/tags.js.jsp 中的內容是:

<%@ taglib prefix="s" uri="/struts-tags" %>
var currentUser = '<s:property value="#session.userName" />';
alert("currentUser: " + currentUser);

那麼在某個網頁中用 <script src="/scripts/tags.js.jsp"></script> 引入該文件時,上面的 JS 代碼將會彈出當前 session 中的用戶名來。

上面代碼執行都沒問題的,但是你直接瀏覽 http://unmi/testsite/scripts/tags.js.jsp 你看到的是擠在一團的代碼,不像查看普通 JS 文件那樣有清晰的換行和退格,原因是瀏覽器默認只認擴展名,它的 mime 類型,也就是 Content-Type text/html。要讓它更像是個 JS 文件那得給它加上響應類型的設置,在 tags.js.jsp 文件第一行加上:

<%response.setContentType("text/javascript;charset=utf-8");%>

這時候對於瀏覽器來說,無論從哪個方向來看它都是個切切實實的 JS 文件,只擴展名不同罷了。

上面的方法實際表現是沒什麼問題的,不過還有兩點不那麼完美,第一,文件名看起來像 JSP 文件,有些令人誤解;第二,在 IDE 中打開該 JSP 文件,沒法應用 JS 的語法加亮,給編輯帶來不少麻煩。下面的方法充分解決前面兩個問題。

二. 直接在 JS 文件中使用 JSP 標簽

講下原理,不是說應用伺服器端默認不解釋 JS 中的標簽嗎,那我們可以讓個別的 JS 文件同樣受到伺服器端的關注,不是把 js 原文直接拋給客戶端,而是先解釋其中的標簽,或是其中的 java 代碼。

Tomcat 這種應用伺服器我們通常也會稱它為 Servlet 容器,因為它執行的是 Servlet,JSP 自然也是 Servlet。在 %TOMCAT_HOME%/conf/web.xml 中我們可以看到實際處理 JSP 文件的 Servlet 是:

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>

org.apache.jasper.servlet.JspServlet,所以我們可以在自己應用的 web.xml
文件中配置某些特別的文件同樣由 JspServlet 來處理。比如要特別處理 /scripts/tags.js 文件,在應用的 web.xml
中只要加上:

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>/scripts/tags.js</url-pattern>
</servlet-mapping>

注意,上面是 Tomcat 6.x 或更早版中應用的 web.xml 的寫法,後來 servlet-mapping 中
url-pattern 可同時寫多個,加上 Tomcat 7 自身的古怪,這一設置會覆蓋掉原 jsp 的設置,所以在 Tomcat 7
中應用必須配置成如下(也就是必須默認項也帶上,然而列出自己的希望被當作 jsp 的 js 文件,可多個,不把 *.jsp/*.jspx
帶上的話,你原有的 jsp 會當作文本文件直接展示出源碼來):

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
<url-pattern>/scripts/tags.js</url-pattern>
</servlet-mapping>

我們配置 /scripts/tags.js 要由 JspServlet 來處理,不會影響到現有的其他任何 JS 文件。

那現在的 /scripts/tags.js 可不是普通的 js 文件了,它可是具有放置 JSP 標簽和寫 Java
代碼的超能力了,因為其中的 JSP 標簽和 Java 代碼首先會經由服務端來解釋。它集 JS 和 JSP 於一身,另外也別忘了給該 JS
文件前面加上代碼:

<%response.setContentType("text/javascript;charset=utf-8");%>

不然單獨瀏覽它也就只是不那麼好看。

無疑,這是目前我能想的最完美的一種方式了,且兼容於其他的 Servlet 容器,也不用改動公共部分的東西。/scripts/tags.js 在 JS IDE 中打開也漂亮多了,因為它就是個 JS 文件,只是被賦予了 JSP 的功能。

閱讀全文

與js中能不能寫java相關的資料

熱點內容
上傳雲端拍照數據去哪裡找 瀏覽:404
linux文件修改不能保存 瀏覽:299
安卓手機網路切換如何設置 瀏覽:545
哪裡可以免費得數據 瀏覽:29
oracleexcel文件導入 瀏覽:885
泳裝一件代發網站有哪些 瀏覽:628
護士怎麼學好編程 瀏覽:374
哪些醫療數據不能交易 瀏覽:302
數據線插到電腦的哪裡 瀏覽:549
數控編程501至510代表什麼 瀏覽:979
企業采購app哪個靠譜 瀏覽:614
如何給文件夾許可權 瀏覽:819
運城網路推廣包括什麼 瀏覽:351
win10更新在那個文件夾 瀏覽:898
講解古文的app有哪些 瀏覽:141
如何把文件夾導入到手機桌面 瀏覽:941
運營商文件修改路徑 瀏覽:253
找工作的卡通微信圖片 瀏覽:129
ae源文件的格式是 瀏覽:330
qq群文件分類管理 瀏覽:112

友情鏈接