本帖最后由 小石姐姐 于 2018-2-8 15:37 编辑
web阶段知识总结
增强一个类中的某个方法有几种方式: * 继承: * 控制控制这个类的构造. * 装饰者模式: * 增强的类和被增强类实现相同的接口. * 在增强类中获得被增强的类引用. * 接口中方法过多,增强其中一个方法,其他方法都要重写. * 动态代理: * 被增强的类实现了接口即可. * 编写代码的时候麻烦. 【XML的语法】 Ø XML的基本语法: * XML必须有关闭标签 * 区分大小写 * 属性需要有引号 * 标签必须正确嵌套.
Ø XML的文档声明 * 文档声明:通常出现在XML的第一行第一列的位置!!! * 写法: * <?xml 属性名=”属性值” 属性名=”属性值” ...?>
Ø DOM4J的入门案例步骤: * 【步骤一】导入jar包.dom4j-1.6.1.jar * 【步骤二】创建解析器 SaxReader * 【步骤三】解析文档获得代表文档的Document对象. —— SAXReader 的 read()方法获取Document。 * 【步骤四】获得跟节点.——通过Document对象的getRootElement <mk:@MSITStore:E:\´«ÖDz¥¿Í-Ë«Ôª¿ÎÌÃ\01-ÉÏ¿ÎÎļþ\JavaEE\02\01_JavaWeb_30\day10-JDBC¸ß¼¶ÓëXML\×ÊÁÏ\xml\dom4j%20API%20.chm::/org/dom4j/Document.html>()得到根节点 * 【步骤五】从跟节点下查找其他的节点. 使用根节点获取他下面的节点element() elements(“标签名称”)
Ø XML的约束的额概述: * 什么是XML的约束 :就是用来约束XML的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数. * XML的约束 :用来规范XML的写法. ***** XML的约束的种类及区别? * DTD 和 Schema : * 区别: 1.DTD语法是自成一体的.Schema语法就是XML的语法. 2.Schema的语法就是XML的语法所以更容易被解析器所解析. 3.Schema支持名称空间. 4.Schema有比DTD更加强大的语义和语法的约束.
Tomcat常见问题:【没有配置JAVA_HOME引发tomcat一闪消失】 * 一定要配置JAVA_HOME环境变量. 【端口号冲突的问题】 * 一种:将占用端口的应用结束. * netstat -ano * 打开任务管理器结束: * 二种:修改自身应用的端口号. * tomcat/conf/server.xml
【HTTP协议的详解】 Ø 请求部分 * 请求行 * 提交方式: * 提交方式有很多,常用的GET和POST: * GET和POST的区别: * GET的提交的参数会显示到地址栏上,而POST不显示. * GET往往是有大小限制的,而POST没有大小的限制. * GET没有请求体,而POST有请求体. * 提交路径: * 协议版本: * 请求头 * 都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value. * User-Agent :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码. * Referer :代表的是网页的来源. --- 防盗链. * If-Modified-Since :通常与响应中的头Last-Modified一起使用查找本地缓存. * 请求体 * 就是POST提交方式的提交的参数. Ø 响应部分 * 响应行: * 协议版本 * 状态码 : * 200 :成功 * 302 :重定向 * 304 :查找本地缓存 * 404 :资源不存在 * 500 :服务器内部错误 * 状态码描述 * 响应头:键值对,一般一个key对应一个value,也有一个key对应多个value. * Last-Modified :与请求中的If-Modified-Since一起使用查找本地缓存. * Content-Dispostion :文件下载的使用使用的一个头信息. * Location :重定向的跳转的路径. * Refresh :定时刷新/定时跳转. * 响应体:显示浏览器的页面的内容.
Servlet的生命周期:(*****)Ø 生命周期:就是一个对象从创建到销毁的过程. Ø Servlet生命周期:Servlet从创建到销毁的过程. * 何时创建:用户第一次访问Servlet创建Servlet的实例 * 何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候. Ø 用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
开发中的路径的编写:Ø 相对路径:都是需要找位置相对关系.不能以 / 开始的. * ./ 当前路径 ../上一级目录 * 使用相对路径访问: * <http://localhost:8080/day09/demo4-url/demo1.html> * http://localhost:8080/day09/ServletDemo6 Ø 绝对路径:不需要找位置相对关系. 以 / 开始的. * 绝对路径中分为客户端路径和服务器端路径: * 客户端路径一定要加工程名. /day09/ServletDemo6 * 服务器端路径不需要加工程名./ServletDemo6
ServletContext:ServletContext的作用: * 1.用来获得全局初始化参数. * 2.用来获得文件的MIME的类型. * 3.作为域对象存取数据. ServletContext是一个域对象. * 作用范围:整个web工程. * 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象. * 销毁:服务器关闭的时候,或者项目从服务器中移除的时候. * 4.用来读取web项目下的文件.
转发和重定向的区别:【重定向】 response.sendRedirect(String path); -- 完成重定向 【转发】 request.getRequestDispatcher(String path).forward(request,response); 【区别】 1.转发的地址栏不变的.重定向的地址栏发生变化的. 2.转发是一次请求一次响应,重定向是两次请求两次响应. 3.request域对象存取的值在转发中是有效的,在重定向无效的. 4.转发的路径不需要加工程名.重定向的路径需要加工程名.
【Cookie技术的使用】 Ø 向浏览器保存数据: HttpServletResponse有一个方法: * void addCookie(Cookie cookie); Ø 获得浏览器带过来的Cookie: HttpServletRequest有一个方法: * Cookie[] getCookies(); Ø 创建一个Cookie对象: * Cookie(String name,String value);
Cookie的常用API:Ø Cookie的常用的API: * getName(); * getValue(); * setPath(String path); -- 设置Cookie的有效路径. * setMaxAge(int maxAge); -- 设置Cookie的有效时间.
Ø Cookie的分类有关: * 会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁. * 持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
Session是域对象:session何时创建和销毁?作用范围: * 创建:服务器端第一次调用getSession()创建session. * 销毁:三种情况销毁session: * 1.session过期. 默认过期时间为30分钟. * 2.非正常关闭服务器.如果正常关闭session序列化到硬盘. * 3.手动调用session.invalidate(); * 作用范围:多次请求.(一次会话)
【JSP的指令】 Ø 指令的语法: <%@ 指令名称 属性名称=”属性值” 属性名称=”属性值” ...%> Ø JSP中有三个指令:page指令, include指令, taglib指令. Ø JSP中page指令:<%@ page %> -- 设置JSP的. * language :JSP脚本中使用的语言.现在只能写java. * contentType :设置浏览器打开这个JSP的时候采用的默认的字符集的编码. * pageEncoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码. * import :在JSP中引入类对象.但是import可以出现多次.
Ø JSP中的include指令:指示JSP包含其他的页面. <%@ include file="logo.jsp" %> <%@ include file="menu.jsp" %> <h1>BODY部分</h1> <%@ include file="footer.jsp" %>
Ø JSP中的taglib指令:指示JSP引入标签库. <%@ taglib uri="标签的URI的路径" prefix="标签的别名" %>
|