直接帖代码:
//-------------------------------test.jsp------------------------------
<%@ page language="java" contentType="text/html; charset=gb2312"
import="java.util.*"%>
<html>
<head>
    <title>change_test</title>
    </head>
    <%
Random random = new Random();
                                                String rand=new String():
    %>
    <body>
    <center>
    <input type="button" value="change" onClick="alert(<%
                                rand="";
rand = String.valueOf(random.nextInt(10));
out.print(rand);
%>)" >
    </center>
    </body>
    </html>我原本的意思是想单击一个按钮产生一个随机数,然后输出!
但是,为什么 每次刷新页面后 单击第一次按钮的时候能够产生随机数。
而后,再单击按钮的时候 却不能产生新的随机数。。
是不是因为JavaScript得运行机制有关?求各位大侠指点指点,,也可以直接帖上可以运行的代码。。
ps:其中变量rand一定要在<%%>中,也就是要输出jsp中定义的变量!!!先谢谢了

解决方案 »

  1.   

    <a href="http://user.qzone.qq.com/281124419/">我来回复一个!</a>
      

  2.   


    你这种是利用服务器端的java代码生成随即数的,在jsp页面显示以后随即数已经生成。
    所以你点击的时候就会是同一个数字,你可以刷新下再点击看看。数字应该不同了。
    如果要无刷新的可以用ajax,当然js也可以生成随机数的。用Math下面的round方法<%@ page language="java" contentType="text/html; charset=gb2312"
    import="java.util.*"%>
    <html>
    <head>
      <title>change_test</title>
      </head>
      <%
    Random random = new Random();
      String rand=new String():
      %>
      <body>
      <center>
      <input type="button" value="change" onClick="window.reload();alert(<%
      rand="";
    rand = String.valueOf(random.nextInt(10));
    out.print(rand);
    %>)" >
      </center>
      </body>
      </html>
    window.reload();刷新下应该会重新生成一个随机数的
      

  3.   

    如#3楼所述 
    但楼主可能没有弄清楚客户端和服务器端的概念 一般情况下客户端无法直接调用服务器端程序然后显示 两者的程序运行的环境(姑且说成环境)不同,当然有特殊的情况是两者可以互通,例如用js控制iframe 从而发送请求至服务器端让其返回需要的数据,或者使用AJAX技术,这些都是客户端主动请求的情况,当然也有服务器端主动发信息至客户端的情况 这个是服务器推送技术 就不做详细介绍了
    所以依你的写法  用js的onclick调用服务器的获得随机数程序 是行不通的 解决方法 一般会想到AJAX 当然诡异一点可以结合iframe来调用 呵呵
      

  4.   

    relax19830426:
    恩。确实是有关服务器,客户端的问题。但是,我要在客户端生成随机数我看了一篇关于JavaScript的文章,是说什么 “事件冒泡”的问题吧。因为我对JavaScript学的不多,所以看的一头雾水...
      

  5.   

    还有,我知道刷新页面 可以实现随机数
    我的意思就是不要刷新页面,,单击按钮就可以刷新,,,一开始 我觉得JavaScript应该很好实现,,却不知道 卡住了,郁闷
      

  6.   

    建议楼主先去GOOGLE查看下客户端 服务器端概念 尽量看仔细些 结合目前自己所掌握的知识 多揣摩下
    当然理解还是有一个过程,想当初自己也并不是很了解JS和ASP的机制,而且编写的页面中编码都是混在一起,有时就会突发奇想让JS来直接控制ASP或者反过来 其实现在看来想法挺幼稚 呵呵 多写代码 多积累 个人JS感觉其实比服务端的程序更有意思
      

  7.   

    要么刷新页面,要么ajax,或者用js生成随机数