今天听胡高手说cookies和session:用session或者cookie 区分不在于前后台,区分在于你需要保存的信息是什么东西,比如前台一个用户登录,你可以把用户id放到cookie或者session里,如果用户要去修改密码,你会在cookie或者session里找用户的id看是不是存在,浏览器每次请求都回把cookie放在请求里提交上去,我google了一下,英文原话is:
What are session cookies used for?
Without cookies, websites and their servers have no memory. A cookie, like a key, enables swift passage from one place to the next. Without a cookie every time you open a new web page the server where that page is stored will treat you like a completely new visitor.
Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,
可以用来在某个Web站点会话之间持久地保持数据。Request和Response对象都有
一组Cookie。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一
起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用R
esponse.cookie
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每
一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用
时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如
果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户
之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点
多个用户之间在所有页面中共享信息。
昨天看到孙美女书上写了一个验证session的例子,我直接拿来用了,感觉不错,发布一下,以备后用:
import javax.servlet.http.HttpSession;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
import com.up.mark.Constants;
public class ValidateSession extends TagSupport{ private String name=Constants.USER_KEY; private String page=Constants.LOGON_JSP; private Log log=LogFactory.getLog(this.getClass().getName()); public int doEndTag()throws JspException { boolean valid=false; HttpSession session=pageContext.getSession(); if((session!=null)&&(session.getAttribute(name)!=null)) valid=true; if(valid) return(EVAL_PAGE); else{ try{ pageContext.forward(page); }catch(Exception e){ throw new JspException(e.toString()); } return (SKIP_PAGE); }
} public int doStartTag()throws JspException{ return (SKIP_BODY); } public String getName(){ return this.name; } public String getPage(){ return this.page; } public void release(){ super.release() ; this.name=Constants.USER_KEY; this.page=Constants.LOGON_JSP; } public void setName(String name){ this.name =name; } public void setPage(String page){ this.page =page; }}
今天听胡高手说cookies和session:用session或者cookie 区分不在于前后台,区分在于你需要保存的信息是什么东西,比如前台一个用户登录,你可以把用户id放到cookie或者session里,如果用户要去修改密码,你会在cookie或者session里找用户的id看是不是存在,浏览器每次请求都回把cookie放在请求里提交上去,我google了一下,英文原话is:
What are session cookies used for?
Without cookies, websites and their servers have no memory. A cookie, like a key, enables swift passage from one place to the next. Without a cookie every time you open a new web page the server where that page is stored will treat you like a completely new visitor.
Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,
可以用来在某个Web站点会话之间持久地保持数据。Request和Response对象都有
一组Cookie。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一
起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用R
esponse.cookie
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每
一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用
时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如
果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户
之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点
多个用户之间在所有页面中共享信息。
昨天看到孙美女书上写了一个验证session的例子,我直接拿来用了,感觉不错,发布一下,以备后用:
import javax.servlet.http.HttpSession;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
import com.up.mark.Constants;
public class ValidateSession extends TagSupport{ private String name=Constants.USER_KEY; private String page=Constants.LOGON_JSP; private Log log=LogFactory.getLog(this.getClass().getName()); public int doEndTag()throws JspException { boolean valid=false; HttpSession session=pageContext.getSession(); if((session!=null)&&(session.getAttribute(name)!=null)) valid=true; if(valid) return(EVAL_PAGE); else{ try{ pageContext.forward(page); }catch(Exception e){ throw new JspException(e.toString()); } return (SKIP_PAGE); }
} public int doStartTag()throws JspException{ return (SKIP_BODY); } public String getName(){ return this.name; } public String getPage(){ return this.page; } public void release(){ super.release() ; this.name=Constants.USER_KEY; this.page=Constants.LOGON_JSP; } public void setName(String name){ this.name =name; } public void setPage(String page){ this.page =page; }}