黑马程序员技术交流社区

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

作者: 时光。    时间: 2018-5-21 15:52
标题: 【石家庄校区】就业班day_15---day_18学习笔记
就业班day_15---day_18学习笔记
Respinse 的概述
Response : 代表响应的对象.从服务器向浏览器输出内容.
文件下载的方式
一种:超链接下载.直接将文件的路径写到超链接的href中.---前提:文件类型,浏览器不支持.
二种:手动编写代码的方式完成文件的下载.
设置两个头和一个流:
​    Content-Type                        :文件的MIME的类型.
​    Content-Disposition        :以下载的形式打开文件.
​    InputStream                        :文件的输入流.
response输出响应内容的方法:
向页面响应的方法:
getOutputStream();
getWriter();
这两个方法是互斥的.
​    做出响应的时候只能使用其中的一种流响应.
输出中文乱码的处理:
​    字节流:
​        设置浏览器默认打开的编码:
​        rsposne.setHeader("Content-Type",text/html;charset=UTF-8);
​        设置中文字节取出的时候编码.
​        中文.getBytes("UTF-8");
​    字符流:
​       设置浏览器打开的时候的编码     resposne.setHeader("Content-Type",text/html;charset=UTF-8");
​       设置response的缓冲区的编码        response.setCharacterEncoding("UTF-8");
​       简化的写法          response.setContentType("text/html;charset=UTF-8");
POST的解决方案:
​                  request.setCharacterEncoding(“UTF-8”);  --- 一定要在接收参数之前设置编码就OK.
GET的解决方案:
Request作为域对象存取数据:
使用request对象存取数据:
request的作用范围:
​       创建:客户端向服务器发送了一次请求以后,服务器就会创建一个request的对象.
​       销毁:当服务器对这次请求作出了响应之后.
重定向和转发的区别:(redirect和forward的区别)
Response
Cookie的相关的API:
Cookie的分类:
​     会话级别Cookie:会话级别关闭浏览器的时候Cookie就销毁了.默认的
​     持久级别Cookie:设置有效时长的Cookie,关闭浏览器的时候不会销毁的.
Session        : 就是将数据保存到服务器端的会话技术.基于Cookie回写SessionID的.
Session存取数据:
​    setAttribute(String name,Object value);
​    getAttribute(String name);
Session作用域:
​    session的作用范围:一次会话.(多次请求)
​    session生命周期:
​        创建:第一次调用getSession的时候创建session。
​        销毁:
​             非正常关闭服务器.
​             session过期
​             手动调用invalidate方法的时候
Cookie  : 将数据保存到客户端浏览器
Cookie 常用的API:
Cookie 的分类有关:
Session  : 将数据保存到服务器端
Cookie 技术的使用:
HttpSercletResponse 有一个方法:
void addCookie(Cookie cookie);
HttpServletRequest 有一个方法:
Cookie[] getCookies();
Cookie (String name,String value);
Session的概述
Cookie 本身是有大小和个数的限制.Session 没有限制. Cookie 的数据保存在客户端, Session 数据保存在服务器端.
Session是域对象
session何时创建:
服务器端第一次调用getSession() 创建 session.
session何时销毁:
1.session 过期,默认过期时间为30分钟
2.非正常关闭服务器,如果正常关闭session序列化到硬盘.
3.手动调用session,invalidate();
作用范围:
多次请求.(一次会话)
JSP的概述
什么是JSP:
Java Server Pages(Java服务器端的页面)
使用JSP:
JSP = HTML + Java代码 + JSP自身的东西.
执行JSP的过程:
JSP翻译成Servlet,编译这个Servlet的类,生成class文件.得到执行.
JSP的脚本
<%!   %>                :翻译成Servlet中的成员内容. 定义变量,方法,类. -- 不建议.
<%    %>                :翻译成Servlet中service方法内部的内容. 定义类,变量
<%=   %>                :翻译成Servlet中service方法中out.print();
JSP的注释-- 了解
HTML的注释                :<!-- 注释 -->
Java代码的注释        :// 单行注释 /多行注释/ /** 文档注释 */
JSP的注释                :<%-- JSP的注释 --%>
JSP的指令
指令的语法:
<%@ 指令名称 属性名称=”属性值” 属性名称=”属性值” ...%>
JSP中有三个指令:page指令, include指令, taglib指令.
JSP中page指令:<%@ page %> -- 设置JSP的.
​        <%@page import="java.util.ArrayList"%>
​        <%@page import="java.util.List"%>
Ø 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="标签的别名" %>
JSP的内置对象
JSP的内置对象:在JSP中可以直接使用的对象.
JSP中有9大内置对象:
pageContext内置对象:
​    JSP的四个域范围:
​    PageScope                  :当前页面中有效.            pageContext        PageContext
​    RequestScope                  :一次请求范围.            request                HttpServletRequest
​    SessionScope                  :一次会话范围.            session                HttpSession
​    ApplicationScope         :应用范围                    application        ServletContext
JSP的动作标签
标签的作用:简化代码.
<jsp:forward />                        :用于页面的转发.
<jsp:forward page="/demo1-jsp/demo3-object/demo3.jsp">/jsp:forward
<jsp:include />                        :用于页面的包含.(动态包含)
静态包含和动态包含的区别?(<%@ include%>和jsp:include)
<jsp:param />                        :用于带有路径的标签下,传递参数.
<jsp:useBean />                        :用于在JSP中使用JavaBean.
<jsp:setProperty />                :用于在JSP中向JavaBean设置属性的.
<jsp:getProperty />                :用于在JSP中获得JavaBean的属性.
. 和 [] 的区别.  
[]用于有下标的数据(数组,list集合) .用于有属性的数据(map,对象)
如果属性名中包含有特殊的字符.必须使用[]
JSTL的概述
JSTL的标签库 : 包含了五类标签:
使用JSTL:
JSTL 的核心标签的用法
JSTL的提供EL的函数库
​     <h1>JSTL提供的EL的函数库</h1>
​     ${ fn:contains("Hello World","Hello") }
​     ${ fn:length("HelloWorld") }
​     ${ fn:toLowerCase("ABCDE") }
​     <c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'>
​             ${ i }
​     /c:forEach

JSP的概述:
​    JSP:Java Server Pages.
​    JSP的运行原理:翻译成Servlet,编译成Class进行执行.
JSP的脚本元素:
​     <%!   %>
​     <%    %>
​     <%=   %>
JSP的注释:
​    JSP的三个指令:
​           page,include,taglib   <%@ 指令名称 属性=”属性值”%>
   JSP的内置对象:
​          pageContext,request,session,application,page,response,out,config,exception
   JSP的四个作用范围
​           PageScope                                :当前页面
​          RequestScope                        :一次请求范围.
​          SessionScope                        :一次会话
​          ApplicationScope                :整个应用范围.
EL的概述
EL:Expression Language
EL的作用:
​        获取数据${  }
​        执行运算
​        操作web开发中常用的对象${param }
​        调用Java中方法:
JSTL的概述:
​    JSTL:JSP 标准标签库.
​    JSTL标签库:core,fmt,sql,xml,fn
​    JSTL的核心标签库:
​         if,forEach
​    JSTL的函数库:
​        ${fn:}
JSP的设计模式:
​         M:Model
​         V:View
​         C:Controller
​     MVC和EE开发三层结构的关系
​     反射:(*)
​         获得类的字节码对象:Class对象.三种获得的方式.
​             类名.class;
​             类的实例.getClass();
​             Class.forName();
​         获得构造器:Constructor
​         获得属性:Field
​         获得方法:Method
JDBC的事务管理:
​     事务的概念:指的是逻辑上的一组操作,要么一起成功,要么一起失败.
​     事务的特性:
​    解决读问题:
​         未提交读:以上情况都能发生.
​         已提交读:解决脏读,但是不可重复读和虚读有可能发生
​         重复读:解决脏读和不可重复读,但是虚读有可能发生.
​         串行化:可以解决以上的所有情况.
​    JDBC进行事务的管理:
​         Connection:
​             setAutoCommit(boolean flag);
​             commit();
​             rollback();






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