谁能告诉我如何在 JSP 中将 JavaScript 值传递给 Scriptlet?
如何在 JSP 中将 JavaScript 值传递给 Scriptlet?
IT技术
java
javascript
jsp
scriptlet
2021-01-16 03:21:59
6个回答
我可以提供两种方式,
一个.jsp,
<html>
<script language="javascript" type="text/javascript">
function call(){
var name = "xyz";
window.location.replace("a.jsp?name="+name);
}
</script>
<input type="button" value="Get" onclick='call()'>
<%
String name=request.getParameter("name");
if(name!=null){
out.println(name);
}
%>
</html>
b.jsp ,
<script>
var v="xyz";
</script>
<%
String st="<script>document.writeln(v)</script>";
out.println("value="+st);
%>
您的 javascript 值在客户端,您的 scriptlet 在服务器端运行。因此,如果您想在 scriptlet 中使用您的 javascript 变量,您将需要提交它们。
为此,请将它们存储在输入字段中并提交表单,或执行 ajax 请求。我建议你为此研究 JQuery。
很简单,你不能!
JSP 是服务器端,javascript 是客户端,这意味着在评估 javascript 时不再有“jsp 代码”。
我将这个问题解释为:
“谁能告诉我如何为JavaScript传递值以在 JSP 中使用?”
如果是这种情况,此 HTML 文件会将服务器计算的变量传递给 JSP 中的 JavaScript。
<html>
<body>
<script type="text/javascript">
var serverInfo = "<%=getServletContext().getServerInfo()%>";
alert("Server information " + serverInfo);
</script>
</body>
</html>
你不能那样做,但你可以做相反的事情:
在您的jsp中,您可以:
String name = "John Allepe";
request.setAttribute("CustomerName", name);
访问js中的变量:
var name = "<%= request.getAttribute("CustomerName") %>";
alert(name);