day16-cookie
###【会话技术】
什么是会话 :用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
* 常见的会话技术:
* Cookie :将数据保存到客户端浏览器.
* Session :将数据保存到服务器端.
* 为什么使用会话技术?
* 私有的数据,购物信息数据保存在会话技术中.
* 使用会话技术:
### 【Cookie技术的使用】
* 向浏览器保存数据:
* HttpServletResponse有一个方法:
* void addCookie(Cookie cookie);
* 获得浏览器带过来的Cookie:
* HttpServletRequest有一个方法:
* Cookie[] getCookies();
* 创建一个Cookie对象:
* Cookie(String name,String value);
###【JSP的简单概述】
* 什么是JSP :
* JavaServer Pages(Java服务器端页面).JSP = Java代码 + HTML的元素 + JSP内置东西
* SUN公司为什么推出JSP动态网页开发技术:
* SUN公司推出的Servlet技术进行动态网页开发.发现Servlet自身有不足没有办法与ASP,PHP技术竞争.想在动态网页中输出表单.在Servlet中获得PrintWriter out =response.getWriter();
* out.println(“<form action=’’ method=’’>”);
* out.println(“</form>”);
* SUN又推出了动态的网页开发技术就是JSP.
* JSP的执行过程:
* JSP会被翻译成Servlet,编译成class进行执行的.
* JSP的嵌入Java代码:JSP的脚本元素
* <%! %> :翻译成类中的成员部分. 定义变量,定义方法,定义类.Servlet是线程不安全的,尽量少在类中定义成员属性!!\
* <% %> :翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
* <%= %> :翻译成service方法内部的out.print();
### 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的概述】
Cookie本身是有大小和个数的限制.Session没有限制.Cookie的数据保存在客户端,Session数据保存在服务器端.
* Session的执行原理:基于Cookie的.
* 使用Session:
* 获得Session:
* request.getSession();
### Session是域对象:
session何时创建和销毁?作用范围:
* 创建:服务器端第一次调用getSession()创建session.
* 销毁:三种情况销毁session:
* 1.session过期. 默认过期时间为30分钟.
* 2.非正常关闭服务器.如果正常关闭session序列化到硬盘.
* 3.手动调用session.invalidate();
* 作用范围:多次请求.(一次会话)
day18-EL&JSTL与MVC初识
### 【JSP的脚本】
<% %> :翻译成Servlet中service方法内部的内容. 定义类,变量
<%= %> :翻译成Servlet中service方法中out.print();
## 【JSP的指令】
* 指令的语法:
<%@ 指令名称属性名称=”属性值” 属性名称=”属性值” ...%>
* JSP中有三个指令:page指令, include指令, taglib指令.
* JSP中page指令:<%@ page %> -- 设置JSP的.
* language :JSP脚本中使用的语言.现在只能写java.
* **contentType :设置浏览器打开这个JSP的时候采用的默认的字符集的编码.**
* **pageEncoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码.**
* **import :在JSP中引入类对象.但是import可以出现多次**
< %@pageimport="java.util.ArrayList"%>
< %@pageimport="java.util.List"%>
* extends :设置JSP翻译成Servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBase,这个值要想修改,这个类必须是HttpServlet的子类
* autoFlush :设置JSP的缓存自动刷出.true:自动刷出.
* buffer :设置JSP的缓冲区的大小,默认8kb.
* session :设置在JSP中是否可以直接使用session对象.默认值是true.
* isELIgnored :设置在JSP中是否忽略EL表达式.默认值是false不忽略.
* errorPage :设置错误友好页面的提示.
* isErrorPage :通过这个设置显示JSP的错误信息.
* 设置全局的错误友好页面:
* 在web.xml中设置:
* 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大内置对象:
* \* request HttpServletRequest getParameter(),setAttribute(Stringname,Object value);
\* response HttpServletResponse setHeader(String name,Stringvalue);getOutputStream();getWriter();
\* session HttpSession setAttribute();getAttribute();
\* application ServletContext setAttribute();getAttribute();
\* page Object toString();wait();
\* pageContext PageContext setAttribute();getAttribute();
\* config ServletConfig getServletName();getServletContext();
\* out JspWriter write(),print();
\* exception Throwable getMessage(),getCause(); 设置isErrorPage=”true”
* page内置对象 :真实对象是Object,就是JSP翻译成Servlet后的类的引用.
* 不是out真实对象JspWriter ,response获得Writer是PrintWriter.
* **pageContext内置对象 :**
* **获得其他的8个内置对象 :编写通用性代码或者框架的时候.**
* **向JSP的四个域中存取数据 :**
* JSP的四个域范围:
***PageScope :****当前页面中有效. pageContext PageContext**
***RequestScope :****一次请求范围. request HttpServletRequest**
***SessionScope :****一次会话范围. session HttpSession**
***ApplicationScope :****应用范围 application ServletContext**
###【JSP的动作标签】列出6个.
* 标签的作用:简化代码.
* < jsp:forward /> :用于页面的转发.
* < jsp:forwardpage="/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的属性.
###EL表达式
* 为什么学习EL:
* 简化JSP的代码,而且减少<%%>
* 使用EL表达式:
* 语法:${ EL表达式 }
* EL的功能:
* 获取数据:(JSP的四个域)
* 执行运算:
* 操作WEB开发的常用的对象:
* 调用Java中方法:--很少用.
### 【EL操作WEB开发的常用对象11个】
< h1>EL功能三:操作WEB开发常用的对象</h1>
<!--
pageScope,requestScope,sessionScope,applicationScope- 获取JSP中域中的数据
param,paramValues - 接收参数.
header,headerValues- 获取请求头信息
initParam - 获取全局初始化参数
cookie -WEB开发中cookie
pageContext - WEB开发中的pageContext.
-->
< h3>接收请求的参数</h3>
<%= request.getParameter("id") %>
<%= request.getParameter("name") %>
<%=Arrays.toString(request.getParameterValues("hobby")) %>
< hr/>
${ param.id }
${ param.name }
${ paramValues.hobby[0] }
${ paramValues.hobby[1] }
< h3>获取请求头</h3>
<%= request.getHeader("User-Agent")%>
< hr/>
${ header["User-Agent"] }
< h3>获取全局初始化参数</h3>
${ initParam.username
< h3>获取Cookie中的值</h3>
${ cookie.history.value }
< h3>获取PageContext中的对象</h3>
IP地址:${pageContext.request.remoteAddr }
工程路径:${pageContext.request.contextPath }
|
|