回答
是的,您可以使用JSP生成JavaScript以發送到瀏覽器。只需將<script>
標記指向一個導致JSP頁面的URL,該頁面將響應的MIME類型設置爲「text/javascript」。
不,您不能在瀏覽器的JavaScript中使用JSP標籤。 JSP是服務器端技術,這意味着處理必須在服務器上完成。
JSP是一種視圖技術,運行在服務器端,您可以使用它來編寫HTML/CSS/JS之類的模板文本。您可以使用JSP taglibs和EL來控制頁面流並使用Java代碼動態輸出。這也涉及JavaScript內容/輸出。一旦JSP運行,它基本上會生成一個HTML頁面並將其發送到客戶端。您可以使用JSP動態輸出後端數據,就好像它是JavaScript變量一樣。例如:
<script>
var foo = '${someBean.someProperty}';
</script>
一旦HTML頁面(與CSS/JS裏面)已經到達客戶端(右擊頁面,查看源代碼,你不會看到的Java/JSP的任何一行代碼),那麼HTML將開始被解釋,CSS將開始被應用並且JS將開始被執行。客戶端無法使用Java/JSP代碼。如果您查看客戶端生成的源,上面的例子,現在看起來像:
<script>
var foo = 'somePropertyValue';
</script>
這樣JavaScript有服務器端的變量只是即時訪問。
現在相反;讓JavaScript訪問/調用Java/JSP代碼的唯一方法是實際上向服務器端發送HTTP請求。這可以通過幾種方法完成:執行window.location
來執行同步GET請求,或者執行form.submit()
來執行同步GET或POST請求,或者執行XMLHttpRequest#send()
來執行異步請求(也稱爲Ajax)。
或者,您也可以讓JavaScript設置表單的一個(隱藏)輸入字段,以便每當用戶提交表單時「自動」獲取表單提交。無論哪種方式,服務器端的Java/JSP代碼都可以通過常用的請求參數方式訪問JavaScript控制的值。
要了解有關Java/JSP和JavaScript之間的隔離牆的更多信息,您可能會發現this article有用。
當我在會話或上下文中想要暴露在客戶端時,我對此有所瞭解。我創建了一個包含全局變量值的javascript mime類型的jsp文件。然後將其包含在我的頁面頂部,並在必要時重新使用這些值。
爲如:
**globalVar.jsp**
var ctxPath = "<%=request.getContextPath()%>";
**script.js**
ajaxURL = ctxPath + "/path/to/call?param=value";
,你甚至可以命名空間此爲outlined here
您可以輕鬆地使用Java標籤分配給稍後的JavaScript代碼中調用Java變量。
<% String name="Peter" %>
,然後在JavaScript ..
<script type="text/javascript">
VAR _name = <%=名稱%>
@BalusC答案解釋的清楚什麼是服務器端和客戶端編程。但是我想強調一點,如果你真的想你javascript
內得到運行jsp
,那麼你可以給它的文件擴展名.jsp
而不是.js
因爲什麼決定文件是否是一個javascript
文件或者也不是什麼MIME媒體類型。您可以使用JSP設置MIME:
<%@ page contentType="text/javascript" %>
,現在你可以使用內的jsp
像javascript
:
var someMessage = "${someMessage}"
var anotherMessage = "${anotherMessage}"/>"
現在,您可以直接鏈接到它:
<script type="text/javascript" src="/script.jsp"></script>
- 1. 在JSP標籤中使用JavaScript
- 2. 如何在javascript/jQuery/jsp中使用<spring:message標籤?
- 3. 在屬性中使用jsp標籤來定製jsp標籤
- 4. 使用標籤庫在JSP
- 5. 使用JSP標籤
- 6. 如何決定HTML標籤將顯示在JSP或隱藏在JSP Scriplet標籤使用HTML標籤ID
- 7. JSP標籤可以在JavaScript中使用嗎?
- 8. 內部jsp標籤javascript
- 9. 如何製作使用其他JSP標籤的自定義JSP標籤?
- 10. 如何在JSP中使用聲明標籤?
- 11. 如何在jsp文件中使用freemarker標籤庫?
- 12. 如何在struts 2標籤中使用jsp變量
- 13. 如何在jsp中使用form標籤內的模型屬性?
- 14. 在JSP中,如何使用錨標籤傳遞ArrayList?
- 15. 如何在jsp中使用音頻標籤
- 16. 如何在JSP中使用Facelets的ui:repeat標籤?
- 17. 如何在JavaScript中使用jsp?
- 18. JSP:包括標籤沒有在JavaScript
- 19. 如何使h1標籤出現在同一行使用jsp
- 20. 如何在Java Web App中創建自定義標籤?如何在JSP中使用自定義標籤?
- 21. 我如何禁用javascript的驗證在JSP中<script>標籤......在Eclipse
- 22. 如何使用servlet中JSP useBean標籤中定義的bean?
- 23. Grails中使用的JSP標籤
- 24. 標籤在JSP頁
- 25. HTML在JSP標籤
- 26. 如何在JavaScript標籤下刮標籤?
- 27. JSP標籤+ scriptlet。如何啓用scriptlet?
- 28. 如何在javascript中禁用標籤標籤
- 29. 如何在div標籤下使用javascript在Mozilla中獲取所有標籤
- 30. 如何使用OGNL標籤閱讀JSP中的列表對象