一、会话技术
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-timeout>30</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中的初使化参数