Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置HTML5会话存储<;关键、价值>;使用JSP_Javascript_Html_Jsp - Fatal编程技术网

Javascript 设置HTML5会话存储<;关键、价值>;使用JSP

Javascript 设置HTML5会话存储<;关键、价值>;使用JSP,javascript,html,jsp,Javascript,Html,Jsp,我有一个名为authenticate.jsp的文件: <%@page import=" java.sql.*, java.util.*,java.io.*" %> <% Connection con = null; Statement stmt = null; ResultSet fireman = null; try {

我有一个名为authenticate.jsp的文件:

<%@page import=" java.sql.*, java.util.*,java.io.*" %>

        <%
                Connection con = null;
                Statement stmt = null;
                ResultSet fireman = null;
                try {
                    Class.forName("com.mysql.jdbc.Driver").newInstance();
                    String connectionString = "jdbc:mysql://localhost:3306/firedept?"
                    + "user=xxx&password=xxx"; 
                    con = DriverManager.getConnection(connectionString);
                    stmt = con.createStatement();
                    fireman = stmt.executeQuery("SELECT username,password,first,last,user_type FROM fireman");

                    String user = request.getParameter("user");
                    String pass = request.getParameter("pass");
                    while (fireman.next()) 
                    {
                        if (user.equals(fireman.getString("username")) && pass.equals(fireman.getString("password")))
                        { 
                            String first = fireman.getString("first");
                            String last = fireman.getString("last");
                            String user_type = fireman.getString("user_type");
                            session.setAttribute("fname", fireman.getString("first"));
                          %>

                            <script type="text/javascript"> 

                            sessionStorage.setItem("first", "<%=first%>" ) 
                            sessionStorage.setItem("last", "<%=last%>" )
                            sessionStorage.setItem("user_type", "<%=user_type%>" )

                            </script>

                          <%

                          response.sendRedirect("home.jsp"); // remember to change to jsp
                          break;
                        }
                    }

                    response.sendRedirect("login.jsp"); // remember to change to jsp
                }
                catch (Exception ex) {
                    out.write(ex.getMessage());
                }
                finally {
                    stmt.close();
                    con.close();                    
                }
                %>

sessionStorage.setItem(“第一个”,“第一个”)
sessionStorage.setItem(“最后一个”,“”)
sessionStorage.setItem(“用户类型”,“”)
另一个文件是header.jspf文件,它通过

您已登录:
document.getElementById(“login_tag”).innerHTML=“您的登录身份是:”+sessionStorage.getItem(“first”);
当我试图从头中的sessionStorage获取“first”值时,它只返回null,这里有什么问题?这是同一个项目,文件位于Apache服务器上运行的同一文件夹中。
谢谢:)。

我没有从jsp页面设置存储,而是将用户表单发送到jsp页面并尝试在那里设置存储,我只是发送了一个JSON,并使用jsp页面的响应在登录html页面中设置存储,效果很好。

您能显示使用生成的最终html吗?您使用的是
script
标记,因此希望页面中执行的所有内容都按正确的顺序执行。如果您想确保是这样,那么您可能希望在浏览器加载完内容后运行所有javascript,如下所示:好的,我已使用Chromes debugger进行了检查,当我尝试在身份验证JSP文件中设置值时,sessionStorage为空,但是,当在不同的JSP文件中设置sessionStorage时,它可以正常工作。我将注意到,用户看不到Authenticate.jsp文件,它只是处理表单信息并将用户重定向到另一个页面。在jsp页面中使用业务逻辑,尤其是数据库连接详细信息是一种非常糟糕的做法。
<div class="logged" id="login_tag">You are logged in : </div>
<script>
document.getElementById("login_tag").innerHTML = "You are logged in as : "+sessionStorage.getItem("first");
</script>