第一天 ----- 第十天 知识点复习
day1 XML 语法和两种约束技术
1、XML语法写法、规范: 根元素必须唯一、元素名称与属性名称不能以数字开始、元素标记必须结束、元素不能交叉嵌套、属性值必须加引号(双引号、单引号) ----- 考试:排错
2、CDATA块 与 特殊字符转义在 使用上区别 ?
<book> <p>标记的作用 </book> ----- 标记内容 <p> 是一个特殊内容
CDATA : <book> <![CDATA[ <p>标记的作用 ]]> </book> ---- 特殊内容<p> 不会被解析器解析
转义字符:<book> < p >标记的作用 </book>
* 在实际开发中CDATA 比转义更好
* 在转义是,一般只需要转义 < 就可以了,不需要转义 > ------ <book> < p>标记的作用 </book>
3、DTD 约束 ---- 三种DTD :内部 <!DOCTYPE 根元素[]> 、外部 <!DOCTYP 根元素 SYSTEM "dtd路径" >、
公共 <!DOCTYPE 根元素 PUBLIC "dtd名称" "dtd网络路径"
4、<!ELEMENT 元素 、 <!ATTLIST 属性 、 <!ENTITY 实体数据
5、Schema 开发流程
使用W3C 预定义元素和类型 ----- 定义自己Schema中元素 ----- 为自定义Schema元素绑定名称空间上 ----在XML文件中通过名称空间引用自定义Schema元素
6、Schema中名称空间作用? ------ 唯一标识元素来自哪个Schema文件
day2 XML解析
1、XML解析方式 : DOM 和 SAX ---- JDK6新增 STAX
2、JAXP DOM操作函数 ---- 完成XML文档增删改查
3、JAXP SAX编程思路,掌握推模式 基于事件xml解析方式
4、XML Pull解析器使用 ------- Xml2List List2Xml
* XmlPullParser XmlSerializer
day3 Java基础加强
JDK5.0 新特性 和 反射技术
1、泛型 掌握两点 : 使用泛型在编译时检查集合元素类型安全(遍历List、Set 、Map) 、使用泛型编写通用程序(数组元素交换位置,数组元素倒序)
2、枚举在什么情况使用 ? 固定取值,取值范围3个以上
* 一个值 常量、两个值 boolean ----- 例如:字段表示男还是女 boolean isMale ,当变量为true 男 ,当变量为false 女
3、根据星期数字 打印中文星期几 ?
4、枚举实例、下标、名称 直接转换 name() ordinal() values() valueOf()
5、for/in语句在什么情况下使用? 类本身实现 Iterable接口,在类中实现 iterator()方法
6、for/in 移除练习 并发修改异常解决:1) 使用iterator.remove方法、2) 当删除只有一个元素时,删除后调用break 3) CopyOnWriteArrayList
7、反射技术
获取一个类字节码文件 三种方式:类名.class、对象.getClass 、 Class.forName
通过Class对象,创建字节码文件对应类实例 无参数: c.newInstance 有参数 c.getConstructor获得构造器 ,通过构造器.newInstance进行对象创建
如何设置对象属性 : Field f = c.getDeclaredField("属性名称"); f.setAccessable(true) ; f.set或者f.get进行属性读写
调用方法 获得方法反射对象:Method m = c.getDeclaredMethod("方法名", 类型Class可变参数)
m.invoke(obj,参数); 通过反射执行 该方法
day4 Tomcat与HTTP协议
1、Tomcat安装配置 ---- 修改server.xml 改变tomcat默认端口
* 当tomcat启动时,如果端口被占用 cmd>netstat -ano 查看端口进程 编号
2、将web应用 发布tomcat 中 三种方式
1) 映射conf/server.xml
2) 在conf/Catalina/localhost/xxx.xml
3) 直接将web应用 复制tomcat/webapps ----- 将web应用制作war文件
3、Tomcat虚拟主机配置 ----- 修改hosts文件
*可以在tomcat中配置多台虚拟主机,只有一台虚拟主机可以通过ip去访问 ----- defaultHost 缺省的虚拟主机
4、MyEclipse中配置tomcat,发布web工程
5、HTTP请求方式 get和post区别
6、HTTP响应常见状态码 200 302 304 404 500
7、常用头信息 referer 防止盗链 refresh自动刷新 Location重定向 Content-Encoding: gzip 配置tomcat使用gzip压缩 , tomcat内部缓存策略 If-Modified-Since 与 Last-Modified * Etag与If-None-Match
day5 Servlet编程入门
1、编写第一个Servlet 继承HttpServlet 覆盖doGet与doPost方法
2、servlet运行需要外部jar ----- tomcat/lib/servlet-api.jar
3、URL-Pattern三种写法: 完全路径匹配 、目录匹配、扩展名匹配
4、路径问题:服务器端路径 / 开始代表当前web应用; 客户端路径 /day10/路径 ,/ 代表Web服务器根目录
* 打印乘法表
5、ServletConfig 和 ServletContext 都可以提供初始化参数,Config当前Servlet可用 Context 所有Servlet可用
6、Servlet生命周期 init service destroy
7、通过ServletContext 获得web工程中文件绝对磁盘路径 ---- getServletContext().getRealPath("/1.txt") ;
* 这里 / 代表WebRoot目录
8、缺省Servlet ------ 所有你访问静态web资源,都是通过缺省Servlet返回 客户端的
day6 Request和Response
1、通过Response向客户端输出数据 response.getWriter response.getOutputStream
* 如果 输出数据包含中文 response.setContentType("text/html;charset=utf-8");
2、response操作状态码和头信息 setStatus setHeader 案例:重定向、自动刷新、禁止缓存
3、request 获得客户请求提交数据 request.getParameter
* 如果客户提交中文
post ----- request.setCharacterEncoding(编码集)
get ----- 1) 修改tomcat默认解码集 <Connector 添加 URIEncoding="utf-8"
2) 手动重新编码 new String(原来内容.getBytes("ISO=8859-1"),"utf-8")
4、request获得请求行信息 getContextPath 工程名 getRequestURI 访问全路径
* 截取当前访问资源路径 getRequestURI().substring(getContextPath().length);
* 获得 IP getRemoteAddr()
5、request获得头信息 ------ 防盗链
* 通过URL URLConnection 模拟客户端,添加头信息referer、避开防盗链程序
day7 Session和Cookie
1、Session和Cookie区别?
Cookie保存客户端,Session保存服务器端
2、Cookie案例:上次访问时间、商品浏览记录
3、关闭浏览器,再次打开,session中数据还存在 ? 因为jsessionId在客户端持久化 ---- 持久Cookie保存
4、Session案例:购物车、使用一次性验证码用户登录
5、Cookie禁用 通过URL重写 追踪Session
6、Cookie生命周期和Session 生命周期
创建cookie ---- response.addCookie
销毁cookie 会话cookie和持久cookie ----- 会话cookie关闭浏览器销毁,持久cookie在cookie过期时销毁(cookie删除 maxAge为0 )
创建Session request.getSession()
销毁Session 三种:1) 服务器关闭 2) Session过期(可以在web.xml配置) 3) 调用invalidate销毁Session
* 当Session销毁后,当中所有数据都会销毁
7、Servlet三种数据范围: request、session、ServletContext 如何使用?
day8 JSP技术 + EL +JSTL
1、JSP 与 Servlet关系
2、JSP运行原理
3、JSP <%! 声明 <%= 表达式 <% 脚本片段
4、JSP三种注释
5、错误友好页面配置 JSP page属性 errorPage 和 isErrorPage ----- 常用配置web.xml
6、<%@include 与 <jsp:include 原理与区别 ?
7、JSP九个内置对象 page request session application response out config pageContext exception
8、在JSP存在四个数据范围 page、request、session、application
9、JSTL + EL ----- c:if c:forEach EL主要用来取值 ---- empty 判断
10、<jsp:forward> <c:redirect> 在JSP 页面完成转发和重定向
day9 JSP模式和案例
1、JSP Model1 和 JSP Model2
2、什么是 MVC
3、BeanUtils使用和原理 ---- 原理就是内省
4、计算器案例 --- 基于model1
5、用户登录注册案例 基于model2
基于MVC编程思路
1、编写页面 以表单或者链接方式 提交请求 <form action="" > <a href="" >
例如 注册:regist.jsp 登录login.jsp
2、当客户端提交请求,服务器创建控制器 接收请求 Servlet
例如: 注册 RegistServlet 登录 LoginServlet
3、在控制器Servlet中需要将请求数据 封装 JavaBean对象中
BeanUtils开发包 ---- 创建JavaBean : User
4、在控制器 将数据JavaBean 传递 处理数据JavaBean 进行数据处理
UserModel 将 User对象传递UserModel 进行注册、登录
5、UserModel 处理业务数据,将结果返回控制器Servlet ,Servlet根据返回结果,决定跳转哪个页面
* 跳转页面时,需要传递一些信息给页面 request.setAttribute 、request.getRequestDispatcher().forward() ----- 一般用来传递提示信息
* 在用户登陆之后,用户信息 保存到Session中
day1 XML 语法和两种约束技术
1、XML语法写法、规范: 根元素必须唯一、元素名称与属性名称不能以数字开始、元素标记必须结束、元素不能交叉嵌套、属性值必须加引号(双引号、单引号) ----- 考试:排错
2、CDATA块 与 特殊字符转义在 使用上区别 ?
<book> <p>标记的作用 </book> ----- 标记内容 <p> 是一个特殊内容
CDATA : <book> <![CDATA[ <p>标记的作用 ]]> </book> ---- 特殊内容<p> 不会被解析器解析
转义字符:<book> < p >标记的作用 </book>
* 在实际开发中CDATA 比转义更好
* 在转义是,一般只需要转义 < 就可以了,不需要转义 > ------ <book> < p>标记的作用 </book>
3、DTD 约束 ---- 三种DTD :内部 <!DOCTYPE 根元素[]> 、外部 <!DOCTYP 根元素 SYSTEM "dtd路径" >、
公共 <!DOCTYPE 根元素 PUBLIC "dtd名称" "dtd网络路径"
4、<!ELEMENT 元素 、 <!ATTLIST 属性 、 <!ENTITY 实体数据
5、Schema 开发流程
使用W3C 预定义元素和类型 ----- 定义自己Schema中元素 ----- 为自定义Schema元素绑定名称空间上 ----在XML文件中通过名称空间引用自定义Schema元素
6、Schema中名称空间作用? ------ 唯一标识元素来自哪个Schema文件
day2 XML解析
1、XML解析方式 : DOM 和 SAX ---- JDK6新增 STAX
2、JAXP DOM操作函数 ---- 完成XML文档增删改查
3、JAXP SAX编程思路,掌握推模式 基于事件xml解析方式
4、XML Pull解析器使用 ------- Xml2List List2Xml
* XmlPullParser XmlSerializer
day3 Java基础加强
JDK5.0 新特性 和 反射技术
1、泛型 掌握两点 : 使用泛型在编译时检查集合元素类型安全(遍历List、Set 、Map) 、使用泛型编写通用程序(数组元素交换位置,数组元素倒序)
2、枚举在什么情况使用 ? 固定取值,取值范围3个以上
* 一个值 常量、两个值 boolean ----- 例如:字段表示男还是女 boolean isMale ,当变量为true 男 ,当变量为false 女
3、根据星期数字 打印中文星期几 ?
4、枚举实例、下标、名称 直接转换 name() ordinal() values() valueOf()
5、for/in语句在什么情况下使用? 类本身实现 Iterable接口,在类中实现 iterator()方法
6、for/in 移除练习 并发修改异常解决:1) 使用iterator.remove方法、2) 当删除只有一个元素时,删除后调用break 3) CopyOnWriteArrayList
7、反射技术
获取一个类字节码文件 三种方式:类名.class、对象.getClass 、 Class.forName
通过Class对象,创建字节码文件对应类实例 无参数: c.newInstance 有参数 c.getConstructor获得构造器 ,通过构造器.newInstance进行对象创建
如何设置对象属性 : Field f = c.getDeclaredField("属性名称"); f.setAccessable(true) ; f.set或者f.get进行属性读写
调用方法 获得方法反射对象:Method m = c.getDeclaredMethod("方法名", 类型Class可变参数)
m.invoke(obj,参数); 通过反射执行 该方法
day4 Tomcat与HTTP协议
1、Tomcat安装配置 ---- 修改server.xml 改变tomcat默认端口
* 当tomcat启动时,如果端口被占用 cmd>netstat -ano 查看端口进程 编号
2、将web应用 发布tomcat 中 三种方式
1) 映射conf/server.xml
2) 在conf/Catalina/localhost/xxx.xml
3) 直接将web应用 复制tomcat/webapps ----- 将web应用制作war文件
3、Tomcat虚拟主机配置 ----- 修改hosts文件
*可以在tomcat中配置多台虚拟主机,只有一台虚拟主机可以通过ip去访问 ----- defaultHost 缺省的虚拟主机
4、MyEclipse中配置tomcat,发布web工程
5、HTTP请求方式 get和post区别
6、HTTP响应常见状态码 200 302 304 404 500
7、常用头信息 referer 防止盗链 refresh自动刷新 Location重定向 Content-Encoding: gzip 配置tomcat使用gzip压缩 , tomcat内部缓存策略 If-Modified-Since 与 Last-Modified * Etag与If-None-Match
day5 Servlet编程入门
1、编写第一个Servlet 继承HttpServlet 覆盖doGet与doPost方法
2、servlet运行需要外部jar ----- tomcat/lib/servlet-api.jar
3、URL-Pattern三种写法: 完全路径匹配 、目录匹配、扩展名匹配
4、路径问题:服务器端路径 / 开始代表当前web应用; 客户端路径 /day10/路径 ,/ 代表Web服务器根目录
* 打印乘法表
5、ServletConfig 和 ServletContext 都可以提供初始化参数,Config当前Servlet可用 Context 所有Servlet可用
6、Servlet生命周期 init service destroy
7、通过ServletContext 获得web工程中文件绝对磁盘路径 ---- getServletContext().getRealPath("/1.txt") ;
* 这里 / 代表WebRoot目录
8、缺省Servlet ------ 所有你访问静态web资源,都是通过缺省Servlet返回 客户端的
day6 Request和Response
1、通过Response向客户端输出数据 response.getWriter response.getOutputStream
* 如果 输出数据包含中文 response.setContentType("text/html;charset=utf-8");
2、response操作状态码和头信息 setStatus setHeader 案例:重定向、自动刷新、禁止缓存
3、request 获得客户请求提交数据 request.getParameter
* 如果客户提交中文
post ----- request.setCharacterEncoding(编码集)
get ----- 1) 修改tomcat默认解码集 <Connector 添加 URIEncoding="utf-8"
2) 手动重新编码 new String(原来内容.getBytes("ISO=8859-1"),"utf-8")
4、request获得请求行信息 getContextPath 工程名 getRequestURI 访问全路径
* 截取当前访问资源路径 getRequestURI().substring(getContextPath().length);
* 获得 IP getRemoteAddr()
5、request获得头信息 ------ 防盗链
* 通过URL URLConnection 模拟客户端,添加头信息referer、避开防盗链程序
day7 Session和Cookie
1、Session和Cookie区别?
Cookie保存客户端,Session保存服务器端
2、Cookie案例:上次访问时间、商品浏览记录
3、关闭浏览器,再次打开,session中数据还存在 ? 因为jsessionId在客户端持久化 ---- 持久Cookie保存
4、Session案例:购物车、使用一次性验证码用户登录
5、Cookie禁用 通过URL重写 追踪Session
6、Cookie生命周期和Session 生命周期
创建cookie ---- response.addCookie
销毁cookie 会话cookie和持久cookie ----- 会话cookie关闭浏览器销毁,持久cookie在cookie过期时销毁(cookie删除 maxAge为0 )
创建Session request.getSession()
销毁Session 三种:1) 服务器关闭 2) Session过期(可以在web.xml配置) 3) 调用invalidate销毁Session
* 当Session销毁后,当中所有数据都会销毁
7、Servlet三种数据范围: request、session、ServletContext 如何使用?
day8 JSP技术 + EL +JSTL
1、JSP 与 Servlet关系
2、JSP运行原理
3、JSP <%! 声明 <%= 表达式 <% 脚本片段
4、JSP三种注释
5、错误友好页面配置 JSP page属性 errorPage 和 isErrorPage ----- 常用配置web.xml
6、<%@include 与 <jsp:include 原理与区别 ?
7、JSP九个内置对象 page request session application response out config pageContext exception
8、在JSP存在四个数据范围 page、request、session、application
9、JSTL + EL ----- c:if c:forEach EL主要用来取值 ---- empty 判断
10、<jsp:forward> <c:redirect> 在JSP 页面完成转发和重定向
day9 JSP模式和案例
1、JSP Model1 和 JSP Model2
2、什么是 MVC
3、BeanUtils使用和原理 ---- 原理就是内省
4、计算器案例 --- 基于model1
5、用户登录注册案例 基于model2
基于MVC编程思路
1、编写页面 以表单或者链接方式 提交请求 <form action="" > <a href="" >
例如 注册:regist.jsp 登录login.jsp
2、当客户端提交请求,服务器创建控制器 接收请求 Servlet
例如: 注册 RegistServlet 登录 LoginServlet
3、在控制器Servlet中需要将请求数据 封装 JavaBean对象中
BeanUtils开发包 ---- 创建JavaBean : User
4、在控制器 将数据JavaBean 传递 处理数据JavaBean 进行数据处理
UserModel 将 User对象传递UserModel 进行注册、登录
5、UserModel 处理业务数据,将结果返回控制器Servlet ,Servlet根据返回结果,决定跳转哪个页面
* 跳转页面时,需要传递一些信息给页面 request.setAttribute 、request.getRequestDispatcher().forward() ----- 一般用来传递提示信息
* 在用户登陆之后,用户信息 保存到Session中