Jsp--Cookie
2021-03-08 00:28
标签:for sub content 集合 地址 code hid rect url Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。 其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。 然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。 并会标注出Cookie的来源(哪个服务器的Cookie) 当客户端向服务器发出请求时会把所有这个服务器Cookie包含在请求中发送给服务器,这样服务器就可以识别客户端了 注意: Cookie不能跨浏览器, IE浏览器有IE浏览器的Cookie, Chrome浏览器有Chrome的cookie, IE浏览器使用Chrome浏览器的存放cookie 如果服务器端发送重复的Cookie那么会覆盖原有的Cookie 例:第一个请求服务器端发送的Cookie是:Set-Cookie: a=A; 第二请求服务器端发送的是:Set-Cookie: a=AA,那么客户端只留下一个Cookie,即:a=AA。 创建cookie 取值 1、Cookie的构造方法 2、获取cookie的value :getValue() 3、修改cookie的value :setValue() 4、获取cookie的name :getName() 5、设置cookie存放时间, 默认单位为妙 setMaxAge(int expiry) --即cookie的生命 6、设置cookie访问的路径 : setPath() cookie.setPath(request.getContextPath()+"/servlet"); 案例:实现历史记录 jsp页面 servlet页面 Jsp--Cookie 标签:for sub content 集合 地址 code hid rect url 原文地址:https://www.cnblogs.com/64Byte/p/12878238.html什么是Cookie
Cookie的覆盖
代码实现:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、创建一个cookice对象
Cookie a = new Cookie("aaa","123");
//设置cookie存在时间为7天
a.setMaxAge(7*24*60*60);
//更改储存地址setpath、不写默认为项目名
//request.getContextPath()当前项目名+访问的servlet后加上test
a.setPath(request.getContextPath()+"/test");
//将cookie相应的硬盘中
response.addCookie(a);
}
//将本项目中的所有cookie拿到
Cookie[] cookie = request.getCookies();
//遍历
if(cookie != null){
for (int i = 0; i ) {
Cookie c = cookie[i];
System.out.println(c.getName()+"-->"+c.getValue());
}
}
Cookie常用方法
Cookie cookie = new Cookie(String name,String value);
中文传值的编码与解码
代码实现:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie c = new Cookie("test",URLEncoder.encode("中国", "UTF-8"));
response.addCookie(c);
}
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i =0 ; i){
if(cookies[i].getName().equals("test")){
out.print(URLDecoder.decode(cookies[i].getValue(),"UTF-8"));
}
}
}
%>
body>
String path = request.getContextPath();
%>
h1>商品列表h1>
a href="/HistoryServlet?name=ThinkPad">ThinkPada>
br />
a href="/HistoryServlet?name=Lenovo">Lenovoa>
br />
a href="/HistoryServlet?name=Apple">Applea>
br />
a href="/HistoryServlet?name=HP">HPa>
br />
a href="/HistoryServlet?name=SONY">SONYa>
br />
a href="/HistoryServlet?name=ACER">ACERa>
br />
a href="/HistoryServlet?name=DELL">DELLa>
br />
hr/>
h1>历史记录h1>
String nameValue = "";
Cookie[] cookies = request.getCookies();
if(cookies != null){
for (int i = 0; i cookies.length; i++) {
cookies[i].equals("goodName");
nameValue = cookies[i].getValue();
}
}
out.print(nameValue);
%>
body>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、编码处理
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;UTF-8");
//2、获取请求数据
String name = request.getParameter("name");
//3、业务代码
//获取cookie的数据
//返回name为goodName的值
String nameValue = null;
//
String listStr = name;
Cookie[] cookies = request.getCookies();
if(cookies != null){
for (int i = 0; i ) {
if(cookies[i].getName().equals("goodName")){
nameValue = cookies[i].getValue();
}
}
}
//将cookie转成集合,ArrayList
if(nameValue != null){
String[] goods = nameValue.split(",");
//存在toString中有空格,去除
for (int i = 0; i ) {
goods[i] = goods[i].trim();
}
//Arrays.asList(goods)转成的集合是只读的,创建一个新的list
List