zoukankan      html  css  js  c++  java
  • 三阶段总结

    1.注意lable标签的for属性,绑定错误可能会导致事件冒泡导致一个事件被执行多次。

    2.访问一个页面,附带get请求值,如果这个页面经过的filter,一定要在filter内request.setAttribue,否则页面会获取不到请求值

    3.java.io.NotSerializableException: bean.Category 该错误是由于Category类没事实现序列化接口导致报错!

           众所周知,session是服务器端的一种会话技术,只要session没有关闭,一个会话就会保持。这里先引出一个问题:如果我在访问某个页面后,服务器重启了一下,但是网页还没关,那么原来的session还在么?答案是很明显的,你都把服务器关掉了,session肯定不是原来的session了,原来的像登录信息等一些跟session相关的信息肯定就没了。但是如果我们想要服务器重启后,还是原来的session,那跟如何做呢?

            这就涉及到了一个叫序列化(Serializable)的技术。当对象存储到硬盘的时候,就需要实现序列化接口,序列化的功能就是添加了一个唯一的ID(类主键),这样在反序列化(从硬盘加载到内存)的时候就可以成功找到相应的对象。另外,还要弄清楚一件事情:一般大家都觉得容器关闭后,session就销毁了,其实不是这样的,容器的关闭并不会导致session的销毁。过程是这样子的,一旦容器关闭后,session就会被持久化到硬盘,并没有真正销毁,为了说明这个问题,来做个试验:打开tomcat的工作目录下正在运行的工程目录:我的是E:webapache-tomcat-8.0.26workCatalinalocalhostE_shop,里面只有一个org的文件夹,其他什么也没有,现在我们重启tomcat服务器,注意观察这里面的变化,当服务器停掉后,这个该目录下多了个SESSION.ser文件,服务器重启成功后,该文件又消失了。

           所以,如果项目中的POJO实现了Serializable接口,当反序列化的时候就能找到刚刚序列化时候的POJO,原来session中的内容就能成功反序列化,session还是原来的session,这样原来页面的东西还在,刷新后还是继续上次的操作。如果POJO没有被实例化,那么在session发序列化的时候当然就没有了这些POJO了。

     1. 容器关闭后session并没有消失,而是被持久化到了硬盘里;

     2. 如果项目中的POJO实现了Serializable接口,那么会跟着session一起被持久化到硬盘,在反序列化的时候会成功还原;

     3. 要想服务器重启后,还是原来的session,还继续紧接着原来的页面操作的话,就需要实例化项目中的POJO。

    4.A child container failed during start tomcat XML中的servlet配置错误导致tomcat启动报错。

    5.理清Servlet与JSP之间的数据传递流程,建好数据库、表,然后在写代码,想到那写到哪,越写越蒙。

    6.善用Cookie,可以实现诸如自动登录、浏览记录的功能。

    7.做好代码注释,尤其是比较复杂的业务功能,使得回头看时更容易理解。

    8.注意,单独的JS文件内如果有EL表达式是获取不到值的,因为EL运行在服务端,JS运行在客户端,如果需要使用EL表达式,可以在JSP内设置一个隐藏域标签来获取值,JS文件内获取标签的value值即可。

    9.图片上传问题:在eclipse中上传图片时,要一份上传到项目所在文件夹,一份上传到服务器文件夹,如果只上传到服务器,会导致当服务器再次启动时,上传的到服务器的图片消失,这是因为项目文件夹内没有该图片,tomcat复制项目文件时获取不到该图片。

    10.长路、短路与、或运算报空指针异常问题

    这样没问题,不会报错:

    //长路短路 空指针报错问题
    String a = "123";
    String b = null;
    if(a!=null&&b!=null&&b.equals("456"))
        System.out.println(true);

    但是如果equals前的与运算是个长路与:

    String a = "123";
    String b = null;
    if(a!=null&&b!=null&b.equals("456"))
        System.out.println(true);

    此时空指针异常,因为即使b!=null是false,后面的equals方法仍然会被运算!

  • 相关阅读:
    7月25 SVN 提交报错 | mybatis like | 数据库字段设计 | 打包打小包
    7月24 springboot 打包打小包 | mybatis 逆向工程 | 接口返回数据 | 启动打包注意事项 | springboot redis 引入
    7月20号 添加字段报错 | 密码加密与传输
    7月19 登录失败 错误次数 | 字段类型被修改bug | 日志
    7月14 Enity对象的抽取
    7月13 mybatis调用存储过程
    7月12 导入项目到svn | logback配置日志输出
    7月11 配置数据库自己挖坑 | 代码覆盖率测试 | MockMvc 测试用例
    书架
    试题库问题
  • 原文地址:https://www.cnblogs.com/whwjava/p/9082723.html
Copyright © 2011-2022 走看看