【java.util.UUID.randomUUID()】值的疑惑

一叶孤星坠空城 2014-04-17 10:16:11
<%@ page language="java" import="java.sql.*,java.util.*" pageEncoding="utf-8" %>
<html>
<body>

<%
String id=UUID.randomUUID().toString();
session.setAttribute("key",id);
%>
<form name="form1" method="post">
<input type="text" name="key" size="50%" value="<%=session.getAttribute("key")%>"><BR>
<input type="submit" value="提交">
</form>

<%
request.setCharacterEncoding("utf-8");
String key=request.getParameter("key");
String ID=(String)session.getAttribute("key");
out.println("表单的key:"+key);
out.println("session的key:"+ID);
%>
</body>
</html>



打开url 如图首先



点提交


我的理解:浏览器打开页面,首先运行java部分,生成一个key1,然后执行java中的输出语句输出key1,之后再表单里显示key1.由于没点提交,所以request.getParameter("key");的值是null
点击提交,key1被提交,java部分又一次执行(为什么?),生成一个key2,输出key2,同时在表单上显示key2,此时输出表单的是key是key1的值,key2还没有提交

那用这种方法防止刷新重复提交表单是如何实现的?讲下运行过程
运行网址是http://192.168.67.186/S2012150143/aa.jsp
...全文
521 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vkqiang 2014-04-19
  • 打赏
  • 举报
回复
提交时后台判断session中是否有issubmit属性, 如果没有,则存入issubmit属性到session中,然后保存,保存成功后,清除issubmit属性; 如果有,则不允许提交。
wyx100 2014-04-18
  • 打赏
  • 举报
回复
[quote=引用 1 楼 iceqijunfei 的回复:] 打开url的时候指向了一个action,这个action下的方法随机出来一个key,然后return了这个key,前台接收,然后显示在下面。提交的点击事件也接收到了这个key,然后将输入的值与key作比较,若相同,return true,若不同,return false,这个函数结束时再调用一次action中的函数,就能实现楼主所描述的结果
乔不思 2014-04-18
  • 打赏
  • 举报
回复
模拟struts的token,前几天刚写了一个, click this
iceqijunfei 2014-04-18
  • 打赏
  • 举报
回复
打开url的时候指向了一个action,这个action下的方法随机出来一个key,然后return了这个key,前台接收,然后显示在下面。提交的点击事件也接收到了这个key,然后将输入的值与key作比较,若相同,return true,若不同,return false,这个函数结束时再调用一次action中的函数,就能实现楼主所描述的结果了。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧