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