在利用springboot進行web開發時,遇到這樣一個問題:html如何獲取session中的值,實現用戶登錄系統后首頁展示xx歡迎您。
也就是需要實現html通過ajax請求獲取session中的值。
1.登錄頁面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<meta charset="utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>測試</title>
</head>
<body>
<form action="../checkuser" method="post">
<table>
<tr>
<td> 姓名:</td>
<td width="25">
<input type="text" name="username" value="">
</td>
</tr>
<tr>
<td> 密碼:</td>
<td width="25">
<input type="text" name="password" value="">
</td>
</tr>
</table>
<button type="submit" >提交</button>
</form>
</body>
</html>
2.處理用戶登錄請求的controller
@Controller
public class TestController {
//控制器調用service層服務層
@Autowired
private CheckUserService checkUserService;
//用戶登錄
@RequestMapping(value = "/checkuser")
public String checkUser(HttpServletRequest request, HttpServletResponse response, User user) throws Exception{
String username=user.getUsername();
String password=user.getPassword();
int user1=checkUserService.select(username,password);
if(user1==1){
System.out.println("登錄成功!");
//將用戶信息存放到session中
request.getSession().setAttribute("user",user);
return "redirect:main";
}else{
System.out.println("登錄失敗!");
return "redirect:toindex";
}
}
@RequestMapping(value = "/main")
public String toIndex(){
return "user/addUser";
}
@RequestMapping(value = "/toindex")
public String toError(){
return "error/error";
}
}
3.登錄成功后進入首頁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="../js/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
//當頁面一加載時就向后台發送post請求
$(function(){
$.post("../username/getusername",function(obj){
$("#roleName").html(obj.username+"歡迎你");
},"json")
});
</script>
</head>
<body>
需要使用ajax請求,頁面加載完成就向后台發送請求<br>
<span id="roleName">xxx</span><br>
</body>
</html>
4.處理頁面加載時controller
@Controller
@RequestMapping("username")
public class IndexController {
@RequestMapping(value = "/getusername")
public void getUsername(HttpServletRequest request, HttpServletResponse response)throws Exception{
//先從session中獲取到之前存在session中的用戶信息,然后通過ObjectMapper輸出返回一個json數據給html頁面,由頁面去解析這個json數據
User user=(User)request.getSession().getAttribute("user");
if(user!=null){
ObjectMapper objectMapper=new ObjectMapper();
objectMapper.writeValue(response.getOutputStream(),user);
}
}
}
以上就是html通過ajax請求獲得session中的值的全過程。