jsp中的js代码怎么调用后台servlet中的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp中的js代码怎么调用后台servlet中的值相关的知识,希望对你有一定的参考价值。

是这样吗
<%
String user=request.getParameter("user");
%>
alert("user"+<%=user%>);
servlet中需要添加什么吗?

首先,你理解的有问题。 js是取不到servlet的值的(即服务端数据)。
应该反过来理解。 用servlet去生成js代码。
因为js、CSS、html对服务端而言是本文,只不过需要按照某种逻辑去生成可被客户端浏览器所理解的本文即可。
最后,你写的代码是没有问题,如果上面那部分是在jsp的<script>标签中的话。
而user这个变量值,servlet是不需要做什么的,因为它只能设置request的attribute。你能保证客户端会传过来user变量值就行。如果user是从服务端获取,即servlet添加request.setAttribute("user", value的值),然后更改上面的request.getParameter("user")为request.getAttribute("user")
参考技术A 你这样是可以的。但是

<%与%>之间的代码不是javascript,而是java代码,属于后台。下面的alert方法才是js代码,实参列表中的<%=user%>在页面到达客户端之前已经是实际数据了。

jsp与servlet同处后台,jsp最终会被转化为servlet。所以,jsp访问servlet的问题实际上是servlet互访的问题。

目前在jsp中访问servlet已经通常不采用你给出的方式了,具体原因请baidu。好的做法是使用el表达式,或者jsp标签。

js处于客户端,运行于浏览器中,可以通过ajax等间接方式访问服务器端数据。
参考技术B 这样似乎不行吧!给你个转换的方法,你可以把<%
String user=request.getParameter("user");
%>
获取的user值放到一个隐藏表单中,然后js获取这个隐藏表单的值就可以了。
参考技术C 你只需要知道servlet是一个类,而jsp只是一个特殊的servlet而已,现在你明白了?两个类之间参数调用。 参考技术D 好像是吧...直接接收你servlet值的属性名字

我想在jsp页面中用js获取s:property中的value要怎么办

很简单啊!s:property的value是从action中获取的值,既然这样,你可以在js这样获取:
var name = $属性名; 当然,用el表达式要引入jstl标签库!不然要报错!
也可以:<div id="name"><s:property value="属性名"></div>
js:var name=document.getElementById('name').innerHTML;
参考技术A jsp页面中用js获取s:property中的value的做法是在js中利用单引号对界定s:property取值。如下:
var url = '<s:property value="#urlBack"/>'

1、jsp文件定义如下:

<tr>
<td height="6%"align="center">
<s:submit cssClass="button" key="common.initDelegate.label" align="center" theme="simple"/>
<s:url id="urlBack" action="myAction" includeParams="none" escapeAmp="false">
<s:param name="period.periodId" value="%period.periodId"></s:param>
</s:url>
<input type="button" onclick="javascript:cancel()" value="<s:text name="common.button.cancel"/>"/>
</td>
</tr>

2、js函数写法如下:
function cancel()
if (!isModified || (isModified && askConfirmCancel()))
window.location.replace('<s:property value="#urlBack"/>');



这样就是可以通过'<s:property value="#urlBack"/>'传值给js函数 window.location.replace了。
参考技术B <script>
var val = '$value';
var val = '<s:property value="属性名">';
</script>

以上是关于jsp中的js代码怎么调用后台servlet中的值的主要内容,如果未能解决你的问题,请参考以下文章

jsp中js里怎么接收后台传来的值

前端ajax如何接受后台的model

jsp中如何获取servlet的值?

在servlet中调用Dao包中的

jsp里面如何用forEach取一个数组里面的值,从而实现一个下拉列表

我想在jsp页面中用js获取s:property中的value要怎么办