一、会话技术
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分钟就会自动销毁
session-config
session-timeout30/session-timeout
/session-config
二、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)jsp:useBean id=对象名 class=包名.类名 scope=作用范围(request/page/application/session)/
jsp:setProperty name=javaBean对象 property=javaBean对象属性名 param=username/
jsp:getProperty name=javaBean对象 property=javaBean对象属性名 /
2)jsp: include page=included.jsp flush=true / 动态包含 多个.class字节码文件
3) jsp:forward page=/index.jsp
jsp:param name=msg value=hehe/
/jsp:forward
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中的初使化参数