b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

struts面试题及答案_struts2面试题_spring面试题(2)

电脑杂谈  发布时间:2017-01-28 10:26:13  来源:网络整理

2、二是,forward跳转引起的重复提交。在页面跳转的时候,有两种类型:请求转发和重定向,所谓请求转发是在服务器端进行跳转,对用户是透明的,此时浏览器中的地址不会发生改变,重定向是在客户端发生跳转,跳转时候浏览器中的地址栏会发生改变,如果我们在注册时,使用了请求转发,那么当我们刷新页面时,就会引起表单的重复提交

二、解决方案

方案一、使用struts2中的token或者tokenSession

对token的简单理解:

1)当用户首次访问包含表单的页面时,服务器会在这次会话中创建一个session对象,并产生一个令牌值,然后将这个令牌值作为隐藏输入域的值,随表单一起发送到服务器端,同时将令牌值保存到Session中。

2) 当用户提交页面时,服务器首先判断请求参数中的令牌值和Session中保存的令牌值是否相等,若相等,则清楚Session中的令牌值,然后执行数据处 理操作。如果不相等,则提示用户已经提交过了表单,同时产生一个新的令牌值,保存到Session中。当用户重新访问提交数据页面时,将新产生的令牌值作 为隐藏输入域的值。

token: 在活动Action中检查合法令牌(token), 防止表单的重复提交;

token-session: 同上, 但是在接到非法令牌时将提交的数据保存在session中;

主要步骤如下:

第一步:在表单中加入(当然啦!要首先导入struts2的标签库 <%@taglib uri=”/struts-tags” prefix=”s” %>)

  
      
  

第二步:在struts.xml配置文件中相应的action上配置token或者tokenSession。此只能用在有form的提交请求上。


        
        
        /WEB-INF/page/message.jsp
        /WEB-INF/page/result.jsp
  

以上配置加入了“token”和“invalid.token”结果,因为“token”在会话的token与请求的token不一致时,将会直接返回“invalid.token”结果。

方案二:基于第二种重复提交表单的原因,服务器内部使用重定向

在Struts2中的struts.xml中,result标签的type默认值是 dispatcher,(请求转发),要实现以上的功能,肯定不能使用默认值,我们需要将其值设为redirectAction(重定向到某一 Action),也就是说重一个Action跳转到另外一个Action,此时浏览器中的地址是第二个Action,结合到上面的需求,我们可以再第一个 Action中将记录添加到中,然后在第二个Action中将数据读取出来。以后每次刷新,那么只会执行第二个Action。

到struts-default.xml中找到与redirectionAction对应的一个类,ServletActionRedirectResult

从Api文档中发现找出里面有一个字段叫做actionName,指定我们需要跳转的Action,配置方法如下:vcD4NCjxwcmUgY2xhc3M9"brush:java;">show_show

1、JSP页面:

JSP页面的上传文件的组件:,如果需要一次上传多个文件, 就必须使用多个 file 标签, 但它们的名字必须是相同的,即:name=“xxx”的值必须一样;

2. 必须把表单的enctype属性设置为:multipart/form-data;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29166-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 周孝闵帝宇文觉
      周孝闵帝宇文觉

      易烊千玺献声小王子

    热点图片
    拼命载入中...