cookie、session

来源:互联网 发布:重庆时时彩数学算法 编辑:程序博客网 时间:2024/06/05 16:37

验证数据后,在使用

url:

以/开头
1.服务器用,/代表:当前web应用[WebRoot]
2.客户端用,/代表:网站

request.getRequestDispatcher("/publi/xx.jsp").forward(request, response);//当前web应用this.getServletContext().getReadlPath("/publi/xx.jsp");//当前web应用this.getServletContext().getResourceAsStream("/publi/xx.jsp");//当前web应用response.sendRedirect("/xxProject/publi/xx.jsp");//代表:网站  + web应用//<a href="/xxProject/publi/xx.jsp"></a> //代表:网站  + web应用//<form action="/xxProject/publi/xx.jsp">//代表:网站  + web应用//</form<pre name="code" class="java">cookie.setPath("xxProject");//有效目录



cookie

1浏览器维护cookie

2一个cookie表示一个信息,可以传多个cookie,大小限制4kb

3cookie默认有效期是当前绘画,浏览器缓存中;本地存储:setMaxAge  秒  , 值为0浏览器将删除cookie[path也要一致]

Cookie cookie = new Cookie("name", "value");cookie.setValue("");cookie.getValue();cookie.setMaxAge(1);// 秒  有效期,浏览器本地存储与维护cookie.getMaxAge();//没有设置,cookie当前会话有效,缓存中cookie.setPath("uri");//有效目录cookie.getPath();cookie.setDomain(""); //域名  eg:  baidu.com  浏览器会阻止这类cookiecookie.getDomain();cookie.getName();




session

1服务器维护session

2.生命周期:第一次getSession时,创建session; 默认30分钟无使用被销毁[可配置 web.xml中 ] 或者 session.invalidate();

<session-config><session-timeout>10</session-timeout></session-config>

session.invalidate();//销毁session

3.JSessionid:  基于cookie[默认时间],传JSessionid给浏览器

cookie:  JSessionid=ADSAXX123 ; 当getSession时,判断JSessionid判断是否存在,创建?

session.setAttribute("name", "");//设置值  【多个】Object attribute = session.getAttribute("name");//取值tring nameString = (String) attribute;//覆盖cookie 解决 基于cookie[默认时间] 的问题String id = session.getId();Cookie cookie = new Cookie("JSESSONID", id);cookie.setPath("xxProject"); //paht要一致cookie.setMaxAge(30*60);//半小时response.addCookie(cookie);

当cookie禁止后,还想使用session,url加sessionid :

response.encodeRedirectURL("url"); //重定向 //没有带sessionid,重写url地址。如果带了,统一资源定位器不变response.encodeURL("url");

4.防表单重复提交   struts1处理方案:    

session.setAttribute("token", "随机数");

<input type="hidden" value="${token}" />

hidden携带随机数 token 


//判断request.getParameter("token");//不空,否着不让提交session.getAttribute("token");//不空,且要和request带过来的一致,否着不让提交//处理提交 session.removeAttribute("token");//移除

UUID.randomUUID().toString();   // 随机数 全球唯一

Base64 + MD5

Base64:一个字节8bit,3个字节 转 4个字节,每个取6bit 高位补0,实际范围0-63【64个】;可逆

5.验证码,验证



0 0