1.5、跳转、转发、重定向
1.6、Web.xml中的servlet路径:
1.6.1、http:
//ip[:
port]/context/url-pattern
1.6.1.1、路径:
以‘/’开头,以”/*”结束(模糊匹配)
1.6.1.2、精确:
/admin(唯一确定的,只有一个)
1.6.1.3、扩展名:
*.action(不能与路径滥用)
1.6.1.4、优先级:
url-pattern>>>>>servlet(一对多),精确>扩展名>路径。
且以长路径优先级高
1.6.2、获得路径的常用API
1.6.2.1、getContextPath()
1.6.2.2、getServletPath()
1.6.2.3、getRequestURI()
1.6.2.4、getRequestURL()
1.6.2.5、getRealPath(“/”)获得服务器的servlet磁盘的真实路径,经常在上传时用
1.7、Listener
1.7.1、案例,在线人数统计,饭店菜品排行榜
1.7.2、主要监听:
应用,会话,请求的创建与销毁;属性的添加或移除;序列化与反序列化(集群服务器);某个特定的对象加入或移除到属性
1.8、Filter
1.8.1、用户登录判断
1.9、MD5算法(MessageDigital)
2、JSP
2.1、3编译指令
2.1.1、Page
2.1.2、Include
2.1.3、Taglib
2.2、7动作指令
2.2.1、Forward
2.2.2、Include
2.2.3、Param
2.2.4、Plugin
2.2.5、useBean
2.2.6、setProperty
2.2.7、getProperty
2.3、9内置对象
2.3.1、Application--------getServletContext
2.3.2、Session----------Session
2.3.2.1、每次请求对应一个session即JSessionID(JSP特有)
2.3.2.2、生命周期从第一次访问,到浏览器关闭之后
2.3.3、Page
2.3.4、pageContext
2.3.5、out----response.getWriter().out.();
2.3.6、request----HttpServletRequest
2.3.7、response--------HttpServletResponse
2.3.8、exception
2.3.9、config
2.3.10、共享范围
Application>session>request
3、乱码的处理
3.1、字符集
3.1.1、能处理中文的编码:
utf-8,GBK,GB2312
3.1.1.1、数据库:
utf-8
3.1.1.2、JSP、html:
utf-8
3.1.1.3、Java源码:
utf-8
3.2、设置每个请求Request的编码:
3.2.1、如果是post方法(在http体:
用户设置的编码)
3.2.1.1、request.setCharactorEncoding(“utf-8”);
3.2.2、如果是get(在http头:
西欧编码)
3.2.2.1、Strings=newString(str.getBytes(“iso-8859-1”,”utf-8”));
3.3、设置数据库编码
3.3.1、url?
setEncoding=utf-8
4、SVN
4.1、冲突解决
4.2、人为协商解决
4.3、文件锁
5、ANT
5.1、编译》》打包》》jar或war
5.2、目录文件》》copy,delete
5.3、生成文档》javaDoc
5.4、测试》》Junit
5.5、生成SQL测试脚本
6、持续构建hudson
7、项目进度
7.1、时间=规模/速度
7.1.1、规模=故事点数(一个相对值于第一个故事点,第一个随意定)
7.1.2、速度=一个故事点的时间
8、用户登录和自动登录
8.1、Session对应的是一个浏览器,不是一个页面或IP
8.2、Session在服务器端是一个Map对象,如下图
Key
Value(Map)
JSESSIONID=1
String-key
Object-value
String-key
Object-value
JSESSIONID=2
String-key
Object-value
String-key
Object-value
。
。
。
。
。
。
String-key
Object-value
String-key
Object-value
9、Cookie有内存型(浏览器关闭会自动销毁)和持久型(可以禁用)两种;
10、Form中method常用有两种:
get、post
10.1、Get在http协议头中
10.2、Post在http协议体中
11、程序员与美工合作
11.1、程序员负责页面的布局,美工负责页面的美观
11.2、布局尽量用div+css来代替table
11.3、Html布局常识
11.3.1、主要分为块元素(block:
自动换行)和行元素(inline:
不换行)
11.3.2、CSS主要了解选择器,盒子模型,定位及布局
11.4、了解fireworks网页快速布局设计
12、数据库树形表建立
12.1、字段,id,code,level,index
12.1.1、Code可以为01,0101,0102,010201,010202,
12.1.2、Jsp树生成代码
13、Hibernate
13.1.1.1、对象之间的关系有四种,
13.1.1.1.1、一对多,
13.1.1.1.2、一对一,单向(一个丈夫只能有一个妻子,一个妻子只能有一个丈夫)
13.1.1.1.2.1、主键关联
类设计
类对应文件配置
13.1.1.1.2.2、基于外键关联的单向一对一关联和单向多对一关联几乎是一样的。
唯一的不同就是单向一对一关联中的外键字段具有唯一性约束。
在数据库表中多一个字段,而这个字段是唯一的!
!
即一对多的一种特种情况
13.1.1.1.3、多对多,双向,尽量简单
13.1.1.1.4、多对一,
13.1.1.2、级联cascade
13.1.1.2.1、None
13.1.1.2.2、Delete
13.1.1.2.3、Save-update
13.1.1.2.4、All(delete+save-update)
13.1.1.3、inverse
13.1.1.3.1、数据库表中字段要允许为空
13.1.1.3.2、True有manager来维护(效率高,需要setmanager方),false自己维护
13.1.1.4、Lazy如果是true则不去查相关的集合,用的时候再查,并且session不能关闭(建义用getCurrentSession()),并且要有事务,false则查
13.2、Hibernate常见错误问题
现象
原因
解决方法
配置找不到错误,没抛异常或空指针,每次插入数据后找不到以前的数据
Cfg文件多一句话,create
每次创建时,清空表
注释下这句、
Exceptioninthread"main"org.hibernate.MappingException:
Unknownentity:
mode.Wife1
通常是找不到类对应的hbm文件,没有在cfg文件中加载
在cfg文件中加入
13.3、HQL
13.3.1、查询
13.3.1.1、全部属性
13.3.1.1.1、From类名(区分大小写)>>List
13.3.1.2、查询某个属性
13.3.1.2.1、Select属性from类名》》》》》》》list<属性类型>
13.3.1.3、查询n个属性
13.3.1.3.1、Select属性1,属性2,。
。
。
from类名List
13.3.1.4、查询一个对象
13.3.1.4.1、SelectnewUser(name,age,sex)fromUser(必须有其相对应的构造方法)>>>List
13.3.1.5、查询两种参数写法
13.3.1.5.1、SetParameter(“别名”,true);别名在hql中写法…whereage>=:
别名
13.3.1.5.2、SetParamer(index,true);index从0开始
13.3.1.5.3、SetXXX(index/“别名”,值);XXX为参数类型
13.3.2、删除/修改》》createQuery(“deletefromUseruserwhereuser.id=10”);执行完后,须executeUpdate();
13.3.3、分页
13.3.3.1、Query.setFirstResult();开始记录
13.3.3.2、Query.setMaxResults();每页显示的记录
13.3.3.3、Query.uniqueResult();返回的结果只有一条
13.3.4、连接(集合A,B)
13.3.4.1、内连接(A∩B)
Select*fromA,B;
13.3.4.2、左外(A)
Select*fromA,BwhereA.id==B.id(+)
13.3.4.3、右外(B)
Select*fromA,BwhereA.id(+)==B.id
13.3.4.4、全外(A∪B)
Select*fromA,B
13.3.5、聚集函数(max,count)
13.3.6、子查询
13.3.7、分组与排序(groupby,desc,asc,orderby)
14、MVC补充
15、JavaScript
15.1、引入js有两种方式:
15.1.1、
15.1.2、
15.1.3、脚本不能用时,用
15.2、数据类型:
原始类型(栈):
undefined、null、boolean、number、String,引用类型(堆):
Object
*如果new一个对象时,该对象没有参数可以直接newObject;
15.3、类型转换:
toString(2/8/16),parseInt(),parseInt()
*javascript没有函数重载,就近调用
*JavaScript是一门动态语言(用java来描述卵细胞,蝌蚪,青蛙是不同的三个对象)
15.4、DOM(DocumentObjectModel)
15.4.1、Document对象的常用方法:
getElementById(),getElementsByName(),getElementsByTagName(),
15.4.2、元素对象的常用方法:
createElement,removeChild(node),appendChild(node),parentNode,replaceChild,insertBefore,createElement,createTextNode,lastChild,firstChile,childNodes,previousSibling,nextSibling,setArrribute,getArrribute,removeAttribute,nodeType,nodeValue,nodeName
元素
属性
文本
nodeType
1
2
3
nodeValue
属性值
文本值
nodeName
标签
属性名称
#text
15.4.3、DOM事件模型:
冒泡,捕获
15.4.3.1、事件对象
15.4.3.1.1.1、IE:
window.event
15.4.3.1.1.2、DOM:
event=arguments[0](方法)
15.4.3.2、事件源
15.4.3.2.1、IE:
event.srcElement
15.4.3.2.2、DOM:
event.target
15.4.3.3、事件类型
15.4.3.3.1、鼠标:
click、dbclick,mousedown,mouseup,mouseout,mouseover,mousemove
15.4.3.3.2、键盘:
keyDown,keyPress,keyUp
15.4.3.3.3、系统:
load,unload,select,change,focus,blur,resize,scroll
15.4.3.3.4、停止冒泡:
IE:
event.cancelBubble=true;DOM:
event.stopPropagation();
15.4.3.3.5、取消默认行为,IE:
event.returnValue=false;DOM:
event.preventDefault();
15.4.3.3.6、`为一个元素添加监听器:
DOM:
addEventsListener(事件名,事件方法,冒泡/捕获),removeEventListener,IE:
attachEventListener,deleteEventListener
15.5、Jquery
15.5.1、作用:
获取元素,操作DOM,操作CSS,响应事件,Ajax,小动画
15.5.2、优势:
跨越浏览器,面向对象(集合操作),连缀