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不同
Cookie中的三个容器request,session,application的设置和获取的更多相关文章
- Strut2 ognl取出存放在request,session,application和对象栈的中的值
1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...
- page,request,session,application四个域对象的使用及区别
转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...
- JavaWeb -pageContext/request/session/application
pageContext/request/session/application总结 一.范围差异 1. pageContext jsp页面容器 当前页面有效 2. request 请求对象 同一次请求 ...
- Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)
truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式 可以使用 ...
- request, session, application辨析(待更新)
作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话 ...
- request,session,application
JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...
- Struts2里如何取得request,session,application
第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...
- struct2访问或添加request/session/application
访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute() { ActionConte ...
- struts2 action中获取request session application的方法
共四种方式: 其中前两种得到的是Map<String,Object> 后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] ...
随机推荐
- oracle database resident connection pooling(驻留连接池)
oracle在11g中引入了database resident connection pooling(DRCP).在此之前,我们可以使用dedicated 或者share 方式来链接数据库,dedic ...
- jdk1.7升级到jdk1.8后出错: [ERROR] javadoc: warning - Multiple sources of package comments found for package
from: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html [ERROR] javadoc: warnin ...
- Webform——验证控件
验证控件一般是在注册的时候用到,是直接将JS代码封装到了控件里面,拉过来直接可以用,下面介绍一下主要用法: 1.CompareValidator:比较验证 常用属性:ControlToCompare ...
- 利用if else 来计算车费
static void Main(string[] args) { while (true) { double ...
- bzoj1046
首先这肯定是一道LIS的变形,这次求的是方案,还要求字典序最小 (注意这个字典序最小是指下标最小而不是数最小) 首先预处理以每个数为首,能组成多长的上升序列(这里我们用单调队列解决) 然后按照位置顺序 ...
- 用 C# 读取二进制文件
当想到所有文件都转换为 XML时,确实是一件好事.但是,这并非事实.仍旧还有大量的文件格式不是XML,甚至也不是ASCII.二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递.相比之下,在处 ...
- BZOJ2348: [Baltic 2011]Plagiarism
2348: [Baltic 2011]Plagiarism Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 304 Solved: 141[Submit ...
- Bootstrap中的less基础
在线编译 因为 less 的语法毕竟相对简单,所以一些在线工具可以很轻松的做到.比如 http://less.cnodejs.net http://www.ostools.net/less 一般都有 ...
- 《C#并行编程高级教程》第3章 命令式任务并行 笔记
Task的使用 var t1 = new Task(() => GenerateAESKeys());var t2 = new Task(() => GenerateMD5Hashes() ...
- Sqlite数据库的加密
最近在做一个winform的程序,考虑用Sqlite的数据库,小巧而实用,比Access强多了,不过需要加密,不过free版本没有实现加密,有一些c++的实现:比如:http://www.sqlite ...