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. poj 1825 Ants 水题

    Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10722   Accepted: 4752 Description ...

  2. JS字符串相关操作

    01.插入 参数说明:str表示原字符串变量,flg表示要插入的字符串,sn表示要插入的位置 function insert_flg(str,flg,sn){ var newstr="&qu ...

  3. Spring_Task初探(注解,XML配置)

    这几天想写一个动态添加任务项目找了找Spring下的自带定时功能发现还真有,然后网上找了找资料写了个demo 写了两种方式来执行定时的任务(XML配置和注解) 先建两个普通的任务类(XML配置调用的任 ...

  4. windows下git命令的使用

    一.写在前面 关于git,出于自己的爱好,前段时间玩了一下,也自己上网查了一下资料,现简单记录一下,以备查看. 当然,本文并不是介绍配置git服务器的文章,而是以github服务器作为git的远程仓库 ...

  5. Shell脚本里的双冒号是什么意思

    这个是代码开发风格,其实也就是一个函数名,相当于下划线分割,但改读成包名之后就意义不一样.这个是根据Google的Shell开发规范进行定义的. 参考: https://google.github.i ...

  6. node.js第11课(HTTPclient)

     一.http模块提供了两个函数http.request和http.get,功能是作为client向HTTPserver发起请求.     Ext.Ajax.request({},function ...

  7. TSC条码打印机C#例程(tsclib.dll调用)

    TSC条码打印机C#例程(tsclib.dll调用) //----  program.cs using System;using System.Collections.Generic;using Sy ...

  8. Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为?

    4.2 在代码中直接调用Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为? Class.forName(String name)默认会使用调用类的类加载器 ...

  9. EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面

    iOS 上不建议在非主线程进行UI操作,在非主线程进行UI操作有很大几率会导致程序崩溃,或者出现预期之外的效果. 我开始不知道这一点,在子线程中进行了弹窗操作,结果程序就出问题了! 报的错误是(EXC ...

  10. swing入门教程

    (转自http://terrificwanjun.bokee.com/) UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”.但是 ...