session对象:

//服务端设置Session属性
session.setAttribute("user", username);
//客户端接收Session
Object obj = session.getAttribute("user");
//判断是否为空,不是空就输出
if(obj==null){
//如果为空就提示用户登录
%>
<%}else{
//不为空就输出用户名,和欢迎信息
out.println("欢迎您"+obj.toString());
}
%>

Session清理机制

在服务端设置过期时间

//设置服务器端session过期日期(单位为:秒),如设置为10秒
session.setMaxInactiveInterval(10);

在客户端中设置

<%
//在客户端设置session,如点击注销之后,直接设置session过期
//第一种删除session中的数据
session.removeAttribute("user");
//第二种 或者直接使用session过期
session.invalidate();
//以2选一
//重定向主页
response.sendRedirect("index.jsp"); %>

在tomcat中直接设置,在tomact中设置时间为分钟conf/web.xml中

<!--在最下方的</webapp>之前添加,并设置为10分种-->
<session-config>
<session-timeout>10</session-timeout>
</session-config>
</web-app>

 Session过程

cookie

在服务端设置Cookie

//声明cookie变量,并添加要保存的参数和值如:用户名
Cookie cookie = new Cookie("user",username);
//设置cookie的有效时间以秒为单位60秒*60秒int类型的值
cookie.setMaxAge(60*60);
//将cookies对象发回客户端
response.addCookie(cookie);

在客户端接收cookie,

//接收cookies返回值为cookies的数组
Cookie [] cookies = request.getCookies();
//声明字符串变量用来接收cookies的值
String user="";
for(int i=0;i<cookies.length;i++){
//获取cookies的名字,并判断如果是服务端的名称
if(cookies[i].getName().equals("user")){
//将cookes的值赋为字符串变量
user=cookies[i].getValue();
} }

Application对象

计数器的实现原理

<%  //计数器
//取出application属性中的count值为object值
Object count = application.getAttribute("count");
//判断是否为空
if(count==null){
//如果是空,表示第一次访问将值设置为1
application.setAttribute("count", new Integer(1));
}else{
//不是空,则将结果+1
Integer i=(Integer)count;
application.setAttribute("count", i.intValue()+1);
}
Integer iCount=(Integer)application.getAttribute("count");
out.println("访问:&nbsp;"+iCount+"次"); %>
<%
//获取application对象的count属性值
Object count = application.getAttribute("count");
//判断是否为空
if(count==null){
//为空就设置为1
application.setAttribute("count", new Integer(1));
}else{
//不空就取值+1
application.setAttribute("count", (Integer)count+1);
}
Integer icount = (Integer)application.getAttribute("count");
out.println("访问了: "+icount+"次");
%>

Request、Session和Application的区别

Request:中存储的数据仅在一个请求中可用

Session:中存储的数据在一个会话有效期内可用

Application:中存储的数据在整个WEB项目中可用,直到WEB服务器停止运行

JSP实现数据保存(web基础学习笔记四)的更多相关文章

  1. JSP实现数据传递(web基础学习笔记三)

    get和post的区别: JSP内置对象: 1)out内置对象:out内置对象是在JSP开发过程中使用得最为频繁的对象,然而其使用起来也是最简单的.out对象用于向客户端浏览器输出数         ...

  2. JDBC五数据源和数据池(web基础学习笔记十一)

    一.为什么使用数据源和连接池 现在开发的应用程序,基本上都是基于数据的,而且是需要频繁的连接数据库的.如果每次操作都连接数据库,然后关闭,这样做性能一定会受限.所以,我们一定要想办法复用数据库的连接. ...

  3. JSP的范围-作用域(web基础学习笔记五)

    JSP的范围(作用域) 在JSP页面中的对象,包括用户创建的对象如JavaBean,都有一个范围属性,这个范围也被叫做“作用域”.范围定义了在什么时间内,在哪一个JSP页面中可以访问这些对象.例如,s ...

  4. JSP的页面连接和提交方式(web基础学习笔记六)

    一.GET请求新页面 1.1.超链接请求新页面 <!-- 超链接到page2 --> <a href="page2.jsp">链接到page2</a& ...

  5. 使用JSP实现输出(web基础学习笔记二)

    Jsp:Java Server Page 服务器端的Java页面,动态网页技术 jsp注释 显式注释:这种注释客户端是允许看见的;<!--html注释--> 隐式注释:这种注释客户端是看不 ...

  6. JSTL 标签库 使用(web基础学习笔记十九)

    标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2 ...

  7. EL运算符(web基础学习笔记十七)

    一.EL语法 1.1.语法结构 ${expression} 1.2.[]与.运算符 EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一 ...

  8. JavaBean(web基础学习笔记十二)

    一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用 ...

  9. Servlet一(web基础学习笔记二十)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

随机推荐

  1. UVALive 4863 Balloons 贪心/费用流

    There will be several test cases in the input. Each test case will begin with a line with three inte ...

  2. Node.js学习笔记(3) - 简单的curd

    这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简 ...

  3. Adding an instance to a MEF container

    How can you add an already created instance to a MEF container/cataloge to use when resolving Import ...

  4. 使用Bootstrap 3开发响应式网站实践07,页脚

    页脚部分比较简单,把一个12列的Grid切分. <footer> <div class="container"> <div class="r ...

  5. jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素

    1.基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] ...

  6. MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹

    为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...

  7. ExtJs 起始日期 结束日期 验证

    Ext.apply(Ext.form.VTypes,{ daterange: function(val, field) { var date = field.parseDate(val); // We ...

  8. POJ--2570--Fiber Network【floyd+位运算】

    题意:一些公司决定搭建一些光纤网络.单向的,假设从第一点到第二点,有ab两个公司能够搭建,第二点到第三点有ac两个公司能够搭建,第一点到第三点有d公司能够搭建,则第一点到第三点有a.d两个公司能够搭建 ...

  9. 使用命名参数处理 CallableStatement

    简介:JDBC 中的语句处理 在 JDBC 应用程序中,JDBC 语句对象用于将 SQL 语句发送到数据库服务器.一个语句对象与一个连接相关联,应用程序与数据库服务器之间的通信由语句对象来处理. JD ...

  10. [SQLite] SQLite学习手册(数据库和事务)

    转载地址:http://www.cnblogs.com/stephen-liu74/archive/2012/02/18/2322575.html 一.Attach数据库: ATTACH DATABA ...