一、MVC模式
MVC是一种分层开发的模式,其中:
- M: Model,业务模型,处理业务
- V: View,视图,界面展示
- C: Controller,控制器,处理请求,调用模型和视图
二、三层架构
- 数据访问层: 对数据库的CRUD基本操作
- 业务逻辑层: 对业务逻辑进行封装,组合数据访问层层中基本功能,形成复杂的业务逻辑功能
- 表现层: 接收请求,封装数据,调用业务逻辑层,响应数据
包名:controller 包名:service 包名:dao
二、Cookie基本使用
- Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
- Cookie基本使用
①发送Cookie对象
1.创建Cookie对象,设置数据:Cookie cookie = new Cookie("key" ,"value");
2.发送Cookie到客户端:使用response对象:response.addCookie(cookie);
②获取Cookie对象
1.获取客户端携带的所有Cookie,使用request对象
Cookie[]cookies = request.getCookies(); //获取的是一个数组对象需要循环遍历
2.遍历数组,获取每一个Cookie对象: for
3.使用Cookie对象方法获取数据:cookie.getName();cookie.getValue();
//下面是定义的一个获取Cookie 的方法,可以直接通过Cookie的名字获取内容
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
③Cookie原理
Cookie的实现是基于HTTP协议的
- 响应头: set-cookie
- 请求头: cookie
④Cookie存活时间
默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁setMaxAge(int seconds):设置Cookie存活时间
1.正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除
2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
3.零:删除对应Cookie
Cookie是不能直接存储中文的:如需要存储,则需要进行转码:URL编码
//存中文数据
String str = "中文";
str = URLEncoder.encode(str,"utf-8");
Cookie cookie = new Cookie("name", str);
//取中文数据
String s = cookie.getValue();
URLDecoder.decode(s,"utf-8");
三、Session的基本使用
服务端会话跟踪技术:将数据保存到服务端
JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能使用:
1.获取Session对象
HttpSession session = request.getSession();
2. Session对象功能:
void setAttribute(String name, Object o):存储数据到session域中
Object getAttribute(String name):根据key,获取值
void removeAttribute(String name):根据key,删除该键值对
①Session的原理
Session的原理是基于Cookie 的
②Session使用细节
Session钝化、活化:(服务器重启Session的数据任然保留)
钝化:在服务器正常关闭后, Tomcat会自动将Session数据写入硬盘的文件中>
活化:再次启动服务器后,从文件中加载数据到Session中
Seesion 销毁:
1. 默认情况下,无操作,30分钟自动销毁
<session-config>
<session-timeout>30</session-timeout>
</session-config>
2.调用Session对象的invalidate()方法
四、Cookie和Session的区别
Cookie和Session都是来完成一次会话内多次请求间数据共享的区别:
存储位置: Cookie是将数据存储在客户端,Session将数据存储在服务端
安全性: Cookie不安全,Session安全
数据大小: Cookie 最大3KB,Session无大小限制
存储时间:Cookie可以长期存储,Session 默认30分钟
服务器性能:Cookie不占服务器资源,Session占用服务器资源