1.jsp
- java server pages(java服务器页面)
- 本质上jsp就是一个servlet,在html代码中嵌套java代码,
- 运行在服务器端,处理请求,生成动态的内容.
对应的java和class文件在tomcat目录下的work目录
后缀名 .jsp执行流程:
1.浏览器发送请求,访问jsp页面 2.服务器接受请求,jspSerlvet会帮我们查找对应的jsp文件 3.服务器将jsp页面翻译成java文件. 4.jvm会将java编译成.class文件 5.服务器运行class文件,生成动态的内容. 6.将内容发送给服务器, 7.服务器组成响应信息,发送给浏览器 8.浏览器接受数据,解析展示
jsp的脚本:
<%...%> java程序片段 生成成jsp的service方法中 <%=...%> 输出表达式 生成成jsp的service方法中,相当于在java中调用out.print(..) <%!...%> 声明成员 成员位置.
2. 会话技术
- 当用户打开浏览器的时候,访问不同的资源,知道用户将浏览器关闭,可以认为这是一次会话.
2.1 作用:
- 因为http协议是一个无状态的协议,它不记录上次访问的内容.用户在访问过程中难免会产生一些数据,
通过会话技术就可以将起保存起来.
例如:
用户登录 验证码 购物车 访问记录 .....
2.2 分类:
2.2.1 cookie:浏览器端会话技术
- cookie是由服务器生成,通过response将cookie写回浏览器(set-cookie),保留在浏览器上,下一次访问,浏览器根据一定的规则携带不同的cookie(通过request的头 cookie),我们服务器就可以接受cookie
cookie的api:
new Cookie(String key,String value)
写回浏览器:
response.addCookie(Cookie c)
获取cookie:
Cookie[] request.getCookies()
常用方法:
getName():获取cookie的key(名称) getValue:获取指定cookie的值 setMaxAge(int 秒):设置cookie在浏览器端存活时间 以秒为单位,若设置成 0:删除该cookie(前提必须路径一致) setPath(String path):设置cookie的路径. 当我们访问的路径中包含此cookie的path,则携带 默认路径: 访问serlvet的路径,从"/项目名称"开始,到最后一个"/"结束 例如: 访问的serlvet路径: /day11/a/b/hello 默认路径为: /day11/a/b 手动设置路径:以"/项目名"开始,以"/"结尾;
注意:
- cookie不能跨浏览器
- cookie中不支持中文
2.2.2 session:服务器端会话技术
当我们第一次访问的服务器的时候,服务器获取id,
能获取id
要拿着这个id去服务器中查找有无此session
若查找到了:直接拿过来时候,将数据保存,需要将当前sessin的id返回给浏览器
若查找不到:创建一个session,将你的数据保存到这个session中,将当前session的id返回给浏览器
不能获取id
创建一个session,将你的数据保存到这个session中,将当前session的id返回给浏览器
获取一个session:
HttpSession request.getSession()
域对象:
xxxAttribute
生命周期:
创建:第一次调用request.getsession()创建
销毁:
服务器非正常关闭
session超时
默认时间超时:30分钟 web.xml有配置
手动设置超时:setMaxInactiveInterval(int 秒) 了解
手动干掉session
★session.invalidate()
存放的私有的数据.