第一次尝试
因为我采用了SpringMVC框架,必不可免地,使用JSP语言来读取cookie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <p> <% Cookie cookie = null; Cookie[] cookies = null;
cookies = request.getCookies(); if (cookies != null) { for (Cookie cooky : cookies) { if (cooky.getName().equals(StudentConst.STUDENT_NAME)) { System.out.println(cooky.getName() + " : " + cooky.getValue()); break; } } } else { System.out.println("cookie为空!!!!!"); } %> </p>
|
咱本以为,上面的代码嵌入在html页面里,那么,System.out.println(cooky.getName() + " : " + cooky.getValue())
应该会在网页上输出用户名,不想运行后,用户名出现于服务器的output窗口。
我这才想起,JSP是一种服务器端的语言,它会由服务器编译并生成相应的网页,System.out.println方法
自然会输出内容到服务器而不是网页。(JSP和JavaScript根本不是同一种东西)
第二次尝试
经过学习,我才知道,JSP可以定义全局变量,可以对全局变量进行修改,有特殊的语法将变量输出到html中。
经过修改,网页代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <p> <%--定义JSP中的全局变量name--%> <%! String name; %>
<%--寻找cookie内容并赋值给全局变量name--%> <% Cookie cookie = null; Cookie[] cookies = null;
cookies = request.getCookies(); if (cookies != null) { for (Cookie cooky : cookies) { if (cooky.getName().equals(StudentConst.STUDENT_NAME)) { System.out.println(cooky.getName() + " : " + cooky.getValue()); name = cooky.getValue(); break; } } } else { System.out.println("cookie为空!!!!!"); } %>
<%--html引用全局变量name的值--%> <%=name%> </p>
|
效果:![此处输入图片的描述][1]