gpt4 book ai didi

javascript - 如何在渲染前将文本字段的值设置为jsp中的 session 属性?

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:04 26 4
gpt4 key购买 nike

假设我有代码

<html>
<head>
<script>
function ses()
{
var r=document.getElementById("rollno").value;
session.setAttribute("rollno",r);
}
</script>
</head>
<body>
<form action="process.jsp">
RollNO: <input type="text" name="rollno" id="rollno" onblur=ses()>
Admission no<input type="text" name="anum" id="anum">
<input type="submit" value="Next"/>
</form>
</body>
</html>

我想将 session 属性设置为在文本字段中输入 rollno 但在提交表单之前。存储 session 而不提交表单的代码有任何替代。

最佳答案

你根本做不到你想达到的目标。在 JSP 页面呈现(HTML 生成)之后,您就在客户端。用户 session 根本不存在于 Web 浏览器中(HTTP 是一种无状态 协议(protocol))。

如果您想在 session 中使用某些东西,通常的方法是使用 Servlet。你POST你的表单到这个servlet,你从doPost方法的HttpRequest参数得到HttpSession,然后您将请求参数中的变量放入 session 中。在此之后,您重定向客户端以向目标 JSP 页面发出 GET 请求。

当然,您可以使用 AJAX 在不实际提交表单的情况下完成所有这些操作。例如使用 jQuery $.ajax 函数:

var params = {
rollno: document.getElementById("rollno").value
};
$.ajax({
url: 'myServlet?' + $.param(params),
type: 'post'
});

然后你可以用Servlet来处理它:

@WebServlet(name="myServlet", urlPatterns={"/myServlet"})
public class MyServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) {
HttpSesssion session = req.getSession();
// put the request parameter into the session
session.setAttribute("rollno", req.getParameter("rollno"));
// if this wouldn't be AJAX, we would redirect the user
// resp.sendRedirect("myOtherPage.jsp");
}
}

关于javascript - 如何在渲染前将文本字段的值设置为jsp中的 session 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com