【问题标题】:how to check and submit a form when user is inside session?当用户在会话中时如何检查和提交表单?
【发布时间】:2014-05-04 13:47:17
【问题描述】:

我有一个要提交的表单。但我要检查的是用户是否在会话内?如果用户在会话内,则必须提交值。如果不是,它必须显示消息说('请使用 facebook 登录')。那么我如何检查用户是否在会话中???

脚本代码:

<script type="text/javascript">
function submitform(){


    alert("In Submit form");
    var frm=document.getElementById("myForm");
     frm.action="Electionservlet?formidentity=editYPName";
     alert("before submit");
     frm.submit(); 
}

</script>

html代码:

<table style="width: 100%; border: 0px; border-spacing: 0px; padding: 0px; text-align: center;">
<tr>

                                <td  align="center">
                                     <a style="color: #000;" href="javascript:submitform();">Submit</a>
                                </td>
                            </tr>
</table>

【问题讨论】:

  • 所以检查会话是否为空,如果不为空则提交..

标签: java jquery jsp session servlets


【解决方案1】:

试试这个

在登录页面的操作中设置此项

session.setAttribute("username","username"); 

接下来在包含表单的jsp页面中添加这个脚本

<script type="text/javascript">
function submitform(){

    <%if(session.getAttribute("username")!=null){%>
    alert("In Submit form");
    var frm=document.getElementById("myForm");
     frm.action="Electionservlet?formidentity=editYPName";
     alert("before submit");
     frm.submit(); 
 <%}else{%>
    alert("Please log in");
 %<}%>
}

</script>

【讨论】:

  • 如果页面渲染后会话超时,这将不起作用。
【解决方案2】:

通过以下方式在会话中设置属性变量:

session.setAttribute("var_name","value"); 

并通过以下方式检查 JSP 页面中的变量:

 <script>
    <%if(session.getAttribute("var_name")!=null){%>
     //write your form validation code 
    alert("In Submit form");
    var frm=document.getElementById("myForm");
    frm.action="Electionservlet?formidentity=editYPName";
    alert("before submit");
    frm.submit();
    <%}
    else
    {%>
     //redirect the user to Error page or
    alert("Please login again");
    <%}%> 
    </script>

【讨论】:

  • 我想在点击提交按钮时显示消息('请登录'),但在提交之前不显示??
【解决方案3】:

当你通过facebook执行登录时,你可以使用FB.getSession()检查用户是否登录。

function submitform(){

if(FB.getSession() != null) {

//logged user id: FB.getSession().uid
//Perform form submission
var frm=document.getElementById("myForm");
frm.submit();

} else {
//user is not logged in
  alert("Please log in");
}

【讨论】:

  • 我应该在哪里写这段代码('session.setAttribute("username","username");')??
  • 我没有登录页面,我正在通过 facebook 登录??
  • 由于您使用的是facebook登录,您的用户会话也与facebook有关,对吧?我的意思是当用户从 Facebook 退出时,他会从你的应用程序中退出吗?如果是这种情况,您不需要放置任何值服务器会话。 Facebook API 提供了一些函数来检查用户是否登录。检查此链接stackoverflow.com/questions/3348543/…
  • 是的,我的登录是通过 facebook,但我在这里使用自己的表单,当我单击提交按钮时,它必须检查会话是否可用??如果可用,则必须调用 servlet。如果不显示登录提醒??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多