1.什么是会话(session)
一个会话就是在一段时间内,一个客户端与Web服务器的一连串的交互过程,同一个session对象的sessionid 相同
2.session对象常用方法
String getid() 获取sessionid String id = session.getid();
void setMaxInactiveInterval(int interval) 设定session的非活动时间 session.setMaxInactiveInterval(600); 单位是秒
int getMaxInactiveInterval() 获取session的有效非活动时间(以秒为单位)
void invalidate() 设置session对象失效
void setAttribute(String key,Object value) 以key/value的形式保存对象值 session.setAttribute("text","hahaha");
Object getAttribute(String key) 通过key获取对象值 String aa = (String)session.getAttribute("text");
void removeAttribute(String key) 从session中删除指定名称(key)所对应的对象
3.session与窗口的关系
每个session对象都与一个浏览器窗口对应,重新开启一个浏览器窗口,可以重现建立一个session对象(不同版本浏览器有差别)
通过超链接打开的新窗口,新窗口的session和其父窗口的session相同
4.session.getAttribute(String key)的返回值是一个Object,必须进行强制类型转换
5.include指令
简单理解 将两或多个个jsp文件连接输出到同一个页面
作用和用途:当有一个很多个页面都需要用到的代码,例如登录,就可以写到一个jsp文件中,需要用的时候调用即可
6.application对象
application实现用户之间的数据共享
application对象的常用方法
void setAttibute(String key,Object value); 以key/value的方法保存对象值 application.setAttibute("text","hahahahah");
Object getAttibute(String key); 以key获取对象值 application.getAttibute("text");
String getRealPath(String path); 返回相对路径的真实路径
7.统计网站访问次数
<% Integer count = (Integer)application.getAttribute("count'); if(count!=null){ count = 1 + count; }else( count=1; ) application.setAttribute("count",count); %> <% Interger i = (Interger) application.getAttribute("count'); out.println("您好,第"+i+"次访问") %>
通过set方法改变值,get方法拿到值来实现计数
8.jsp常用的内置对象
out 用于向客户端输出信息
request 主要用于处理客户端请求的数据信息
response 用于响应客户端请求并向客户端输出信息
session 用于记录会话状态的相关信息
application 类似于系统的全局变量,用于实现Web应用中的资源共享
9.对象的作用域
application作用域 对应上下文 及这次服务器的运行
session作用域 对应一个用户会话 及这个浏览器
request作用域 对应一次请求
page作用域 对应一个jsp文件的运行
page作用域:
page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问。
page作用域内可以使用pageContext对象的setAttribute()和getAttibute()方法访问具有这种范围类型的对象。
pageContext对象本身也属于page作用域,具有page作用域的对象被绑定到pageContext对象中。
代码;
request作用域:
request作用域的对象是与客户端的请求绑定在一起,其作用域的范围要比page作用域的范围大。
注意:
因为request对象对于每次客户端的请求都是不同的,所以对于任何一个新的请求,都要重新创建该作用域内的对象。而当请求结束后,创建的对象也随之失效。
代码:
session作用域:
JSP容器为每一次会话创建一个session对象。
在会话有效期间内,只要将数据绑定到session中,则该数据可以被本次会话的其他资源所访问。
代码:
application作用域.
application的作用域则面对整个Web应用程序W,即当服务器启动后就会创建一个application对象,被所有用户共享。
当数据绑定到JSP的application对象中时,在Web应用程序的运行期间,所有的页面都可以访问application作用域的对象。
代码:
在不同浏览器中展示的结果:
四个作用域的范围大小:
page作用域<request作用域<session作用域<appliction作用域
10.page作用域指本个jsp页面的范围
request作用域内的对象则是和客户端的请求绑定在一起
session作用域 一次会话
application作用域面对整个Web应用程序
11.对象作用域范围
12.什么是Cookie
cookie是Web服务器保存在客户端的一系列文本信息
Cookie newCookie = new Cookie(String key, String value);
写入cookie
response.addCookie(newCookie);
读取cookie
Cookie[] cookies = request.getCookies();
15.cookie对象常用的方法
方法名称 |
说 明 |
void setMaxAge(int expiry) |
设置cookie的有效期,以秒为单位 |
void setValue(String value) |
在cookie创建后,对cookie进行赋值 |
String getName() |
获取cookie的名称 |
String getValue() |
获取cookie的值 |
int getMaxAge() |
获取cookie的有效时间,以秒为单位 |
16.cookie和session对比
1.都用于保存用户状态,都会过期
2.session保存在服务器端的内存中,而cookie以文本文件的方式存于客户端
3.session中保存的是Object类型,cookie保存的是String类型
4.session随会话结束将其存储的数据销毁,而cookie可以长期保存在客户端
5.session用于保存重要的信息,cookie用于保存不重要的用户信息
6.cookie中对保存对象的大小是有限制的
JSP访问数据库
分层实现
- 数据访问层(DAO)
- 表示层(JSP)
非空验证
提示错误信息并保留用户所填信息
(详细信息在专项专题中具体实现)
JavaBean
优势:
- 解决代码重复编写,减少代码冗余
- 功能区分明确
- 提高代码的维护性
分类:
- 封装数据
- 封装业务
javaBean{共有类 无参的构造方法 属性私有 getter和setter方法 }
总结: