标签:style blog http color io os 使用 java ar
通过cookies,可以保存用户的使用习惯,优化用户体验,同时能减轻服务端压力.下面说下在Servlet中cookies机制的使用
就用保存用户登录数据来举例子:
打开网页的处理Servlet:
package com.zhangwei; import java.io.*; import javax.servlet.http.*; public class CookiesPreCheck extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req, HttpServletResponse res){ res.setContentType("text/html; charset=GBK"); Cookie[] cookiearray = req.getCookies(); if(cookiearray != null){ String username = null; String password = null; try{ PrintWriter pw = res.getWriter(); for(int i = 0; i<cookiearray.length;i++){ Cookie temp = cookiearray[i]; if(temp.getName().equals("username")){ username = new String(temp.getValue()); } if(temp.getName().equals("password")){ password = new String(temp.getValue()); } } pw.print(username+password); if(username!=null && password!= null){ HttpSession hs = req.getSession(true); hs.setAttribute("username",username); hs.setAttribute("password",password); res.sendRedirect("account"); return ; } }catch(Exception e){ e.printStackTrace(); } } try{ res.sendRedirect("login"); }catch(Exception e){ e.printStackTrace(); } } public void doPost(HttpServletRequest req, HttpServletResponse res){ this.doGet(req,res); } }
主要做了一件事情,检测本地的cookies,看里面是否保存了用户信息,如果有,那么就将用户信息写到session,如果没有就跳转到登录页面.
用户信息页面主要是从会话中获取并显示用户信息
登录页面主要是实现用户登录,并且将用户账号密码通过表单传递到登录处理页面
登录处理页面:
package com.zhangwei; import java.io.*; import javax.servlet.http.*; public class LoginCL extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req, HttpServletResponse res){ res.setContentType("text/html; charset=GBK"); this.doPost(req,res); } public void doPost(HttpServletRequest req, HttpServletResponse res){ String username = req.getParameter("username"); String passwd = req.getParameter("passwd"); //验证,并且将用户数据写入session和cookies try{ HttpSession hs = req.getSession(true); hs.setAttribute("username",username); hs.setAttribute("password",passwd); Cookie c = new Cookie("username",username); Cookie e = new Cookie("password",passwd); //不设置有效时间的话cookies就不会被保存 c.setMaxAge(30); e.setMaxAge(30); //res.sendRedirect("account"); res.addCookie(c); res.addCookie(e); } catch (Exception e){ e.printStackTrace(); } } }
用户处理页面主要做的事情是验证用户信息,如果通过,就将用户信息写入session和cookies,然后跳转到用户页面(当然也可以只写入cookies,然后跳转到根目录)
标签:style blog http color io os 使用 java ar
原文地址:http://www.cnblogs.com/color-my-life/p/3980493.html