freeecms项目中cookies的使用

cookie.js 代码:


function GetCookieVal(offset)
//获得Cookie解码后的值
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));//unescape解码
}

function SetCookie(name, value)
//设定Cookie值
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))//escape编码
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}

function DelCookie(name)
//删除Cookie
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function GetCookie(name)
//获得Cookie的原始值
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

login.jsp中代码:


<div class="input_post">
<input type="hidden" name="lt" value="_c3F041F78-53B9-69A5-3B3C-01BAB6E90925_k37408022-0986-F9AF-9DBB-8FBEC82968E9" />
<input type="hidden" name="_eventId" value="submit" />

<input class="button" name="submit" accesskey="l" value="登 录" tabindex="4" type="submit" />
</div>
<div class="input_fpwd"><input id="RememberMe" type="checkbox" name="RememberMe" onclick="RememberMeClick()"/>
  <label for="RememberMe">在此计算机上保留登录帐号</label>
</div>

login.jsp中js代码:


 <script>
if(GetCookie("FreeCMS_loginName")!=null&&GetCookie("FreeCMS_loginName")!=""){
document.getElementById("RememberMe").checked=true;
}
if(GetCookie("FreeCMS_loginName")!=null)document.getElementById("username").value=GetCookie("FreeCMS_loginName");
function RememberMeClick(){
if(document.getElementById("RememberMe").checked==false){
//删除cookie
DelCookie("FreeCMS_loginName");
}
}
function submitForm(){

if($.trim($("#username").val())==""){
alert("请输入用户名!");
$("#username").focus();
return false;
}
if($.trim($("#password").val())==""){
alert("请输入密码!");
$("#password").focus();
return false;
}
if($.trim($("#ValidateCode").val())==""){
alert("请输入验证码!");
$("#ValidateCode").focus();
return false;
}
if(document.getElementById("RememberMe").checked==true){
//设置cookie
SetCookie("FreeCMS_loginName",document.getElementById("username").value,60*60*24*365);
}
return true;
}
$("#username").focus();
</script>

service中代码:


import javax.servlet.http.Cookie;

public String login(){
try {
//记住用户名
if("on".equals(RememberMe)){
Cookie cookie=new Cookie("FreeCMS_memberLoginName",EscapeUnescape.escape(member.getLoginname()));
cookie.setMaxAge(1000*60*60*24*365);//有效时间为一年
getHttpResponse().addCookie(cookie);
}
HttpSession session =getHttpSession();
if (ValidateCode!=null && ValidateCode.equals(session.getAttribute("rand"))) {
showMessage=memberService.checkLogin(getHttpSession(), member);
}else {
showMessage="验证码错误!";
}
if (showMessage==null || "".equals(showMessage)) {
OperLogUtil.log(member.getLoginname(), "会员登录", getHttpRequest());
getHttpResponse().sendRedirect("member/member_index.do");
return null;
}else {
return showMessage(showMessage, forwardUrl, forwardSeconds);
}
} catch (Exception e) {
DBProException(e);
OperLogUtil.log(member.getLoginname(), "会员登录失败:"+e.toString(), getHttpRequest());
return showMessage("出现错误:"+e.toString()+"", forwardUrl, forwardSeconds);
}
}

freeecms项目中cookies的使用

时间: 2024-11-08 22:32:59

freeecms项目中cookies的使用的相关文章

在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies

在<vue-cli搭建的项目中增加后台mock接口>中实现了后台mock,但是前端post的t数据都要在mock的后台接口中使用req的接收数据事件获取http协议body中的数据. req.on('data', function(chunk){ //接收字节数据 }); req.end('data', function(){ //转换||处理 }); req.error('error', function(e){ //处理错误 }); 如果前端需要使用cookie,后端要读取,那么在后台mo

关于如何在你的Web项目中实现对空间数据访问权限的控制(一)

Wednesday, 23 JUNE 近来一直在研究关于如何在我的WebGIS项目中实现对空间数据(已发布在GeoServer上)进行权限管理的问题.虽然到目前为止没能找到一个完美的解决方案,但通过这些天的学习与查阅资料,思路上多少有了一些进展,因此记录下来,做一个简单的小结. 1-GeoServer中的Security模块 GeoServer是一个基于J2EE基础实现的,允许用户共享和编辑地理空间数据的GIS应用服务器.——FROM GeoServer官方介绍. 其实,GeoServer的本质

项目中走马观花式学习PHP

项目中走马观花式学习PHP 因项目缘故,需要快速补充php知识,个人有asp基础,较熟悉aspx.c#winform编写,故选择了快速阅读PHP相关资料.整理了一下,给大家参考.阅读的资料都是来自网络,我也不说不清作者是谁了,这里要对带我们这些菜鸟飞的前辈和大神们表示感谢.此外和我一样学过asp的朋友请百度一下php和asp语法的不同,对自己帮助很大. 第一部分相关知识补充 一.PHP准备工作 (一)PHP环境搭建(略) 建议使用apm,修改相关的参数即可搭建好环境.详情随便百度一下.... 第

跨域实际项目中处理方法

在公司开放平台的项目中,很荣幸我负责这个项目的前端工作:这个项目我们时候了前后端分离,后续出现了一些列的跨域问题: 首先的问题是对接口访问的跨域,这个问题我们讨论了很久,开始拟定2种方案,第一种是使用jsonp的方式,第二种是服务器,允许某个域名访问,最终我们采取了后者:即使是允许开放平台的域名能进行访问,但是在开发的过程中还是会存在跨域的问题,我们的解决方案是直接修改HOST文件,比如我们允许的域名是: www.test.com,我们的服务器地址是 :172.16.1.157,操作如下 第一步

[转]MVC4项目中验证用户登录一个特性就搞定

本文转自:http://www.mrhuo.com/Article/Details/470/A-Attribute-For-MVC4-Project-Used-To-Validate-User-Login 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inhe

转:C4项目中验证用户登录一个特性就搞定

转:C4项目中验证用户登录一个特性就搞定 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性.     // 摘要:    //     表示一个特性,该特性用于限制调用方对操作方法的访问.    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]    public class AuthorizeAttrib

django项目中购物车的实现

对于做项目而言,最重要的是分析清楚自己负责模块的思路,确定思路后,把每一步实现的步骤确定后,根据步骤,去实现代码,测试. 购物车的逻辑:    登录用户可以添加购物车,未登陆用户页可以添加到购物车    登陆用户的保存user.id sku_id count selected      保存在redis中,以hash和set两种方式保存    未登陆用户保存sku_id count selectd  保存再cookie中    cart = {            sku_id:{count:

websoket在项目中的使用

项目中要求用户A发起终止申请请求后,对应的相关权限的用户B.用户C等即时收到终止的请求,针对这个需求在项目中加入了websoket功能,下面是具体的使用过程. 1.在maven中添加jar引用 1 <dependency> 2 <groupId>org.springframework</groupId> 3 <artifactId>spring-websocket</artifactId> 4 <version>5.0.9.RELEA

小谈网关项目中的设计模式

基于个人的经验,谈谈设计模式在网关中的应用.因为是经验之谈,没有绝对的对与错. 下面整理的是我最常使用的设计模式,我用设计模式的前提是 让代码的可读性变强 能支持日后功能扩展 单例 目的 保证全局只有一个实例,防止因为频繁的创建.销毁对象而造成不必要的性能开销. 在网关项目中,单例模式是出现频率最高的模式.同时,所有的单例对象被 IoC 框架 Guice 统一管理. 场景 1 网关会处理各种逻辑.一般将业务逻辑从主流程中抽取出来,封装在一个独立对象中.可以使用单例模式来保证全局唯一,使用注解 S