cookie
cookie是将数据保存到客户端,来实现多次请求的数据共享
cookie是一个普通类
由响应对象使用addcookie的方法添加cookie对象
请求对象使用getcookies得到所有的cookie对象
cookie的属性:name、value、path(cookie路径)、domain(域名)、maxage(存活时间)
注意细节:
name:字母加数字
数量:一个网站最多20个cookie对象,存储大小不能超过4kb,所有的网站不能超过300个
存活时间:0代表立即清除 负整数代表当前对话有效是存活时间
访问 路径:取自第一次访问的资源路径前缀 可以共享cookie
//设置响应的文本格式
resp.setContentType("text/html;charset=utf-8");
//通过响应对象写一个提升信息
resp.getWriter().write("欢迎访问本网站,你上次访问的时间是:");
//创建Cookie对象 指定name和value
Cookie cookie = new Cookie("time",System.currentTimeMillis()+"");
//设置最大存活时间
cookie.setMaxAge(3600);
//通过响应对象将Cookie对象添加到客户端
resp.addCookie(cookie);
//通过请求对象获取Cookie对象
Cookie[] arr = req.getCookies();
//写出访问时间
for (Cookie cookie1 : arr) {
if (cookie1.getName().equals("time")){
String value = cookie1.getValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String format = sdf.format(new Date(Long.parseLong(value)));
resp.getWriter().write(format);
}
}
session
Httpsession:会话域 就是同一次会话中多次请求的作用域
服务器会话管理技术
常用方法:getAttribute、setAttribute、remoteAttribute、getId、invalid:这个是让session理解失效
获取session:用req.getSession()获取session对象
getSession():里面参数可以是true和false,如果是true的话,当使用该方法得到session对象时,先会查看是否会携带jsesessionid,如果带了,根据这个id去服务器内存空间查找是否有该httpsession对象,如果有就这个对象,拿到这个对象可以继续使用,如果没有,就创建一个对象并分配一个jsesessionid给该对象给其使用;如果没有带id的话,创建一个session对象并分配一个jsesessionid发送给客户端使用
如果是false的话,如果没有jsessionid或者没有找到携带jsesessionid的httpsession对象就不会去创建对象
使用,当客户端发起请求是,servlet接收到请求并且处理(设置一个键值对给session对象),然后接着客户端再次发起请求给另外一个servlet接收了,当前servlet就可以使用前面一个servlet的session对象了。
jsp
java server page 动态网页技术标准
本质是一个servlet 可以使用HTML和java语法 但是要配合<%%>使用
语法:
<% num=1 %> <%--局部变量num=1--%>
<%! num=1 %> <%--成员变量 num=1--%>
<%= 内容 %> <%--向浏览器输出内容--%>
<%--局部变量直接用名字 成员变量则使用this.num--%>
<%-- 变量一个集合案例 --%>
<%-- 注意:html标签在jsp中是不需要加<%%>的,可以直接使用java语法需要添加<%%>配合使用 --%>
<%
ArrayList<Student> list = (ArrayList<Student>)session.getAttribute("list");
System.out.println(list);
for (Student stu : list) {
%>
<tr>
<td>
<%=stu.getStuname()%>
</td>
<td>
<%=stu.getSid()%>
</td>
<td>
<%=stu.getScore()%>
</td>
</tr>
<%
}
%>
jsp指令
jsp的九大隐式对象
request、response、pagecontext、session、page、out、application、config、exception
pagecontext可以获取其他的八大隐式对象
application是servletcontext对象
out输出对象
四大域对象:
servletContext:应用域对象 最大的
servletrequest:请求域对象 ----链
httpSession:会话域对象—一次会话发起的多次请求
pagecontext:当前页面的作用域
mvc
m:model 封装数据模型
v:view 视图 动态 jsp 静态html
c:controller 控制器 处理相应和请求
一般在写完一个jsp页面提交会跳转到servlet控制器,然后servlet控制器操作完了在跳转带jsp页面。