Session应用
主页 上一层 下一页

下面我们用一个Java Bean来实现用户Session数据。

cd /usr/local/resin/doc/WEB-INF/classes/net/zixia

在我们的HelloWorld.java基础上进行修改,以便让用户可以定义自己的greeting语句。

JavaBean: HelloWorld.java:

package net.zixia;
import java.io.*;
import java.util.*;

import javax.servlet.http.*;

public class HelloWorld implements HttpSessionBindingListener{
    private String m_strMsg;
    public HelloWorld(){
        m_strMsg = new String();
    }
    public void set(String s){
        m_strMsg = s;
    }
    public String greeting(){
        return m_strMsg;
    }
    /**
每次新建立一个用户SessionvalueBound都会被调用。
    * System.out.println的信息会被resin记录在/usr/local/resin/log/stdout.log中
    */
    public void valueBound( HttpSessionBindingEvent event ){
        System.out.println( "valueBound" );
    }   
  
/** 每个用户Session过期的时候,valueUnbound都会被调用。
    * System.out.println的信息会被resin记录在/usr/local/resin/log/stdout.log中
    */
    public void valueUnbound( HttpSessionBindingEvent event ){
        System.out.println( "valueUnbound" );
    }
}

JSP Page: HelloWorld.jsp

 

<jsp:useBean id="HelloWorld" class="net.zixia.HelloWorld" scope=session/>
<html>
<body>
<h1>
<%
    String Msg = request.getParameter("Msg");
    if( null==Msg ){
        out.println( HelloWorld.greeting() );
        out.println( "Greeted!" );
    }else{
        HelloWorld.set( Msg );
        out.println( "Greeting message saved!" );
    }
%>
</h1>
</body>
</html>

查看结果:

浏览http://ur-resin-host:8080/HelloWorld.jsp

null Greeted!

因为HelloWorld Bean中的m_strMsg还没有存入具体的值。

浏览http://ur-resin-host:8080/HelloWorld.jsp?Msg=SweetHeart

Greeting message saved!

现在HelloWorld Bean中的m_strMsg的值为SweetHeart。

浏览http://ur-resin-host:8080/HelloWorld.jsp

SweetHeart Greeted!

将HelloWorld Bean中的m_strMsg读取出来显示。