一、会话技术

1、概念:在一次会话中共享数据,在web中指,浏览器和服务器的一次通信。包含多次请求,和多次响应。

可以在一次会话的多次请求中共享数据。

2、客户端会话技术:Cookie

将数据保存在客户端 服务器压力不大 但数据不安全;Cookie默认存储在浏览器的内存中

//发送cookie:

Cookie c = new Cookie("msg","hehe");

response.addCookie(c);

//接受cookie:

Cookie[] cs = request.getCookies();

if(cs != null){

for(Cookie c : cs){

String name = c.getName();

if("msg".equals(name)){

String value = c.getValue();

}

}

}

//设置Cookie的存活时间,可以使其持久化

setMaxAge(int second):

正数:存在硬盘上

负数:默认值-1 存在浏览器内存中

0:删除cookie

//使用cookie传递中文

Cookie uc = new Cookie("username", URLEncoder.encode(username, "utf-8"));//编码

username = URLDecoder.decode(c.getValue(), "utf-8");//解码

3、服务端会话技术:Session

将数据保存在服务端 数据安全 服务器压力大;session依赖于cookie存在

//1.获取session

HttpSession session = request.getSession();

//2.存储数据

session.setAttribute("msg", "hehe");

//3.获取数据

Object msg = session.getAttribute("msg");

//销毁session

session.invalidate()

//销毁 session 超时30分钟就会自动销毁

30

二、jsp —— java servlet page

1、概念:是一种既可以写HTML语言也可以写Java代码的页面,JSP的本质是一个Servlet

语法:

<%! int num=1000; %> 生成的Java代码在成员位置

<% System.out.println("hello"); %> 生成的代码在service()方法中

<%= "hello world" %> out.print("hello word");

<%-- jsp专用注释 --%> 注释

2、三大指令:配置JSP页面的属性或者导入一些额外的内容

<%@ 指令名称 属性名="属性值" %>

1)page指令

language:java

import:导入软件包

pageEncoding:utf-8

autoFlush:自动刷新

buffer:缓冲区大小

errorPage:指定错误页面

isErrorPage:是否是错误页面 可以使用内置对象exception

2)taglib指令

导入额外的内容

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

prefix:指定标签前缀,这个东西可以随意起名

uri:指定第三方标签库的uri(唯一标识)

3)include指令

静态包含<%@include file="页面"%> 包含后,只会存在一个.class文件

3、六个动作标签

1)

2) 动态包含 多个.class字节码文件

3)

4、九个内置对象

1)out 输出对象 向客户端输出数据,字节流.如out.print("hello");

2)request 请求对象 接收客户端的http请求

3)response 响应对象 a:addCookie(Cookie cookie); b:sendRedirect("/wel.jsp")

4)session 会话对象 getAttribute(String name)

5)application 应用程序对象 它是ServletContext类的实例

6)page 页面对象 代表jsp这个实体本身,即当前页面有效.相当于java中的this

7)exception 例外对象 代表运行时的异常

8)pageContext 页面上下文对象 pageContext对象提供了对JSP页面内所有的对象及名字空间的访问

9)config 配置对象 jsp对应的servlet的配置,可以得到web.xml中的初使化参数