我正在尝试将一个值从 servlet 文件传递​​到 javascript 文件,但我总是得到空值,我在哪里做错了?

I am trying to pass a value from servlet file to javascript file and i am keep getting null where am i doing wrong?

我正在尝试将一个值从 servlet 传递到 js 并不断得到 null 我哪里做错了?

login.java-servlet

if(bt.equals("frname")){
    String user =request.getParameter("frname");
    String requester=(String) session.getAttribute("uname");
    session.setAttribute("passingv", requester);
    try {
        if (UserDao.validateUser(user)==true) { 
            UserDao.insertvalues(requester,user);
            request.getRequestDispatcher("main.jsp").forward(request, response);
        } else {
            out.println(" <script type='text/javascript'> ");
            out.println("alert('User doesnot exists');");
            out.println("</script>");
            response.sendRedirect("main.jsp");    
        }
    } catch (ClassNotFoundException | SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

main.jsp

<%=(String)session.getAttribute("passingv")%>

main.js

var test = '<%=(String)session.getAttribute("passingv")%>';
console.log(test);

您正在会话中设置它,但试图从请求中检索它。

此外,如果它是外部 JS 文件(例如,不在 JSP 中),则尝试在其中使用 scriptlet 是没有意义的。您 可以 将 JS 文件作为 JSP 文件处理,但这可能会导致其他问题。您可能需要考虑在 JSP 中公开值并稍后从 JS 中检索它,但是有多种方法可以处理此要求。