李腾飞领航CMS学习笔记


1. Fliter的配置在web.xml里面可以使用正则控制哪些页面被过滤

2. 控制iframe的页面跳转到login.jsp问题  window.parent != window  window.parnet.location = window.location;


3. 很迷惑的写法 用于验证码 src = images/xx.jpg  --->>  servlet的路径

4. 循环html可以 先包头 后包尾 中间用c 标签

5. request.getParameterValues  -->>>  id=1&id=2&id=3&id=4

6. debug 中可以使用 watch 查看整条代码的运行情况。

7. 提交的页面可以使用  ${param.xxx} 来获取提交的参数


8. <jsp:include page="xxx/pager.jsp">  相当于pager.jsp?url=xxx
         <jsp:param  name="url"  value="xxxServlet"/>
   </jsp:include>

9. filter 在web.xml里面配置是有先后次序的


10 .工厂模式:
    addservlet -- > addDao
    updateservlet ---> update Dao
    deleteservlet ---> delete Dao
在servlet 和 dao 之间增加一个工厂  由工厂来创建dao对象
public xx getxx(){ return new xxDAo; }  只需修改返回值 ---- 简单工厂
这样违反开闭原则 ocp    将其写成接口 即可解决这个问题

11. 多个工厂类 可以使用properties 配置 然后一次性读取反射出来放入map中 然后从map中取出某个工厂类 在web.xml中配置启动初始化

12. 重写 init 方法 无法在里面 得到  servletcontext 需要使用:config.getServletContext()

13. 依赖注入 需要一个dao 开一个门 set方法  dao像送水工送水一样被送过来。 在servlet中 service的方法中写入相关的代码
    Method[] methods = this.getClass().getMethods()
    if(methods.startwith("start")){
        xx.invoke(this, 工厂拿到类的路径);
    }
     --------- 形成之后的spring思想。

14.  a 继承 b  b中的 this 是多态的 指的是 a


15.  mysql的数据库脚本
     drop xx if exists xx;
     create database xx;
     use  xx;
     source xx.sql;
     批处理文件:
     @echo off
     mysql -uroot -p123 <all.sql
     c:\init  (init.bat)
    
     //unique key xx (xxid,xxid) 联合起来不能重复
     执行批处理需要 把mysql的bin 目录放到环境变量里面
16.  mysql sql导入数据的时候 标题设置 /*!40101 SET NAMES utf8*/; 可以防止乱码

17.  select 的 multiple 属性可以多选

18.   如果插入有关联的数据 如何得到自增长的id
      pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
      ResultSet newId = pstmt.getGeneratedKeys(); - 可以返回刚才插入的刚才id
      if(newId.next()){
         a.setId(newId.getInt(1))
      }

      mybatis 里面使用 <insert  keyProperty="id"  useGenerateKeys = "true">
      会将值放入 id 属性中
      存入中间表 使用类型 map map中存放2个表的id


19.  使用时间戳才可以 将精确时间存入 数据库
20.  null 前面也可以强制转换  如:(A)null
21.  threadlocal 为每一个线程提供一个地方存放线程的全局变量
     public static ThreadLocal xx = new ThreadLocal();
     xx.set();

22.  mybatis 返回结果的映射规则 resultMap 可以自定义返回的数据映射
     把一个返回的结果名称 对应设置好的resultMap

23.  beanutils.copyProperty()  可以自动把参数 字符类型转换为相应的int,boolean类型
     time 类型 需要实现 convter 接口自己写
     对于拷贝的名称不一致的情况 默认不进行处理

24.  对于crud 的操作可以封装一个basedao来通过反射机制来简化代码

25.  服务器端的包含: request.getRequestDispatcher().inculde(request,response);

26.  window.parent.mainFrame.document.getElementById().xxx;

27.  stream.copy(intputsream, new FileoutputStream("d:/xx/"+filename),true(是否自动关闭));
     ie 下filename 的名字是 带路径的全路径  使用:filename = FilenameUtil.getName
     判断 stream 是否是空的  stream.avaliable () != 0

你可能感兴趣的:(cms)