一、mvc模式
M(Model)V(View)C(Controller)——架构模式,主要是一种“分层”思想(面向接口编程,package包分的细一点)
- Model(模型)—模型代表一个存取数据的对象或JAVAPOJO.它也可以带有逻辑,在数据变化时更新控制器。
- View(试图)—视图代表模型包含的数据的可视化。
- Controller(控制器)—控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图于模型分离开。
- Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)
- Controller(Servlet)调用核心业务逻辑——Model部分,获得结果
- Controller(Servlet)将逻辑处理结果交给View (JSP),动态输出HTML内容◆动态生成的HTML内容返回到浏览器显示
- 动态生成的HTML内容返回到浏览器显示
- MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不会通过out.append()动态生成HTML代码;JSP中也不会充斥着大量的业务代码。这大大提高了代码的可读性和可维护性。
这是由于传统MVC模式中的三个部分没有明确定义、开发层次划分的细化加深和实际开发应用情形的愈加复杂,使得mvc模式的设计需要根据实际情况进行更为精心的理解和设计。所以mvc模式更多的体现在—种划分层次的思想,而不是固定的分包模板。
二、Cookie和Seeion
1、Cookie
Cookie的概念
Cookie是保存在客户端(浏览器)的小文本,保存的位置分两种
(1)Cookie可能保存在客户端浏览器的所占内存,关闭浏览器后,Cookie就不再存在
(2)Cookie也可能保存在客户PC机的硬盘上,设置有效时间,超过有效时间后失效
Cookie的常见应用
简化登录:很多网站在登录时,可以选择多久之内不需要登录,在选择的时间段内,不用登录即可以到欢迎页面。
记录浏览记录:购物网站,每次登录后,会看到曾经浏览过的商品信息。
Cookie的使用
Cookie能够把小文本保存到客户端,在服务器与客户端进行传输。然而,Cookie容易造成信息泄露,另外,客户端可以通过设嚣阻止Cookie,也可能手工清除Cookie,
因此,使用Cookie的原则:
*不用cookie保存对保密性要求高的信息,例如银行卡密码等
*不用cookie实现必要功能,防止cookie被删除后出现错误可以说:cookie用来实现“锦上添花”的功能,也就是说,一旦cookie被禁止或者被删除,应用依然能正常运行
Cookie对象
Servlet API中,存在类Cookie
Cookie cookie=new Cookie("username","qqq");
创建Cookie
- Cookie类中定义了一系列的方法
类型 | 方法名称 | 说明 |
void | setMaxAge(int expiry) | 设置cookie的有效期,以秒为单位,Cookie保存在硬盘上,否则保存在内存中 |
void | setValue(String value) | 在Cookie创建后,对cookie进行赋值获取 |
String | getName() | 获取Cookie的名称 |
String | getValue() | 获取Cookie的值 |
String | getMaxAge() | 获取Cookie的有效时间,以秒为单位 |
保存及获取Cookie
- Cookie要保存到客户端,凡是写到客户端的方法,基本都在响应中。
HttpServletResponse中提供了方法,把Cookie保存到客户端。
response.addCookie(newCookie)
- 再次访问与保存Cookie相同域名的网站时,HTTP协议将把有效时间内的Cookie都发送到服务器,容器将把Cookie封装到请求中。
HttpServletRequest类提供了获取Cookie对象的方法
Cookie[] cookies = request.getCookies();
服务器获取浏览器端保存的Cookie
Cookie的生命周期
问题1:cookie可以记录数据,但是数据需要一直记录永远不删除吗?
答:数据不删除,数据量越来越大,影响存储空间,数据量越大网络传输cookie慢,服务器解析cookie,也是效率不高。
问题2:那么如何删除cookie数据?
答:我们在服务器创建cookie给浏览器,但是我们无法操作浏览器,因此,在cookie创建的时候设置cookie的生存时间,时间—到自动去死
如果不设置过期时间,默认是多少?
答:浏览会话结束时——浏览器关闭的时候
- 设置Cookie生存时间
30秒后,Cookie username-qhc消失