文章目录
MVC设计结构
mvc是一种架构模型,本身并没有新功能,只是对项目的一种规范,方便后期进行维护;mvc架构将模型(M),视图(V)和控制(C)割离开
MVC架构
- M:model模型,负责数据的处理
- V:View视图,负责数据的展示,用户的交互
- C:Controller:控制器,负责接收视图传递过来的据,以及模型处理完的结果返回的视图
MVC架构的作用
MVC的优缺点
-
优点:
- 耦合性低,方便维护,利于分工协作
- 重用性高
-
缺点:
- 使得项目架构变得复杂,对开发人员要求变高
会话
什么是会话
狭义上讲,从打开浏览器与服务器交互,到浏览器关闭的这个过程就可以称为会话。
为什么需要会话
如果没有会话,就没有办法识别谁是谁,如我在账号a上收藏了10件商品,退出后登录账号b要么账号b能看到账号a收藏的东西,要么账号a再次登录也看不到10件商品
会话跟踪技术
例如在一个会话中的请求如下:
常用的会话跟踪技术有隐藏表单域、URL重写、session和cookie
Session
session表示会话,每一个请求到达服务器后,服务器都会分配一个session对象,session对象包含有session空间和sessionid,默认当30分钟不对此session进行操作时则自动删除
cookie
-
获取cookie归属哪个域名
cookie.getDomain();
-
获取cookie最大的存活时间
cookie.getMaxAge();
-
设置cookie最大存活时间
cookie.setMaxAge(n);
-
设置cookie归属哪个域名
cookie.setDomain();
查询字符串
在链接后面添加?key=value&key=value…
示例:localhost:8080/login.jsp?id=1&name=123
表单隐藏域
将部分数据隐藏并传出
当循环输出时不需要输出ID时就可以使用
示例:<input type="hidden">123</input>
URL重写
当cookie被禁用时可以通过此方法来完成会话
案例:resp.encodeRedirectURL("index.jsp")
原理是在地址栏后面加上;jsessionid=FBE6F779651AF09FFDC286B642D5D3CA,来保诚禁用cookie时仍然能使用cookie
如何实现7天免登录
//on为复选框是否勾选
HttpSession session = req.getSession();
if ("on".equals(check)) {
//设置session最大生命周期
session.setMaxInactiveInterval(60*60*24*7);
//新建cookie
Cookie cookie = new Cookie("JSESSIONID", session.getId());
//设置cookie时长
cookie.setMaxAge(60*60*24*7);
//使这个cookie在访问网站时都被携带
cookie.setPath("/");
//向页面中添加这个cookie
resp.addCookie(cookie);
}else{
//取消七天免登录
session.setMaxInactiveInterval(60*30);
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(-1);
cookie.setPath("/");
resp.addCookie(cookie);
}
会议T出
会议T出即是你不能在两个地方同时登录一个账号,如QQ不能在两台手机同时登录
if(map.containsKey(name)){
//使之前的会话失效
map.get(name).invalidate();
map.remove(name);
}
//将当前的session加进去
map.put(name,session);
原文地址:https://www.jb51.cc/wenti/3281830.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。