1、maven常用命令
mvn clean,mvn test,mvn compile,mvn package,mvn clean install
2、Maven依赖冲突如何解决?
Web工程依赖两个不同的,maven项目,依赖同一个artifactId但是版本不同,这时候就会产生mavenjar依赖冲突问题。使用命令dependency:tree查看依赖树,找到冲突的jar包,排除依赖。
3、DNS解析域名过程
把域名转换成IP地址,先读取本地host文件,本地文件没有,从当前电信网管获取对应IP( C:\Windows\System32\drivers\etc)
4、Servlet个生命周期?
构造方法: 创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象只调用1次。证明servlet对象在tomcat是单实例的。
init方法: 创建完servlet对象的时候调用。只调用1次。
service方法: 每次发出请求时调用。调用n次。
destroy方法: 销毁servlet对象的时候调用。停止服务器或者重新部署web应用时销毁servlet对象。只调用1次。
5、Cookie原理
1)服务器创建cookie对象,把会话数据存储到cookie对象中。new Cookie("name","value");
2) 服务器发送cookie信息到浏览器 response.addCookie(cookie);
举例: set-cookie: name=eric (隐藏发送了一个set-cookie名称的响应头)
3)浏览器得到服务器发送的cookie,然后保存在浏览器端。
4)浏览器在下次访问服务器时,会带着cookie信息
举例: cookie: name=eric (隐藏带着一个叫cookie名称的请求头)
5)服务器接收到浏览器带来的cookie信息
request.getCookies();
Cookie:用于存储会话数据
1)构造Cookie对象
Cookie(java.lang.String name, java.lang.String value)
2)设置cookie
void setPath(java.lang.String uri) :设置cookie的有效访问路径。有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时就会带着cookie信息,否则不带cookie信息。
void setMaxAge(int expiry) : 设置cookie的有效时间。正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。负整数:表示cookie数据保存浏览器的内存中。浏览器关闭cookie就丢失了。零:表示删除同名的cookie数据
void setValue(java.lang.String newValue) :设置cookie的值
3)发送cookie到浏览器端保存
void response.addCookie(Cookie cookie) : 发送cookie
4)服务器接收cookie
Cookie[] request.getCookies() : 接收cookie
注意:Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
6、为啥服务器不使用Cookie而引入Session?Session原理?
Cookie的局限:1)Cookie只能存字符串类型。不能保存对象2)只能存非中文。3)1个Cookie的容量不超过4KB。
如果要保存非字符串,超过4kb内容,只能使用session技术!!!
原理:HttpSession session = request.getSession();
1)第一次访问创建session对象,给session对象分配一个唯一的ID,叫JSESSIONID
new HttpSession();
2)把JSESSIONID作为Cookie的值发送给浏览器保存
Cookie cookie = new Cookie("JSESSIONID", sessionID);
response.addCookie(cookie);
3)第二次访问的时候,浏览器带着JSESSIONID的cookie访问服务器
4)服务器得到JSESSIONID,在服务器的内存中搜索是否存放对应编号的session对象。
if(找到){return map.get(sessionID);}
Map<String,HttpSession>]
<"s001", s1>
<"s001,"s2>
5)如果找到对应编号的session对象,直接返回该对象
6)如果找不到对应编号的session对象,创建新的session对象,继续走1的流程
结论:通过JSESSION的cookie值在服务器找session对象。