版权声明:本站所提供的文章资讯、软件资源、素材源码等内容均为本作者提供、网友推荐、互联网整理而来(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考,如有侵犯您的版权,请联系我,本作者将在三个工作日内改正。 https://blog.csdn.net/weixin_42323802/article/details/83065349
这是一个令人悲伤的故事:
ajax 的 dataType:"json", 写成了data :“json”, 尼玛 在前端页面打断点截图如下;
改正过后可以获取json中的数据了;没有修改bug之前,res={a: "lisi" } 浏览器在解析 json时候已字符串格式解析了,造成影响判断的假象;数据显示 undefined ;
session会话中json 数据传递什么都没问题,奇了怪了,最后看出了dataType 出错,哎;
成功状态如下 ,动态显示了: 欢迎回来,用户名:
逻辑是这样的:
登录提交表单,登陆成功就在session中储存用户信息【session关闭浏览器失效】;ajax动态获取session中储存的phoneNumber,password ;并通过数据库获取用户名在显示用户其登录的状态;
显示状态的servlet 如下;
/**
* 显示用户的状态
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void showUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//login 时候 request.getSession().setAttribute("list", list); 保存在session中 应该在正确信息进行保存
HashMap<String, String> map = new HashMap<>();
List<User> list = (List<User>) request.getSession().getAttribute("list");
//对list 进行判断
String json = "";
if (list.size() == 0) { //未登录状态
map.put("a", "no"); //todo 不能赋值给json
} else {
map.put("a", list.get(0).getUsername());
}
json = JSON.toJSONString(map);
response.getWriter().write(json);
}
header.html 头部拼接页面;
<!-- 头部 start -->
<header id="header">
<div class="top_banner">
<img src="images/top_banner.jpg" alt="">
</div>
<div class="shortcut">
<!-- 未登录状态 -->
<div class="login_out">
<a href="login.html">登录</a>
<a href="register.html">注册</a>
</div>
<!-- 登录状态 -->
<div class="login">
<span id="loginUsernameSpan" ></span> <!-- 给一个id 然后修改span -->
<a href="myfavorite.html" class="collection">我的收藏</a>
<a href="javascript:;">退出</a>
</div>
</div>
<div class="header_wrap">
<div class="topbar">
<div class="logo">
<a href="/"><img src="images/logo.jpg" alt=""></a>
</div>
<div class="search">
<input name="" type="text" placeholder="请输入路线名称" class="search_input" autocomplete="off">
<a href="javascript:;" class="search-button">搜索</a>
</div>
<div class="hottel">
<div class="hot_pic">
<img src="images/hot_tel.jpg" alt="">
</div>
<div class="hot_tel">
<p class="hot_time">客服热线(9:00-6:00)</p>
<p class="hot_num">400-618-9090</p>
</div>
</div>
</div>
</div>
<script src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
$(function () {
$.ajax({
url:"userServlet?methodName=showUser",
dataType:"json",
success:function (res){
if (res.a == "no") {
$(".login").hide();
}else {
$(".login_out").hide();
$("#loginUsernameSpan").html("欢迎回来,"+res.a);
}
}
});
});
</script>
</header>
<!-- 头部 end -->