方法参数要什么给什么 创建对象的几种方式
1、直接new
2、单例模式 | 提供静态方法
3、工程模式构建 stu StuFactory StuBuilder
1、发送Cookie
发送cookie给客户端
Cookie cookie = new Cookie(“aa”, “bb”); //给响应添加一个cookie
response.addCookie(cookie);
2、接收cookie
//获取客户端带过来的cookie
Cookie[] cookies = request.getCookies();
if(null != cookies) {
for (Cookie c : cookies) {
String CookieName = c.getName();
String CookieValue = c.getValue();
System.out.println(CookieName+"..."+CookieValue);
}
}
3、先写cookie//可以给客户端添加多个cookie
Cookie cookie = new Cookie("zhangsan","18");
response.addCookie(cookie );
Cookie cookie1 = new Cookie("lisi","18");
response.addCookie(cookie1 );
4、cookie的有效期,默认情况下,关闭浏览器,cookie就没有了 —》针对没有设置cooike有效期
expiry:有效
//正值:表示在这个数字过后,cookie将会失效。默认时间是秒
//负值:关闭浏览器。那么cookie就失效,默认值是-1
5、设置有效期
cookie.setMaxAge(606024*7);
6、赋值新的值
//cookie.setValue(newValue);
7、用于指定只有请求了指定的域名,才会带上该cookie
//cookie.setDomain(".tao.com");
8、只有访问该域名下的CookieServlet01的这个地址路径才会带cookie
cookie.setPath("/CookieServlet01");
9、显示最近访问时间
@WebServlet("/CookieServletTest")
public class CookieServletTest extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//获取提交过来的数据
String userName = request.getParameter("userName");
String password = request.getParameter("password");
if("admin".equals(userName) && "123".equals(password)) {
//获取cookie last -- time
Cookie[] cookies = request.getCookies();
//从数组里面找出需要的cookie 。CookieUtil.findCookie此为工具类
Cookie cookie = CookieUtil.findCookie(cookies, "last");
//第一次登录没有cookie
if(cookie == null) {
//代表当前系统时间 System.currentTimeMillis()
Cookie c = new Cookie("last",System.currentTimeMillis()+"");
//设置cookie有效期
c.setMaxAge(60*60);
response.addCookie(c);
response.getWriter().write("欢迎您!"+userName);
}else {
//1、去以前的cookie第二次登录,有cookie
long lastTime = Long.parseLong(cookie.getValue());
//2、输出到界面
response.getWriter().write("欢迎您!"+userName+",上次来访时间是:"+new Date(lastTime));
//3、重置登录时间
cookie.setValue(System.currentTimeMillis()+"");
response.addCookie(cookie);
}
}else {
response.getWriter().write("登录失败!");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
此为工具类
public class CookieUtil {
/**
* 从一组cookie数组中找到我们需要的cookie对象
* @param cookies
* @param name
* @return
*/
public static Cookie findCookie(Cookie[] cookies, String name) {
if(cookies != null) {
for (Cookie c : cookies) {
if(name.equals(c.getName())) {
return c;
}
}
}
return null;
}
}
cookie会保存在客户端,所以有安全隐患,大小和个数限制----解决这个问题出现session