日期:2014-05-18  浏览次数:20729 次

jsp中判断页面是刷新进入还是按钮点击进入
我写了个简单的页面,里面有个form处理方法是jsp页面自己,在处理时需要判断出页面时通过form点击进来的,而不是打开的新页面和刷新.代码如下:

文件名   test.jsp
<html> <head> </head>
<body>
  <form   id= "form1 "   name= "form1 "   method= "post "   action= "test.jsp ">
      <input   type= "submit "   name= "Submit "   onclick= " "   value= "确认 "   />
  </form>
  <%
      out.println(request.getMethod());
      if(request.getMethod().equals( "POST "))
      {
          out.println( "点击进入 ");
      }
     
    %>

</body>
</html>

现在的结果是,如果新打开一个test.jsp,输出即request.getMethod()获得的值为 "GET ".当通过点击 "确定 "按钮进入test.jsp时,request.getMethod()获得的值为 "POST ",但是这时如果刷新页面,request.getMethod()获得的值也为 "POST ".这样就区分不了页面是处理form的,如果才能达到需要的结果?   将 "确定 "的情况区分开来.

------解决方案--------------------
if(request.getMethod().equals( "POST "))
{
out.println( "点击进入 ");//处理完毕后一般执行重定向,就不会再次刷新了
}

------解决方案--------------------
如楼上所说处理完成后重定向返回,response.sendRedirect( "*.jsp ");这个时候再刷新应该不会有问题了
------解决方案--------------------
如楼上所说:点按纽也提交不了了。

叫孟子老大帮你想想办法吧,写个javaScript,不让它刷新什么的。
下班回家。。。
------解决方案--------------------
用session对象 的isnew()方法判断用户是否是刷新页面
------解决方案--------------------
request.getParameter( "Submit ")==null
------解决方案--------------------
对,执行重定向,这个时候再刷新应该不会有问题了
------解决方案--------------------
在重定向到test.jsp啊

------解决方案--------------------
在form的action里写一个参数,或者在form里面写一个隐藏input(优先推荐),每次页面处理以检查这个参数来判断是否处理form即可。
------解决方案--------------------
<input type= "submit " onclick= "this.form.action=this.form.acton+ '?submit=1 ' ">
加一个参数嘛,在下一组件里如果取得这个参数就说明是点击进入的嘛,这里要注意哦
如果你的from里的action里面已经有了“?”那么上面就要改成
<input type= "submit " onclick= "this.form.action=this.form.acton+ '&submit=1 ' ">

------解决方案--------------------
由于是同一页面,不太适合RedirectAferPost
所以,采用令牌比较好,简单实现

A.jsp

session.setAttribute( "token ",new Integer(1));

B.jsp
<html> <head> </head>
<body>
<form id= "form1 " name= "form1 " method= "post " action= "test.jsp ">
<input type= "hidden " name= "token " value= " <%=session.getAttribute( "token ")%> "/>
<input type= "submit " name= "Submit " onclick= " " value= "确认 " />
</form>
<%
out.println(request.getMethod());
if(request.getMethod().equals( "POST "))
{
if(session.getAttribute( "token ").equals(request.getParameter( "token "))){