黑马程序员技术交流社区

标题: 【石家庄校区】web阶段知识总结 [打印本页]

作者: TISHIHANG    时间: 2018-2-4 15:35
标题: 【石家庄校区】web阶段知识总结
本帖最后由 小石姐姐 于 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();
* setDomain(String domain); -- 设置Cookie的有效域名. //  www.baidu.com <http://www.baidu.com>  music.baidu.com
* 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="标签的别名" %>






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2