知识点:
session
文件上传
Session的生命周期(同一浏览器,无论关闭与否,使用同一个session会话,直到session销毁) - 魔女技术团队 - 博客园 (cnblogs.com)
一 session
1)session:会话
在服务器端存储信息
指客户与服务器的会话
当用户通过浏览器访问服务器的某个页面时,在服务器开辟一个内存空间session
每个session 有唯一的id
2)session过期
关闭浏览器
session过期
session销毁
3)session的常用方法
1)作用域
setAttribute()
getAttribute()
removeAttribute()
2)其他方法
session.setMaxInactiveInterval(int time);
设置session有效时间
单位为‘’秒‘’ 默认有效时间30min
session.invalidate();
销毁session
getId():
获取sessionId值
4)session的特点
在/c控制器中设置Cookie值,并添加到响应对象中,响应对象带着这些cookie中定向到index页面
可以看到index页面中JSESSIONID值被系统服务器默认覆盖了,JSESSIONID123的value值
变成了最后设置的cookie2的属性值。
本质上还是因为cookie存值是以map类型的键值对,无序且不可重复
5) sessionId在销毁时的变化
用户退出登录,也就是销毁服务器的对应生成session内存,再次访问服务器时sessionId
发生改变
用户已登录时
用户退出登录销毁session时
二 文件上传
前端显示界面 上传文件在servlet中实现代码
文件上传如果重名时,会自动覆盖已存入磁盘的文件。所以需要重新改名,自建一个util类
实现对扩展名的提取和随机生成不同的名称。FileUtil
public class FileUtil {
private FileUtil(){};
public static String getFileType(String fileName){
return fileName.substring(fileName.lastIndexOf('.'));
}
public static String getFileName(){
UUID uuid = UUID.randomUUID();
return uuid.toString().replace("-","");
}
}
在磁盘上储存文件时,将文件路径部署到TomCat中
将图片文件的存贮路径和浏览路径写成常量值。封装到 ImgUtil
public interface ImgUtil {
String GAT_PATH = "http://localhost:8080/imgs/";
String SAVE_PATH = "E:\\imgs\\";
}