zoukankan      html  css  js  c++  java
  • 网站设置实体类属性的一种方式

    观察公司网站,发现一种设置属性方式,记录一下:

    /**
         * 部门网站数据的插入
         * @param web 部门网站 POJO
         * @param session
         * @param response
         * @return
         */
        @RequestMapping(value = "/insert", method = RequestMethod.POST)
        @ResponseBody
        public void insert(Web web,HttpSession session,HttpServletResponse response) {
            try {
                BaseUsers user = (BaseUsers)session.getAttribute(
                         WebConstants.CURRENT_USER);
                web.setOperUser(user);
                int flag = service.insert(web);
                if(flag==1&&web.getId()==1){
                    ServletContext servletContext= session.getServletContext();----------------------------------------------------
                    web.setLabels(web.getLabel().split(","));-------------------------------------------
                    if(web.getNotes().length()>100){
                        web.setCompanyProfile(web.getNotes().substring(0, 100)+"...");
                    }else{
                        web.setCompanyProfile(web.getNotes());
                    }
                    servletContext.setAttribute("company", web);-------------------------------------------
                }
                response.setContentType("text/html;charset=utf-8;");
                response.getWriter().write("{"success":"+(flag==1)+","msg":""+(flag==1?"添加成功!":"添加失败!")+""}");
                response.getWriter().flush();
                response.getWriter().close();
            } catch (Exception e) {
                LOGGER.error("添加出错", e);
            }
            
        }
        
        @RequestMapping(value = "/update", method = RequestMethod.POST)
        public void update(Web web,HttpServletResponse response,HttpSession session) {
            try {
                int flag = service.update(web);
                if(flag==1&&web.getId()==1){
                    ServletContext servletContext= session.getServletContext();
                    web.setLabels(web.getLabel().split(","));
                    if(web.getNotes().length()>100){
                        web.setCompanyProfile(web.getNotes().substring(0, 100)+"...");
                    }else{
                        web.setCompanyProfile(web.getNotes());
                    }
                    servletContext.setAttribute("company", web);
                }
                response.setContentType("text/html;charset=utf-8;");
                response.getWriter().write("{"success":"+(flag==1)+","msg":""+(flag==1?"添加成功!":"添加失败!")+""}");
                response.getWriter().flush();
                response.getWriter().close();
            } catch (Exception e) {
                LOGGER.error("修改出错", e);
            }
            
        }

    Request对象、Session对象和getServletContext()方法返回的servletContext对象中保存。以下是本人对他们之间区别的分析:

    1 首先从作用范围来说

        Request       保存的键值仅在下一个request对象中可以得到。
        Session        它是一个会话范围,相当于一个局部变量,从Session第一次创建知道关闭,数据都一直 保存,每一个客户都有一个Session,所以它可以被客户一直访问,只要Session没有关闭和超时即浏览器关闭。
        servletContext    它代表了servlet环境的上下文,相当于一个全局变量,即只要某个web应用在启动中,这个对象就一直都有效的存在,所以它的范围是最大的,存储的数据可以被所有用户使用,只要服务器不关闭,数据就会一直都存在。

    2 它们的优缺点:

    request:

    好处:用完就仍,不会导致资源占用的无限增长。
    弊处:数据只能被下一个对象获取,所以在写程序时会因为无法共享数据导致每次要用都从数据库中取,多做操作,自然会对性能有一些影响。

    session:

    好处:是一个局部变量,可以保存用户的信息并直接取出,不用每次都去数据库抓,少做操作,极大的方便了程序的编写。
    弊处:每个客户都有一个session,只能自己使用,不同session可能保存大量重复数据; 可能耗费大量服务器内存; 另外session构建在cookie和url重写的基础上,所以用session实现会话跟踪,会用掉一点点服务器带宽和客户端保持联络, 当然session越多,耗费的带宽越多,理论上也会对性能造成影响。 集群的session同步会是个问题。

    servletContext:

    好处:不用每次都去数据库抓,少做操作。 存储的数据所有客户都可以用。 可减少重复在内存中存储数据造成的开销。

  • 相关阅读:
    【BZOJ-4031】小z的房间 Matrix-Tree定理 + 高斯消元解行列式
    无题
    【BZOJ-4261】建设游乐场 最大费用最大流
    【BZOJ-2888】资源运输 LCT + 启发式合并
    【Codeforces666E】Forensic Examination 后缀自动机 + 线段树合并
    【BZOJ-2142】礼物 拓展Lucas定理
    【BZOJ-3672】购票 树分治 + 斜率优化DP
    【BZOJ-3218】a+b Problem 最小割 + 可持久化线段树
    【BZOJ-1913】signaling信号覆盖 极角排序 + 组合
    【BZOJ-4408】神秘数 可持久化线段树
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5166584.html
Copyright © 2011-2022 走看看