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对象中的属性取出做成了键值对而已. [方法一] ...
随机推荐
- ActionBar官方教程(4)给ActionBar添加操作项及它们的事件处理
Adding Action Items The action bar provides users access to the most important action items relating ...
- 【HDOJ】2037 今年暑假不AC
qsort排序后DP,水题.注意,数组开大点儿,把时间理解为0~23,开太小会wa. #include <stdio.h> #include <stdlib.h> #defin ...
- hadoop2.2原理:分析HDFS的文件读写
File Read 程序举例: public class FileRead { public static void main(Sting[] args) throws Exception { Con ...
- Response.Write用法总结
问题一: Response.Write 后连接Response.Redirect ,则Response.Write无法显示,直接跳转入Response.Redirect 的页面. 解决方案: Resp ...
- cannot find the word template:WordToRqm.dot的解决方法
powerdesigner安装后: C:"Program Files"Sybase"PowerDesigner 12"Add-ins"Microsof ...
- Shape 与 InlineShape 的区别
Shape 对象代表文档中的图形对象,InlineShape 代表文档中的嵌入式图形对象.所谓嵌入式图形对象,是指将图像作为文字处理,在排版上以文字的方式进行排版. Shape 与 InlineSha ...
- nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用 ...
- HDU 5667 Sequence 矩阵快速幂
官方题解: 观察递推式我们可以发现,所有的fi都是a的幂次,所以我们可以对fi取一个以a为底的log,gi=loga fi 那么递推式变gi=b+c∗gi−1+ ...
- Ruby应用记录:修改文件中某个字符串
#修改android客户端中服务器地址的默认值为对应环境的服务器地址 #!/usr/bin/ruby ostr="192.168.88.95:8088" nstr="19 ...
- 关于npoi不能导入07以上版本的Excel
因为在npoi版本中1.几之下的版本的不能导入07版本以上的excel是因为在其中的封装的方法中不支持, 所以很简单我们去网站上下一新的版本的npoi就是了,最好是新出来的2.1.1版本的就完全zhi ...