李腾飞领航CMS学习笔记

[size=medium][align=left]
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
[/align][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值