Cookie中的三个容器request,session,application的设置和获取

public class SaveServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");

request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String info = name+","+pwd;
//把信息分别存储到3个容器中
request.setAttribute("info", info+" ---Request");
request.getSession().setAttribute("info", info+" ---Session"); //JSP页面中的隐藏对象: session
getServletContext().setAttribute("info", info+" ---Application"); //JSP页面中的隐藏对象: application

//一个小功能:实现让用户关闭浏览器之后,10分钟之内身份还有效
//本质上就是向客户端写一个名为JSESSIONID的cookie--有效期为10分钟
String id = request.getSession().getId();
Cookie c = new Cookie("JSESSIONID",id);
c.setMaxAge(60*10);
c.setPath(request.getContextPath());
response.addCookie(c);

out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

}

----------------------------------------------------------------------------------------------------------------------------

public class GetServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");

request.setCharacterEncoding("utf-8");
//把信息分别从3个容器中读取出来
String reqInfo = (String) request.getAttribute("info");
String sessionInfo = (String) request.getSession().getAttribute("info");
String appInfo =(String)getServletContext().getAttribute("info");

out.println("reqInfo:" + reqInfo);
out.println("sessionInfo:" + sessionInfo);
out.println("appInfo:" + appInfo);

out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

}

--------------------------------------------------------------------------------------------------------------------------------------

<form action="SaveServlet" method="post">
姓名:<input type="text" name="name"/> <br/>
密码:<input type="password" name="pwd"/> <br/>
<input type="submit" value="信息存储到3个容器"/>
</form>
<a href="GetServlet">显示3个容器中的信息</a><br/>

-----------------------------------------------------------------------------------------------------------------------------------------

显示结果:request中是null而session跟application中有内容,可以那上面的代码测试一下;

session中的安全退出代码:

HttpSession session = request.getSession();
session.invalidate();//让该session对象失效
out.println("已经安全退出");

//seesion是在网页中,而application是在服务器中,在不同的浏览器中session不同

时间: 2024-11-05 06:33:53

Cookie中的三个容器request,session,application的设置和获取的相关文章

Strut2 ognl取出存放在request,session,application和对象栈的中的值

1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet(){ ServletActionContext.getRequest().setAttribute("request_username", "username"); ActionContext.getContext().getSession().put("se

暑期项目经验(九) -- request session application

request.session.application 一.基础知识 可以看看  浅谈:request,session,application(http://blog.csdn.net/hzc543806053/article/details/7416007) 要点: 作用域: request<session<application 共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name) 二.在ja

page,request,session,application四个域对象的使用及区别

转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束,返回响应的整个过程.在这个过程中使用forward方式跳转多个jsp.在这些页面里你都可以使用这个变量. 3.Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程. 4.application它的有效范围是整个应用. 作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一

Struts2里如何取得request,session,application

第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private Map reques

request, session, application辨析(待更新)

作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话中有效,即当同一个浏览器多次访问时,在这多次访问中传递信息,就是session的作用. session失效: session过期 服务器调用invalidate() 通过<%@ page session="false" %>(不推荐使用) 3. application 在一次服

struct2访问或添加request/session/application

访问或添加request/session/application1 通过ActionContext//这样放置public String execute(){ActionContext ctx = ActionContext.getContext();ctx.getApplication().put("app","lll");ctx.getSession().put("ses","session范围");ctx.put(&qu

struts2 action中获取request session application的方法

共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] public class LoginAction { private Map request; private Map session; private Map application; public String execute() { request = (Map)ActionContext.getCo

对request,session,application作用域形象理解

看到一篇比较有意思的文章,分享一下.原网址:http://blog.csdn.net/rushkid02/article/details/8063792 几乎所有的Web开发语言都支持Session功能,Servlet也不例外. Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的. 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中)  request 在当前请求中有效  session 在当前会话中有效  application 在所有应用程

page request session application 范围

在JSP页面中的对象,包括用户创建的对象(例如,JavaBean对象)和JSP的隐含对象,都有一个范围属性.范围定义了在什么时间内, 在哪一个JSP页面中可以访问这些对象.例如,session对象在会话期间内,可以在多个页面中被访问.application对象在整个Web应 用程序的生命周期中都可以被访问.在JSP中,有4种范围,如下所示. 1. page范围 具有page范围的对象被绑定到javax.servlet.jsp.PageContext对象中.在这个范围内的对象,只能在创建对象的页面