jsp session的用法

session是使用bean的一个生存期限,一般为page,session意思是在这个用户没有离开网站之前一直有效,如果无法判断用户何时离开,一般依据系统设定,tomcat中设定为30分钟

<%@page import = "java.util.*" session="true"%>
<HTML>
    <HEAD>
        <TITLE>Using Sessions to Track Users</TITLE>
    </HEAD>

    <BODY>
        <%
        Integer counter = (Integer)session.getAttribute("counter");
        if (counter == null) {
            counter = new Integer(1);
        } else {
            counter = new Integer(counter.intValue() + 1);
        }

        session.setAttribute("counter", counter);
        %>
        <H1>Using Sessions to Track Users</H1>
        Session ID: <%=session.getId()%>
        <BR>
        Session creation time: <%=new Date(session.getCreationTime())%>
        <BR>
        Last accessed time: <%=new Date(session.getLastAccessedTime())%>
        <BR>
        Number of times you've been here: <%=counter%>
    </BODY>
</HTML>

获取或设置session值

<HTML>
    <HEAD>
        <TITLE>Using the Application Object</TITLE>
    </HEAD>

    <BODY>
        <H1>Using the Application Object</H1>
        <%
        Integer counter = (Integer)session.getAttribute("counter");
        String heading = null;
        if (counter == null) {
            counter = new Integer(1);
        } else {
            counter = new Integer(counter.intValue() + 1);
        }

        session.setAttribute("counter", counter);

        Integer i = (Integer)application.getAttribute("i");
        if (i == null) {
            i = new Integer(1);
        } else {
            i = new Integer(i.intValue() + 1);
        }

        application.setAttribute("i", i);
        %>

        You have visited this page <%=counter%> times.
        <BR>
        This page has been visited by all users <%=i%> times.
    </BODY>
</HTML>

我们的test.jsp教程 和test1.jsp都需要得到一个参数userdir,这个userdir是从数据库教程中得知,使用session将大大优化性能,程序如下:

设计一个javabean 存储userdir.

public class UserEnv {

private String userdir = "";
private String userurl = "";

public UserEnv(){
//构建方法初始化userdir,可以从数据库中读取,这里简单给值ppp
userdir="pppp";
System.out.println("init userdir, one time");
}

public String getUserdir() throws Exception{
return userdir;

}

}

test1.jsp程序:

<%@ page contentType="text/html;charset=ISO8859_1" %>

<jsp:useBean id="myenv" scope="session" class="mysite.UserEnv"/>
<html>
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>

this is test1.jsp:<%=myenv.getUserdir()%>
</body>
</html>

test2.jsp程序:
<%@ page contentType="text/html;charset=ISO8859_1" %>

<jsp:useBean id="myenv" scope="session" class="mysite.UserEnv"/>
<html>
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>

this is test2.jsp:<%=myenv.getUserdir()%>
</body>
</html>

 

无论用户先调用test1.jsp还是test2.jsp, java bean UserEnv总是先初始化一次, 由于这个bean存在周期是seesion,因此该用户第二次以后只要在seesion有效期内再调用,myenv.getUserdir()将直接从bean内存中读取变量,不必再初始化.这样提高速度,又减少数据库访问量.

时间: 2024-09-20 06:01:11

jsp session的用法的相关文章

jsp编程中session的用法实例分析_JSP编程

本文实例讲述了jsp编程中session的用法.分享给大家供大家参考,具体如下: TTP协议是无状态的,即信息无法通过HTTP协议本身进传递.为了跟踪用户的操作状态,ASP应用SESSION对象.JSP使用一个叫HttpSession的对象实现同样的功能.HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面.Session的信息保存在服务器端,Session的id保存在客户机的cookie中.事实上,在许多服务器上,如果浏览器支持的话它们就使用cook

jsp session用法与属性范围

session 属性范围 在一次会话范围内,无论何种跳转都可以使用,但新开浏览器就无法使用 设置session属性范围  session_scope_01.jsp  代码如下 复制代码 <%  session.setAttribute("name","小明");  session.setAttribute("birthday",new Date()); %> <a href="session_scope_02.jsp&

JSP基本语句用法总结_JSP编程

本文实例讲述了JSP基本语句用法.分享给大家供大家参考.具体如下: 1>JSP指令 JSP指令(Directive)作用是与JSP引擎进行沟通,为JSP页面设置全局变量,声 明类以及JSP要实现的方法和输出内容的类型等 JSP指令在整个页面范围内有效,且不在客户端产生任何输出 格式:<%@ directivename attribute="value"%> <%@ directivename attribute1="value1"......

java jsp session-javaweb+jsp+session 实现购物车修改商品数量的问题

问题描述 javaweb+jsp+session 实现购物车修改商品数量的问题 如何把用户输入的数量值,传递到购物车数量中去?? 解决方案 可以把 传入的值用js取出来,再把js取出的值在该显示的地方调用就行 解决方案二: 用Js方法 firstChild.nodeValue 获取 输入框中的值 然后 还是js table.rows[i].cells[i].innerHTM L赋值给商品数量那一栏 ...不懂的就百度哈

JSP中正则表达式用法实例_JSP编程

本文实例讲述了JSP中正则表达式用法.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*,cn.com.Person,cn.com.Adddress" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+

详解ASP.NET中Session的用法_实用技巧

      当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在.当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象.当会话过期或被放弃后,服务器将终止该会话.        通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象.当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有

thinkPHP中session()方法用法详解_php实例

本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 session(name,name,value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的session值,如果传入null表示删除sess

PHP Session 变量用法详解与实例教程

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它.这很像一次会话.计算机清楚你是谁.它知道你何时启动应用程序,并在何时终止.但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态. 通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称.购买商品等).不过,会话信息是临时的,在用户离开网站后将被删除.如果您需要永久储存信息,可以把数据存储在数据库中. 把手册抄一下,然后每个都试试然后写出来,方便自己查阅滴,

jsp自定义标签用法实例详解_JSP编程

本文实例讲述了jsp自定义标签用法.分享给大家供大家参考.具体如下: 在JSP中有一种机制,可以让你在JSP页面中插入与HTML类似的标记.本文介绍JSP定制标记的基本概念和构成,以及如何开发和应用JSP定制标记. 什么是标记 使用HTML语言我们可以这样去编辑我们的网页: <HTML> <HEAD> <TITLE> HELLO WORLD </TITLE> </HEAD> <BODY> HELLO WORLD </BODY&g