在javascript中更改onclick事件上现有会话变量的值,同时保持在同一页面上
我想在不使用表单并重定向到其他页面的情况下,在页面上单击按钮时更新会话属性的值 我已经看过JSTL和Scriptlet,但是因为它们发生在服务器端,所以在单击按钮之前就已经发生了 我研究过AJAX,但我不完全确定整个过程是如何工作的 关于如何做到这一点有什么建议吗 可以合并到以下内容中的内容:在javascript中更改onclick事件上现有会话变量的值,同时保持在同一页面上,javascript,jquery,ajax,events,jstl,Javascript,Jquery,Ajax,Events,Jstl,我想在不使用表单并重定向到其他页面的情况下,在页面上单击按钮时更新会话属性的值 我已经看过JSTL和Scriptlet,但是因为它们发生在服务器端,所以在单击按钮之前就已经发生了 我研究过AJAX,但我不完全确定整个过程是如何工作的 关于如何做到这一点有什么建议吗 可以合并到以下内容中的内容: 函数myFunction() { //setAttribute(“会话变量名称”、“新值”) } Change变量 PHP-side-code//更改会话的PHP文件。PHP <?php
函数myFunction()
{
//setAttribute(“会话变量名称”、“新值”)
}
Change变量
PHP-side-code//更改会话的PHP文件。PHP
<?php
if( isset($_POST["sessionVarName"]) && isset($_POST["sessionVarValue"]) )
{
$_SESSION[$_POST["sessionVarName"]] = $_POST["sessionVarValue"] ;
}
exit();
?>
Ajax是一条发展之路:
Jquery ajax:
var request = $.ajax({
url: "/changesession.jsp",
type: "POST",
data: ["newSessionValue"=>'newSessionValue'],
});
request.done(function( msg ) {
alert('suceess changed');
});
request.fail(function(msg)) {
alert('failed ajax')
});
在您的changesession.jsp中
HttpSession session = request.getSession();
String newValue= ${param.newSessionValue};
setAttribute("session_variable_name", "newvalue");
希望这有帮助。这不是php的问题。这与jspIt有关,这是一个Ajax问题。我以php为例,但他可以将其更改为任何其他服务器语言,然后您可能应该删除php端代码
,并将其替换为常规服务器端抽象
,非常感谢!但是有一个问题不是在servlet中而是在jsp中:HttpSession session=request.getSession();字符串newValue=${param.newSessionValue};setAttribute(“会话变量名称”、“新值”)代码>它可以是sevlet或jsp格式。。取决于你想在那之后得到什么。如果您将其放在servlet中,那么请确保更改URL以指向该特定servlet。
HttpSession session = request.getSession();
String newValue= ${param.newSessionValue};
setAttribute("session_variable_name", "newvalue");