假设页面有个checkbox,name="remember",如果勾选了,就建立cookie,支持中文的话,还必须编码和解码操作
// ** 建立cookies
String rememberMe = request.getParameter("rememberMe");
log.debug("logincheckServlet current position >> request.getParameter[remeberMe] = "+rememberMe);
if("on".equals(rememberMe))
{
log.debug("logincheckServlet current position >> 建立cookies, start!");
String urlEncodeUserName = null;
try
{
// ** 吧中文名字编码
urlEncodeUserName = URLEncoder.encode(userName,"utf-8");
log.debug("logincheckServlet current position >> urlEncodeUserName = "+urlEncodeUserName);
}
catch (UnsupportedEncodingException e)
{
log.error("LoginCheck cp >> URLDecoder.encode() error!");
e.printStackTrace();
}
StringBuffer sb=new StringBuffer();
sb.append("username=");
sb.append(urlEncodeUserName);
sb.append("&password=");
sb.append(password);
Cookie cookie=new Cookie("userinfo",sb.toString());
cookie.setMaxAge(1800);
cookie.setPath("/");
//cookie.setDomain(".gicp.net");
response.addCookie(cookie);
log.debug("logincheckServlet current position >> 建立cookies, end!");
}
打算logout,清除一些相关记录
HttpSession session = request.getSession();
session.invalidate();
log.debug("LogoutServlet current position >> session.invalidate() 完成!");
// **
Cookie[] cookies=request.getCookies();
// ** 查找cookie
if(cookies!=null)
{
for(int i=0;i<cookies.length;i++)
{
Cookie cookie=cookies[i];
String cName=cookie.getName();
log.debug("LogoutServlet current position >> cookie.getName() = "+cName);
if(cName.equals("userinfo") )
{
//cookie.setValue(null);
cookie.setPath("/");
cookie.setMaxAge(0);
//cookie.setMaxAge(-1);
response.addCookie(cookie);
log.debug("LogoutServlet current position >> 找到cName.equals【userinfo】并删除!");
}
}
}
log.debug("LogoutServlet current position >> 完成清除cookies的!");
分享到:
相关推荐
建立一个记事本,在里面粘贴: @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%*.tmp del /f /s /q %systemdrive%*._mp del /f /s /q %systemdrive%*.log del /f /s /q %...
3、虽然没有任何广告,但请不要更改在程序内保留版权信息,以便用户能咨询相关问题和下载最新版本 4、本程序使用的用户必须关闭用户验证信息。 5、后台管理在使用时,如果有其他非管理用户已登陆则会产生登陆失败,...
建立一个目录树样式的导航菜单。 Flash Text.mxp 使文字象打字效果一样显示。 Letterbox Frameset.mxp 创建一个中间的框架总是居于浏览器窗口正中位置 Auto Copyright.mxp 插入一个自动更新时间的版权符号。 ...
ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来向客户端返回数据。 多线程和映射\r 在多线程的环境下,Servlet必须能处理许多同时发生的请求。...
建立一个目录树样式的导航菜单。 Flash Text.mxp Download 点击下载 使文字象打字效果一样显示。 Letterbox Frameset.mxp Download 点击下载 创建一个中间的框架总是居于浏览器窗口正中位置 Auto Copyright.mxp ...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...
SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...
这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...
只有第一次或清除浏览器"Cookies"后才可以进入设定模式. 2:安装股市: 在本地修改数据库名称同时修改文件"stock_conn.asp"中的数据库名称(对于一般用户此步骤可以省略). 将所有文件上传到论坛根目录(请不要放...
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答...
ASP.NET页框架模型隐式的为用户建立了事件和事件处理程序的关联。ASP.NET让用户可以为从浏览器传递的事件在服务器代码中设置相应的处理程序。假设某个用户正在浏览网站并与页面之间产生了某种交互,用户的操作就会...
16. 怎样给每一个在线用户建立一套变量,在用户断开后立即清除 ............................. 18 17. TUniHiddenPanel 的作用 ....................................................................................
83 <br>0125 按要求生成指定位数编号 83 <br>0126 确定两字符串是否相等 84 <br>0127 判断两字符串中指定子串是否相等 84 <br>0128 判断字符串是否为日期格式 85 <br>0129 清除字符串中指定...