• spring boot 之session


    1.登录之后跳转公告界面,没有登录的时候不能跳转

    SpringBoot+thymeleaf,在html页面获取session

    1.Controller层代码
    
    
     @RequestMapping("userLogin")
    .     public String userLogin(@RequestParam("userName")String userName,@RequestParam("password")String password,HttpServletRequest request) {
             int n=userService.userLogin(userName, password);
             if(n==1) {
                 HttpSession session=request.getSession();//获取session并将userName存入session对象
                 session.setAttribute("userName", userName);
                 return "user/index";
             }
            
            return "index";
         }
    
    
    2.View层
    
    
    <!DOCTYPE html>
     <html xmlns:th="http://www.thymeleaf.org">
     <head>
     <meta charset="UTF-8">
     <title>Insert title here</title>
     </head>
     <body>
     登陆成功
     <div th:text="${session.userName}"></div> <!--获取session中的userName -->
     </body>
     </html>
     

    以上的方法并没有用到,计划使用的是页面js判断,若account不为空则不使其跳转
    值得注意的是:

    在thymeleaf框架中,在js代码中,去获取到session中的属性值。
    
    一、内联js
    
    <script th:inline="javascript">
    
    //代码
    
    </script>
    
    二、
    
    
    <script th:inline="javascript">
    
    /*<![CDATA[*/
    
    var xx=/*[[${session.xx}]]*/   --获取session中的值
    
    var yy=/*[[${yy}]]*/      --获取model中的值
    
    /*]]>*/
    
    </script>
    所以自己设计的代码是:
    controller层:

    @RequestMapping(value="/gg")
    public String login_gg(HttpServletRequest request, HttpServletResponse response){
        System.out.println("================login_gg===================");
        System.out.println(account.getUsername());
        request.getSession().setAttribute("accountName", account.getUsername());
        return "gg";
    }
    HTML层:

    <script th:inline="javascript">
    
              function toAccount(){
                  var accountName = [[${session.accountName}]];
                  if( accountName != null) {
    
                          layer.alert("已经成功登录", {
                              skin: 'layui-layer-lan'
                              , closeBtn: 0
                              , anim: 4 //动画类型
                          });
          }
              }
    
    </script>
     

    2.实现登录之后不能再进入“我的账户”界面
    3.实现退出功能
    技术点一:在layer中添加一个按钮,并且按钮绑定链接

    layer.alert("已经成功登录用户"+accountName, {
        btn: ['退出登录','确认'],
        skin: 'layui-layer-lan'
        , closeBtn: 0
        , anim: 4 //动画类型
        ,success: function(layero){
            var btn = layero.find('.layui-layer-btn');
            btn.find('.layui-layer-btn0').attr({
                href: '/visit'
                ,target: '_blank'
            });
    技术点二:在layer中按钮绑定一个事件,格式为btn.find('按钮id').click(function(){自定义事件代码});

    btn.find('.layui-layer-btn0').click(function(){  var userAgent = navigator.userAgent;
        if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Chrome") !=-1) {
            window.location.href="about:blank";
            window.close();
        } else {
            window.opener = null;
            window.open("", "_self");
            window.close();
        }});
    此页面绑定的是关闭当前页面的代码

    if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Chrome") !=-1) {
        window.location.href="about:blank";
        window.close();
    } else {
        window.opener = null;
        window.open("", "_self");
        window.close();
    }
  • 相关阅读:
    JS中的弧度与角度
    canvas 酷炫粒子文字的代码解析
    用canvas绘制一个太极图案
    JavaScript中的三角函数
    canvas 使用getImageData()方法获取canvas的每一个像素点的rgba值。以及如何提取该像素点的rgba值。
    Kubernetes(K8S)简介
    git回滚本地所有未提交的更改
    【动手学深度学习pytorch】学习笔记 3.6. softmax回归的从零开始实现 pycharm
    实验十 团队作业7:团队项目用户功能验收测试
    Shopro商城,基于Fastadmin和Uniapp进行开发的多平台(微信公众号、微信小程序、H5网页、AndroidApp、IOSApp)购物商城 1.3.8 义美
  • 原文地址:https://www.cnblogs.com/wf1647790534/p/9802329.html
Copyright © 2020-2023  润新知