【问题标题】:Can we do session management without form submission in JSP?我们可以在 JSP 中不提交表单就进行会话管理吗?
【发布时间】:2019-11-22 07:13:04
【问题描述】:

我正在创建一个用于学习目的的小型 Web 应用程序。这里我使用 Java、Jquery、Ajax。我想在我的项目中添加会话。我没有在 JSP 中使用表单(请求不是通过表单提交)。我在这里更新了我的代码。谁能给我一个使用 Jquery Ajax 请求向我的应用程序添加会话的解决方案。

$("#submit").click(function(){
            var username=document.getElementById("uname").value;
            var password=document.getElementById("psw").value;
            if (username=="" || username == null || password == ""|| password == null){
                alert("Please input values");
                document.getElementById("username").focus();
            } else {
                var method;
                $.ajax({
                    type : 'post',
                    url : 'userservlet',
                    data : {
                        username : username,
                        password : password,
                        method : "login",
                    },
                    success: function (responseText) {
                        if (responseText.success){

                        }
                        else {
                            alert(responseText.error);

                        }
                    }
                });
            }   
        }); 

登录

我使用表单提交时的后端

public String loginuser(HttpServletRequest request, HttpServletResponse response, String username, String password) throws IOException {
    HttpSession httpSession = request.getSession();
    UserDAOImpl userdaoimpl = new UserDAOImpl();
    String sts=null;

    try {
         sts = userdaoimpl.loginUser(username,password);
         httpSession.setAttribute("username", username);
         httpSession.setAttribute("password", password);

         //httpSession.setMaxInactiveInterval(60);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return sts;
}

【问题讨论】:

    标签: jquery ajax jsp servlets


    【解决方案1】:

    会话存储在服务器上,因此使用 Jquery 或 Ajax 等客户端技术无法做到这一点。为此,您将需要服务器端编程。(在您的情况下为 Java)。请先尝试理解,您是在间接提交表单,这样做的选项是您选择了 Ajax(异步),而不是传统的 form-action。会话将在您的 Java 代码中处理。 (UserServlet),通过查看您的代码,我可以理解您正在将用户名和密码传递给您的 servlet,在您的 servlet 中设置会话并从您的 servlet 发送响应,这将在 ajax 调用成功/失败后处理。

    【讨论】:

    • 非常感谢您帮助我理解这个流程。我更新了与登录相关的 Java 代码。但是我在我的应用程序中删除了表单提交的 Ajax 请求。我的理解是,只有使用表单提交,我们才能添加会话(httpsession)。这种理解是否不正确@5eeker
    • 不,它直接不处理,我们需要这样做。
    • 能否请您分享一个链接或与此相关的任何文件?
    • 使用 Servelt 登录示例:journaldev.com/1907/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2011-03-19
    • 2012-04-16
    • 2018-02-08
    相关资源
    最近更新 更多