黑马程序员技术交流社区

标题: 【石家庄校区】就业班day_11---day_14学习笔记 [打印本页]

作者: 时光。    时间: 2018-5-21 15:41
标题: 【石家庄校区】就业班day_11---day_14学习笔记
本帖最后由 小石姐姐 于 2018-6-7 10:33 编辑

就业班day_11---day_14学习笔记
JDBC事务的概念
事务指的是逻辑上的一组操作,组成这组操作各个逻辑单元要么全部成功,要么全部失败
JDBC的API:
Connection : 连接
​       获得连接
​       执行事务的管理
Statement  :
​       执行SQL语句 :
​             int executeUpdate(String sql);
​             ResultSet executeQuery(String sql);
ResultSet :
​        getXXX(int idx) , getXXX(String name);
事务管理的流程:
​      conn.commit();
​       try {
​                         conn.rollback();
​             } catch (SQLException e1) {
​                     e1.printStackTrace();
​       }
连接池的概述
连接池是装有连接的容器,使用连接的话,可以从连接池中进行获取,使用完成之后将连接归还给连接池。
DbUtils : 工具类 :
​      使用DBUtils完成CRUD的操作
如何增强一个类中的方法:
​       继承这种增强是最简单,但是是有使用条   件的:必须能够控制这个类的构造!
​       装饰者模式使用条件:
​             增强的类和被增强的类实现相同的接口
​              在增强的类中获得被增强的类的引用
​              接口中方法过多,增强其中一个方法,其他方法都要重写.
Druid的概述
Druid阿里旗下开源连接池产品,使用非常简单,可以与Spring框架进行快速整合。

XML的概述
XML : 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.
允许用户自定义的标签
XML 的作用:
​      传输和存取数据
​      软件的配置文件
XML 的语法:
​      XML必须有关闭标签
​      区分大小写
​      属性需要引号
​      标签必须正确嵌套
XML 的文档声明
​      通常出现在 XML 的第一行第一列的位置
​      写法:
​           <?xml 属性名= "属性值"  属性名="属性值"....?>
​           version     :   必须的, 使用"1.0"
​           encoding    :  字符集,是使用浏览器打开的时候采用的默认的字符集的编码
​           standalone   :   描述XML文档是否需要依赖其他文件
XML 的注释
​        <!-- XML的注释 -->
XML 的元素命名规范:
XML 的属性
XML 的特殊字符和CDATA区
XML 的解析
DOM 和 SAX 的区别:
DOM4J的入门案例步骤:
【步骤一】导入jar包.dom4j-1.6.1.jar
【步骤二】创建解析器
【步骤三】解析文档获得代表文档的Document对象.
【步骤四】获得跟节点.
【步骤五】从跟节点下查找其他的节点.
XPath:
   dom4j支持XPath的jar包.
​           jaxen-1.1-beta-6.jar
   dom4j的XPath支持的API:
​           List document.selectNodes(String xPath);
​           Node document.selectSingleNode(String xPath);
XML 的约束
XML 的约束的概念:
XML 的约束就是用来约束XML 的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数
XML 的约束  :  用来规范XML的写法
XML 的约束的种类及区别
软件的架构
C/S架构的软件:
Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件.
B/S架构的软件:
Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可.
WEB 的资源:
静态资源:
动态资源:
WEB动态资源目录结构
website
​     |-----静态资源
​     |-----WEB-INF
​                |-----web.xml        :必须的
​                |-----classes        :可选的
​                |-----lib                :可选的
Tomcat(服务器) 的目录结构
HTTP 协议的详情
请求部分
请求行
提交方式:
请求头:
请求体:
相应部分
响应行:
响应头: 键值对,一般一个 key 对应一个 value ,也有一个 key 对应多个 value.
响应体:显示浏览器的页面的内容
Servlet 的概念
Servlet 就是一个运行在WEB服务器上的小的 Java 程序,用来接收和相应从客户端发送过来的 请求,通常使用HTTP协议
Servlet 的作用:
用来处理从客户端浏览器发送的请求,并且可以对请求作出相应
使用Servlet :
使用 ServletRequest 接收参数
Servlet 的实现的关系:
Servlet                      :  接口
​       |
GenericServlet        : 通用的 Servlet
​       |
HttpServlet              : HttpServlet
创建数据库和表 → 创建包和类 → 引入 jar 包 (1.mysql 的数据库的驱动包 2.c3p0连接池的 jar 包  3.dbutils的包)→ 引入 login 的页面 → 编写 Servlet → Service → DAO
Servlet 的生命周期:
生命周期 : 就是一个对象从创建到销毁的过程.
Servlet 生命周期 : Servlet 从创建到销毁的 过程
用户第一次访问 Servlet 的时候,服务器会创建一个 Servlet 的实例, 那么 Servlet 中 init 方法就会执行,任何一次请求服务器都会创建一个新的线程访问 Servlet 中的 servlet 的方法,在servlet 方法内部根据请求的方式的不同调用 doXXX 的方法,(get 请求调用 doGet,post 请求调用 doPost),当 Servlet 中服务器中移除,或者关闭服务器,Servlet 的实例就会被销毁,那么 destroy 方法就会执行
HTTP协议:用来规定浏览器与服务器之前需要遵守的规则
HTTP的作用:规范浏览器和服务器之间的数据传递
HTTP协议的特点:
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的名称 -->          <servlet-name>test1</servlet-name>          <!-- SErvlet的全路径 -->          <servlet-class>com.itheima.a_servlet.ServletDemo1</servlet-class>  </servlet>
  <!-- Servlet的映射 -->  <servlet-mapping>          <!-- Servlet的名称 -->          <servlet-name>test1</servlet-name>          <!-- Servlet的访问路径 -->          <url-pattern>/ServletDemo1</url-pattern>  </servlet-mapping>
使用 ServletRequest 接收参数 :
String getParameter(String name);                  --- 用于接收一个名称对应一个值得数据
String[] getParameterValues(String name);  --- 用于接收一个名称对应多个值得数据
Map getParameterMap();                              --- 用于接收表单中的所有的数据,Map 的 key 是表单提交的参数名称,Map 的value 是提交参数的值
Enumeration getParameterNames()             --- 用于获取表单中提交的所有的参数的名称
Servlet的实现的关系
Servlet                        :接口
   |
GenericServlet        :通用的Servlet
   |
HttpServlet                :HttpServlet
编写一个类继承HttpServlet,重写doGet和doPost方法.
配置
Servlet的生命周期:
生命周期:就是一个对象从创建到销毁的过程.
Servlet生命周期:Servlet从创建到销毁的过程.
用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
Servlet的相关的配置:
启动时创建Servlet
Servlet默认是在第一次访问的时候创建的.现在让Servlet在服务器启动的时候创建好.进行对Servlet的配置:
在web.xml中在<servlet></servlet>标签中配置:
<load-on-startup>2</load-on-startup>  --- 传入正整数,整数越小,被创建的优先级就越高.
url-pattern的配置
url-pattern配置方式共有三种:
完全路径匹配        :以 / 开始                        
例如: /ServletDemo4  ,  /aaa/ServletDemo5  ,  /aaa/bbb/ServletDemo6
目录匹配:以 / 开始 需要以 * 结束.                例如: /* ,/aaa/* ,/aaa/bbb/*
扩展名匹配:不能以 / 开始 以 * 开始的.     例如: *.do , *.action
错误的写法: /*.do
开发中的路径的编写:
相对路径:都是需要找位置相对关系.不能以 / 开始的.
./ 当前路径  ../上一级目录
绝对路径:不需要找位置相对关系. 以 / 开始的.
绝对路径中分为客户端路径和服务器端路径:
​      客户端路径一定要加工程名.                /day09/ServletDemo6
​      服务器端路径不需要加工程名.                /ServletDemo6
Refresh : 可以定时页面跳转,需要使用程序设置头信息才可以
response中设置响应头ServletContext:重要
ServletContext的作用:
1.用来获得全局初始化参数.
2.用来获得文件的MIME的类型.
3.作为域对象存取数据.
ServletContext是一个域对象.
4.用来读取web项目下的文件.
response处理中文乱码
字节流:
设置浏览器默认打开编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
中文转成字节数组编码
response.getOutputStream().write("王守义".getBytes("UTF-8"));
字符流:
设置response的缓冲区的编码
response.setCharacterEncoding("UTF-8");
设置浏览器默认打开的编码.
response.setHeader("Content-Type", "text/html;charset=UTF-8");
请求对象-request对象
获得客户机信息:
GET方式乱码处理:
GET方式提交的参数会在地址栏上显示 在请求行的路径后面.浏览器就会对路径进行一次编码.将编码后内容取出来.再进行一次编码.
处理方式:
​     修改服务器提交的编码.
​     采用URLEncoder 和 URLDecoder类对中文进行编码和解码.
​     使用String类的构造方法:
​                username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
​                System.out.println(username);
数据的封装:BeanUtils.(内省技术)
转发和重定向的区别:
重定向
response.sendRedirect(String path); -- 完成重定向
转发
request.getRequestDispatcher(String path).forward(request,response);
区别
使用转发和重定向对登录的功能优化:
使用request域保存一个值 : 在一次请求范围内有效的.
登录失败就可以保存一个错误信息到request中在动态页面中取出这个值${msg}


作者: Yin灬Yan    时间: 2018-5-21 15:49
我来占层楼啊   




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