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 4868 Palindrometer 暴力

    F - Palindrometer Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit ...

  2. RN生命周期

    网上看的博客,看着写的很好,想深入学RN的详细看下之后,再自己敲敲吧!有助于身体健康! 一个RN组件从它被加载,到最终被卸载会经历一个完整的生命周期.所谓生命周期,就是一个对象从开始生成到最后消亡所经 ...

  3. Redis_常见JedisConnectionException异常分析

    最近项目开发中用到了Redis, 选择了官网推荐的java client Jedis.Redis常用命令学习:http://redis.io/commandsRedis官方推荐Java客户端Jedis ...

  4. 【Go入门教程9】并发(goroutine,channels,Buffered Channels,Range和Close,Select,超时,runtime goroutine)

    有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行. goroutine goroutine是Go并行设计的核心.goro ...

  5. Oracle中空值与数字相加问题

    select 10 + 10 + 10 from dual 结果是30,全然没问题. select null + 10 + 10 from dual 结果是空串,但期望的结果是20. select n ...

  6. andriod 获得MP4时长

    //获得MP4时长 private int getTimeLong(String videoPath) { MediaMetadataRetriever retr = new MediaMetadat ...

  7. java中ant包中的org.apache.tools.zip实现压缩和解压缩

    其实apache中的ant包(请自行GOOGLE之ant.jar)中有一个更好的类,已经支持中文了,我们就不重复制造轮子了,拿来用吧,这里最主要的功能是实现了 可以指定多个文件 到同一个压缩包的功能 ...

  8. iOS开发中的 ARC

    1. weak属性(弱引用) 被weak修饰的对象叫弱引用,不算对象持有者,一个方法执行完后会导致这个对象自动释放掉,并将对象的指针设置成nil,我使用GCD延时1000ms来验证,1000ms之后, ...

  9. 引用jar版本错误

    [INFO] Scanning for projects... [ERROR] The build could not read 1 project -> [Help 1] [ERROR]    ...

  10. MapReduce任务分析与讨论MapReduce job explained

    In the last post we saw how to run a MapReduce job on Hadoop. Now we're going to analyze how a MapRe ...