重温cookie,session的获取,写入与读写
2010-08-30 10:20
253 查看
这个知识点其实不应该不懂,但却偏偏忘记了!相信很多人会跟我一样!
cookie的写入:
String cookieName="休息休息";
Cookie cookie=new Cookie(cookieName, "value");
cookie.setMaxAge(10);
response.addCookie(cookie);
cookie读取:
Cookie cookies[]=request.getCookies();
for(Cookie cookie:cookies)
{
out.println(cookie.getName());
out.println(cookie.getValue());
}
在JSP中的session
Jsp使用httpsession的对象来跟踪用户的操作状态。Httpsession是一个建立在cookies和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,session的id保存在客户机的cookies中,实际上,许多服务器上,如果浏览器的支持的话他们聚使用cookie,但是如果不支持或者废除了的话就自动转化为url-rewriting,session 自动为每个流程提供了方便存储信息的方法。
Session一般在服务器上设置了一个30分钟的国旗时间,当客户停止活动后自动失效。Session中保存和检索的信息不能使基本的数据类型 如 int,double等,而必须是Java的相应的对象,如Double,Integer。
注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);
这也是JSP中隐含的 session对象的来历。由于session会耗费内存资源,因此,如果不盘算使用session,应当在所有的JSP中关闭它。
Httpsession具有如下api
getid 此方法返回唯一的标识,这些标识为每个session二产生。只有一个单一的值与一个Session联合时,或当日志信息与先前的session有关时,它被当做键名用。
GetCreationTime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可以将此值传给date constructor 或者gregorian calendar得方法set timelnmillis。
GetLastAccessesTime 返回session最后被客户发送的时间。最小单位为千分之一秒。
GetMaxinActiveInterval 返回总时间(秒)负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。
Integer item =(Integer) session.getAttrobute(“item”);
setAttribute 提供一个关键词和一个值。会替换掉任何以前的值。
Session.setAttribute(“itemvalue”,itemname);
在应用中setAttribute和getAttribute用的最多 例子如下:
1、test1.jsp
<html>
<head>
<tittle>Document</tittle>
</head>
<body bgcolor=”#ffffff”>
Session.setAttribute(“str”,new String(“this a test”));
</body>
</html>
2、test2.jsp
<html>
<head>
<title>new Document </title>
</head>
<body bgcolor=”#ffffff”>
<%
String is_str=null;
is=str=(String)session.getAtribute(“str”);
Out.println(“从session 里取出的值为:”+is_str);
</body>
</html>
在struts中的session
要获得上述对象,关键Struts 2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前 Action的上下文对象。 另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
publicclass NonIoCServlet extends ActionSupport {
private String message;
public String getMessage() {
return message;
}
@Override
public String execute() {
ActionContext.getContext().getSession().put("msg", "Hello World from Session!");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
StringBuffer sb =new StringBuffer("Message from request: ");
sb.append(request.getParameter("msg"));
sb.append("<br>Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append("<br>Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
}
cookie的写入:
String cookieName="休息休息";
Cookie cookie=new Cookie(cookieName, "value");
cookie.setMaxAge(10);
response.addCookie(cookie);
cookie读取:
Cookie cookies[]=request.getCookies();
for(Cookie cookie:cookies)
{
out.println(cookie.getName());
out.println(cookie.getValue());
}
在JSP中的session
Jsp使用httpsession的对象来跟踪用户的操作状态。Httpsession是一个建立在cookies和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,session的id保存在客户机的cookies中,实际上,许多服务器上,如果浏览器的支持的话他们聚使用cookie,但是如果不支持或者废除了的话就自动转化为url-rewriting,session 自动为每个流程提供了方便存储信息的方法。
Session一般在服务器上设置了一个30分钟的国旗时间,当客户停止活动后自动失效。Session中保存和检索的信息不能使基本的数据类型 如 int,double等,而必须是Java的相应的对象,如Double,Integer。
注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);
这也是JSP中隐含的 session对象的来历。由于session会耗费内存资源,因此,如果不盘算使用session,应当在所有的JSP中关闭它。
Httpsession具有如下api
getid 此方法返回唯一的标识,这些标识为每个session二产生。只有一个单一的值与一个Session联合时,或当日志信息与先前的session有关时,它被当做键名用。
GetCreationTime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可以将此值传给date constructor 或者gregorian calendar得方法set timelnmillis。
GetLastAccessesTime 返回session最后被客户发送的时间。最小单位为千分之一秒。
GetMaxinActiveInterval 返回总时间(秒)负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。
Integer item =(Integer) session.getAttrobute(“item”);
setAttribute 提供一个关键词和一个值。会替换掉任何以前的值。
Session.setAttribute(“itemvalue”,itemname);
在应用中setAttribute和getAttribute用的最多 例子如下:
1、test1.jsp
<html>
<head>
<tittle>Document</tittle>
</head>
<body bgcolor=”#ffffff”>
Session.setAttribute(“str”,new String(“this a test”));
</body>
</html>
2、test2.jsp
<html>
<head>
<title>new Document </title>
</head>
<body bgcolor=”#ffffff”>
<%
String is_str=null;
is=str=(String)session.getAtribute(“str”);
Out.println(“从session 里取出的值为:”+is_str);
</body>
</html>
在struts中的session
要获得上述对象,关键Struts 2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前 Action的上下文对象。 另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
publicclass NonIoCServlet extends ActionSupport {
private String message;
public String getMessage() {
return message;
}
@Override
public String execute() {
ActionContext.getContext().getSession().put("msg", "Hello World from Session!");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
StringBuffer sb =new StringBuffer("Message from request: ");
sb.append(request.getParameter("msg"));
sb.append("<br>Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append("<br>Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
}
相关文章推荐
- Servlet实现禁用cookie重写URL获取session
- c#写入cookie。js获取
- 一些常用的JS (JONEAjax) 获取dom 对象,ajax操作,读写cookie
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- Android读写文件 获取文件并读取写入数据
- 浏览器端禁用Cookie后,无法获取Session的问题
- 安卓关于Volley获取Set-Cookie和session的持久问题
- 在类文件中如何获取cookie或者session的值
- js写入Session,后台获取
- 重温那些模糊的知识点 ----Session,Cookie
- java后设置Session有效期,设置Cookie有效期,设置失效,获取Cookie值方法
- .net中Cookie的用法 ,.net写入session
- 基类的构造函数中获取用户的信息,比如Cookie、Session等,但Session在构造时却还不存在问题解决方案
- AFHTTPSessionManager获取cookie的方法
- Cookie中的三个容器request,session,application的设置和获取
- 用script跳转方式主动跨域获取cookie或session
- ASP.NET 如何读写Session和Cookie
- session 和 cookie的设置和获取
- PHP学习笔记——表单数据获取,Session,Cookie
- URL获取Cookie(或者说是session)