回答
是的,您可以使用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中的列表对象