HTML頁面獲取session中的用戶名


1.在HTML的index.html頁面中,添加ajax方法,讓其進入頁面就向后台發送請求,獲取session中name

<script type="text/javascript" src="/jquery-3.3.1.min.js"></script>
  <script type="text/javascript">
      //當頁面一加載時就向后台發送post請求
      $(function(){
          $.post("../user/getusername",function(obj){
              $("#roleName").html(obj+"歡迎你");
          },"text")
      });

    </script>
<body>
<h1></h1>
<h1>hello,springBoot!</h1>
<span id="roleName"></span><br>
</body>

</html>

2在后台使用springboot框架或ssm,使用@ResponseBody標簽使其返回值不是轉發或者重定向,而是向頁面發送字符串,這個字符串可以是json格式或者是普通的text格式,只要和ajax的獲取格式相同即可

也可以使用objectMapper.writeValue向前台轉發json數據,這樣不需要返回值

 @RequestMapping("/getusername")
     @ResponseBody
        public String getUsername(HttpServletRequest request, HttpServletResponse response)throws Exception{
            //先從session中獲取到之前存在session中的用戶信息,然后通過ObjectMapper輸出返回一個json數據給html頁面,由頁面去解析這個json數據
            String name =(String)request.getSession().getAttribute("user");
            //1.第一種方法,objectMapper.writeValue自動將數據格式轉換為Json然后自動將Jason轉發到瀏覽器,使用ajax進行局部刷新獲取name,格式為json
//            if(name!=null){
//                ObjectMapper objectMapper=new ObjectMapper();
//                objectMapper.writeValue(response.getOutputStream(),name);
//            }
            
            //2.第二種方法,直接使用@ResponseBody+字符串,將字符串直接轉發到瀏覽器,使用ajax進行局部刷新獲取name,格式為text
            return name;
        }

3.當然,上述前提都是需要在登錄時綁定session

@Autowired
    UserService sercice;
    
    @RequestMapping("/tologin")
    @ResponseBody
    public ResponseResult tologin(String name,String password,HttpSession session) {
        ResponseResult rs = new ResponseResult();
        sercice.login(name, password);
        rs.setState(1);
        session.setAttribute("user", name);
        return rs;
        
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM