11.17
通过cookie来进行背景颜色的记忆
jsp代码:
表单
蓝色
黄色
servlet1
out.print(“请选择背景颜色”);
//在doget方法外面定义bgcookie=null; //bgcookie用于存贮背景色cookie
string color =“white”; //如果存在存放背景色的cookies,就i使用cookies的值作为背景色
String color =request.getParameter(“bgcolor”); //获取到用户的背景色
//如果用户以前已经设置过背景色,此时应该修改保存有背景色的的那个cookies的值
Cookies cookies =request.getCookies();
if(cookies !=null){
if(Cookie tempCookie:cookies){
if(tempCookie.getName().equals"bgcolor")
{ bgCookie =tempCookie;
bgCookie.setValue(color);
break;
}
}
}else
{
bgCookie =new Cookie(“bgcolor”,color);
bgCookie.setMaxAge(60);
response.addCookie(bgCookie);
}
doGet(request,response);
}
url重写,表单隐藏域
原理:判断客户浏览器是否支持cookie如果不是则放到地址栏后面
接口:
public String encodeURL(string url)
public String encodeRedirctURL(string url)
例子:
创建session对象:
servlet1
HttpSession session =request.getSession();
session.setAttribute(“name”,“imdou”);
url =“servlet2” //将url设置为servlet的地址
out.println(“servlet2”)
servlet2
HttpSession session =request.getSession();
String name =(string)session.setAttribute(“name”);
将cookie禁用后servlet2将无法打印imdou
因为servlet会重新创建新的session
改变代码
servlet1
HttpSession session =request.getSession();
session.setAttribute(“name”,“imdou”);
url =“servlet2” //将url设置为servlet的地址
url2 =response.encodeURL(url);
out.println(“servlet2”)
servlet2
HttpSession session =request.getSession();
String name =(string)session.setAttribute(“name”);