MVC概念
MVC 全称:Model 模型 View 视图 Control 控制器
VIew 视图:只负责数据和界面的显示,不接受任何与显示数据无关的代码,便于程序员和美工的分工合作—— JSP/HTML
Control 控制器:只负责接受请求,调用业务层的代码处理请求,然后派发页面,是一个“调度者”的角色——Servlet
转到某个页面。或者是重定向到某个页面
Model 模型:将与业务逻辑相关的数据封装为具体的 JavaBean类,其中不掺杂任何与数据处理相关的代码—— JavaBean/domain/entity/pojo
Cookie和Session
什么是 Cookie
Cookie 是服务器通知客户端保存键值对的一种技术
客户端有了 Cookie 后,每次请求都发送给服务器
每个 Cookie 大小不能超过 4kb
Cookie的创建
protected void creatCookie(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
//创建Cookie对象
Cookie cookie = new Cookie("key1","value1");
//通知客户端保存Cookie
resp.addCookie(cookie);
}
Cookie的获取
服务器获取客户端的 Cookie 只需要一行代码,req.getCookies( ) 返回 Cookie[ ]
获取后可遍历显示也可通过if判断单独显示
Cookie值的修改
方案一:
1、先创建一个要修改的同名的 Cookie 对象
2、在构造器同时赋于新的 Cookie值
3、调用 response.addCookie( Cookie );
Cookie cookie = new Cookie("key1","newValue1");
resp.addCookie(cookie);
方案二:
1、先查找到需要修改的 Cookie 对象
2、调用 setValue( )方法赋于新的 Cookie 值。
3、调用 response.addCookie( ) 通知客户端保存修改
//通过遍历循环查找到 要修改的 Cookie
cookie.setValie("newValue2");
//保存
resp.addCookie(cookie);
Cookie生命控制
Cookie 的生命控制指的是如何管理 Cookie 什么时候被销毁(删除)
setMaxAge( )
正数表示在指定的秒数后过期
负数表示浏览器关闭Cookie就会被删除(默认值是-1)
0表示马上删除Cookie
Cookie有效路径Path的设置
Cookie的Path的属性可以有效的过滤哪些Cookie可以发送给服务器,那些不发
Path属性通过请求的地址来进行有效的过滤
Cookie cookie = new Cookie();
Cookie.setPath(req.getContextPath()+"/abc");
resp.addCookie(cookie);
Cookie的免用户名登陆
需要把用户名保存为Cookie发送给服务器
在获取用户名和密码后 可将获取的信息包装为Cookie并设置生命周期
Session会话
什么是Sesiion会话?
1、Session就是一个接口 (HttpSession)
2、Seesion就是会话。是用来维护一个客户端和服务器之间关联的一种技术
3、每个客户端都有自己的一个Session会话。
4、Session 会话中,我们经常用来保存用户登陆之后的信息
如何创建Session和获取(id号,是否为新)
如何创建和获取Session,它们的API是一样的。
request.getSession( )
第一次调用是:创建Session会话
之后调用都是:获取前面创建好的Session会话对象
isNew( ); 可以判断到底是不是刚创建出来的(新的)
true 新的
false 之前创建的
每个会话都有一个身份号,也就是 ID 值。而且这个 ID 值是唯一的
getid( ) 得到 Session 的 id 值
Session域数据的存取
req.getSession( ).setAttribute(“key1”,“value1”); 存
Object key1 = req.getSession( ).getAttribute(“key1”); 取
Session 生命周期控制
public void setMaxInactiveInterval(int interval) 设置 Session 的超时时长,Session就会被销毁
值为正数表示超时时长,负数表示永不超时
public void getMaxInactiveInterval(int interval) 获取 Session 的超时时长
(默认超时时长1800秒)
因为在 Tomcat服务器中的配置文件 web.xml 中有默认以下的配置,它就表示配置了当前 Tomcat 服务器下所有的
Session 超时配置默认时长为:30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
invalidate( ) 设置Session超时